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?
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.
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.
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.
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
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?
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).
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
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.