Using Navigation Stack with RTAB Map on P3Dx

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Using Navigation Stack with RTAB Map on P3Dx

dhagash
Hey!

I want to do autonomous navigation with P3Dx using Navigation Stack. I did the tutorials but not understanding how can it be applied to my robot. I will be using RosAria which will give output of all the sensors data in P3Dx then what to do to create a launch file and have a node graph one like navigation stack. Can you give stepwise instructions?

Thanks for helping me out.
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
Hi,

What are the sensors available on the robot, topics published? For navigation, I will refer you to navigation stack tutorials. After you are able to do some navigation, you may try to integrate RTAB-Map, which is straightforward: the static map used by move_base would be the map created by rtabmap instead of gmapping. See this tutorial for example.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
I will be using Kinect as a vision sensor and the rest topics are the topics published by RosAria which will give the pose of the robot and cmd_vel. So combined the topics are that published by RosAria and openni for Kinect.
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
As it is a similar setup than turtlebot, I suggest to read and follow all launch files directly and indirectly included in this example. "roslaunch turtlebot_bringup minimal.launch" would be replaced by RosAria. The bringup should at least setup TF, publish odom and subscribe cmd_vel. Then "demo_turtlebot_mapping.launch" could be used. The other thing included in this launch is turtlebot_bringup/launch/3dsensor.launch, which starts the kinect and create a depthimage_to_laserscan node to create a fake scan (/scan) from the kinect. Rtabmap will subscribe to odometry, RGB image, Depth image, RGB camera_info and /scan.

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
In the demo_turtlebot_mapping.launch I cannot see the use of navigation stack the move base node is not created. I have the map ready using rtab map but now I have to use navigation stack on the robot. I understood the configurations file but I had a doubt in creating the launch file for navigation with move_base where you load all the params. What should I write instead of
 
  <node name="map_server" pkg="map_server" type="map_server" args="$(find my_map_package)/my_map.pgm my_map_resolution"/>

 
  <include file="$(find amcl)/examples/amcl_omni.launch" />

In rtabmap-ros I saw instead of map server you inserted Rtab-map ros on the node graph but how can I achieve that I have never created a launch file before So I am having doubts in this part. Can you guide me?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
Hi,

move_base should be launched by the included "move_base.launch.xml" here:
<include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/>

rtabmap node replaces gmapping, map_server and AMCL liked the schema in this tutorial. When launching demo_turtlebot_mapping.launch with localization:=false, the results will be similar to gmapping step of the official tutorial. Then when relaunching with localization:=true, it is like launching with map_server+AMCL for localization-only (like this tutorial).

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
Thank you I will try and share you an update
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
In reply to this post by matlabbe
I have created a map using rtabmap.launch does the localization happens simultaneously or we have to start again using localization:=true. I tried by putting localization:=true but its not loading the previous database. I have changed the name from rtabmap.db to someother name Corridor1.db. So, Is changing the name is error or we should keep the name same as rtabmap.db
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
And how can I know that localization of the given map is done correctly.
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
Hi,

rtabmap uses ~/.ros/rtabmap.db database by default. To use another one set the parameter "database_path" to path of the database.

When localization is false, this is SLAM, so both mapping and localization.

On localization mode, the TF transform /map -> /odom would not be identify after a localization occurs. If rtabmapviz is used, the loop closure view turns green on localization. Another way to know it is to subscribe to /rtabmap/info topic and see if this "loopClosureId" field is not 0:
$rostopic echo /rtabmap/info/loopClosureId

In localization mode, when a localization occurs, there is no way to know if it is correct or not. In SLAM mode, there is a verification to detect very large graph deformations after a wrong localization occurred, in order to reject it.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
So, If we do mapping in default mode then it will do SLAM and we don't need to run the robot again in the map with localization:=true.

Thanks
Dhagash.
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
If the environment is all mapped (you don't need to extend the current map), you can still use localization mode to save some map management time and memory.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

dhagash
Hello!

I have understood the code for the navigation stack. But since my robot is not turtlebot and I want to visualise it while making map in rviz what to do for that?
Reply | Threaded
Open this post in threaded view
|

Re: Using Navigation Stack with RTAB Map on P3Dx

matlabbe
Administrator
In rviz add manually the displays you want to visualize the map, like a "map" and 'tf" displays.