Autonomous exploration building a map and my stair detection node find a estimate pose of stair w.r.t base_link , how can i transform this stair pose information in map frame as a point and save it as goal location for future purpose ?

asked 2021-09-09 05:14:43 -0500

Badal gravatar image

I am able to fuse point cloud wrt image of detected stair and transform the point coordinate to base_link . as i have a relation between odom and base_link but i dont have a transformation relation between the map and odom frame so how could i transform the point the point in base_link to map frame to navigate to stair future as a goal location by move_base?

edit retag flag offensive close merge delete

Comments

I'm not too sure what you are trying to ask here? Are you doing some type of SLAM? Usually one would expect the SLAM program (like cartographer) to give the map->odom. Alternatively if you are only interested in using dead reckoning to get your robot to the target you can pretend that your map and odom are in the same frame. You could either configure movebase to use odom instead of map of you could publish a fake transform (least preferred way).

arjo129 gravatar image arjo129  ( 2021-09-09 06:27:14 -0500 )edit

I am using a gmapping package for making a slam with odometry and LaserScan data with the help of frontier based exploration , at the time robot is moving it detect a stair by some detection algorithm and point cloud giving me the pose of stair w.r.t base_link , i would like to transform this detected point in map frame .

so please suggest me how can i proceed for it .

Badal gravatar image Badal  ( 2021-09-10 06:45:05 -0500 )edit

Does your TF tree look like map->odom->base_link?

arjo129 gravatar image arjo129  ( 2021-09-11 21:11:19 -0500 )edit

yes , it looks in same order , but my question is who is providing this transform in between this odom and map as the transform between base_link and odom is written by me and its broadcasting correctly , i have doubt on the transform b/w odom and map . can you please explain how am i getting this transform as if we see it in rviz the map frame itself changing its location , how can i assure on this transformation that it will give me the correct value in map ?

please tell me also that is this possible to create a dynamic broadcaster in between odom and map to broadcast a correct value .

Badal gravatar image Badal  ( 2021-09-13 04:36:11 -0500 )edit

Who is providing this transform in between this odom and map? - GMapping is responsible for map->odom. Note that GMapping is not perfect it is possible for gmapping to have some type of drift or error. This transform is an estimate. It is expected that the map frame will keep changing, this is to compensate for errors caused by odometry drift. As a SLAM program GMapping will always reconstruct the map from wherever it starts.

"please tell me also that is this possible to create a dynamic broadcaster in between odom and map to broadcast a correct value" - This is a very broad problem that is being actively researched.

For your original question "how can i transform this stair pose information in map frame as a point and save it as goal location for future purpose ?" One way to do this is if you use GMapping to create a map. Save ...(more)

arjo129 gravatar image arjo129  ( 2021-09-13 05:54:23 -0500 )edit

Thanks for your quick response , in my case saving the map is not a solution as i have to keep a track of all detected objects position in map frame at the time it exploring the environment. Do you know about any other slam toolbox except hector slam that can perform well in my case ?

Badal gravatar image Badal  ( 2021-09-15 07:05:59 -0500 )edit

So there are many slam implementations out there for various sensors including GMapping, Hector, Cartographer, SLAM toolbox to name a few. All of them suffer from the same problems although depending on your sensor configuration you may get better results with one or the other.

arjo129 gravatar image arjo129  ( 2021-09-15 08:13:53 -0500 )edit