Robotics Asked by R.Go on October 3, 2021

I am trying to initialize the position of a set of landmarks using only bearing observations. Each robot pose, described by position (x,y) and orientation (theta), observes a small set of landmarks. Each observation, bearing angle, is expressed in the robot frame.

My idea was to consider pair of consecutive robot poses, retrieve the equation of the lines passing though them and make the intersection to obtain the position of the landmark observed by both poses. Using the robot position and the bearing observation, I can retrieve the equation of a line as *y-y _{1}=m(x-x_{1})* where the slope

To check if this is the right way to proceed I tested the method on the data from the ground truth dataset. For instance, two consecutives poses R_{1}=(1.0384, 0.037015, 0.0057897) and R_{2}=(2.0171, 0.019962, 0.0017791) both observe the landmark L_{1} in position (2.8116, -4.2695), respectively with bearing values of B_{1}=-1.1860 and B_{2}=-1.3894. Evaluating the lines passing through R_{1}-L_{1} and R_{2}-L_{1} their equation is *y _{1}=-2.4287x + 2.5589* and

Some final notes:

- I’m almost completely sure that the bearing observation provided is the actual "mathematical" angle measurement, hence no transformation of it is required.
- I think that I should use also the theta angle of the robot pose in some way, but I’m not sure how.

What am I missing?

So the method to figure of something with only bearing measurements is called triangulation. While I think your method works you can much more easily solve it using sin rule.

Given at least 1 side and 2 angles you can figure out all the properties of a triangle using the sin rule.

$$frac{a}{sin(a)}=frac{c}{sin(C)}=frac{b}{sin(B)}$$

In your problem you have a length(distance between poses), and 2 angles(bearing measurements). So you have all the information you need to figure out the position of the landmark.

Picture is from https://www.cimt.org.uk/projects/mepres/step-up/sect4/index.htm

I think that I should use also the theta angle of the robot pose in some way, but I'm not sure how.

Correct. It is pretty simple. You use it to convert the local bearing measurement into the global frame.

$$theta_{bG}=theta_R+theta_{bmeas}$$

So the global angle bearing measurement($theta_{bG}$) is the heading($theta_R$) of your robot plus your bearing measurement($theta_{bmeas}$).

The global bearing measurement is what you plug into the sin rule equations.

Correct answer by edwinem on October 3, 2021

Get help from others!

Recent Answers

- Joshua Engel on Why fry rice before boiling?
- haakon.io on Why fry rice before boiling?
- Lex on Does Google Analytics track 404 page responses as valid page views?
- Peter Machado on Why fry rice before boiling?
- Jon Church on Why fry rice before boiling?

Recent Questions

- How can I transform graph image into a tikzpicture LaTeX code?
- How Do I Get The Ifruit App Off Of Gta 5 / Grand Theft Auto 5
- Iv’e designed a space elevator using a series of lasers. do you know anybody i could submit the designs too that could manufacture the concept and put it to use
- Need help finding a book. Female OP protagonist, magic
- Why is the WWF pending games (“Your turn”) area replaced w/ a column of “Bonus & Reward”gift boxes?

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP