I wanted to perform slam using RTAB map. Is it possible to create a map of an unknown environment and localize within without any prebuilt map with the help of RTAB?
|
Administrator
|
It is the default mode of RTAB-Map, it will do SLAM by default.
|
In that case, my robot is building map of the environment and is incrementing. How do I know if my robot is able to localize in the environment or get the pose of the rover respective to global reference frame?
|
When you set below parameters, you will see on /info topic not being null to know if the robot has localized or not.
'Mem/IncrementalMemory','false', 'Mem/InitWMWithAllNodes','true', |
This post was updated on .
In reply to this post by matlabbe
I have written a launch file for SLAM which is here below. With this launch file, I am able to build the map but how do I get the real time pose of the robot if it is localizing simultaneously? Also, is it the correct approach to do SLAM?
<?xml version="1.0" encoding="UTF-8"?> <launch> <!-- Choose visualization --> <arg name="rtabmapviz" default="false" /> <arg name="rviz" default="true" /> <!-- Localization-only mode --> <arg name="localization" default="true"/> <arg name="pi/2" value="1.5707963267948966" /> <arg name="optical_rotate" value="0 0 0 -$(arg pi/2) 0 -$(arg pi/2)" /> <node pkg="tf" type="static_transform_publisher" name="camera_base_link" args="$(arg optical_rotate) chassis camera 100" /> <!-- CONFIG FOR ROBOT1 --> <group ns="robot1/stereo" > <node pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc"/> <!-- Odometry --> <node pkg="rtabmap_odom" type="stereo_odometry" name="stereo_odometry" output="screen"> <remap from="left/image_rect" to="left/image_rect"/> <remap from="right/image_rect" to="right/image_rect"/> <remap from="left/camera_info" to="left/camera_info"/> <remap from="right/camera_info" to="right/camera_info"/> <param name="frame_id" type="string" value="chassis"/> <param name="odom_frame_id" type="string" value="odom"/> <param name="approx_sync" type="bool" value="false"/> <param name="queue_size" type="int" value="5"/> <param name="Odom/MinInliers" type="string" value="12"/> <param name="Odom/RoiRatios" type="string" value="0.03 0.03 0.04 0.04"/> </node> </group> <group ns="rtabmap"> <node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args=""> <!-- delete_db_on_start--> <param name="frame_id" type="string" value="chassis"/> <param name="subscribe_stereo" type="bool" value="true"/> <param name="subscribe_depth" type="bool" value="false"/> <param name="approx_sync" type="bool" value="false"/> <remap from="left/image_rect" to="/robot1/stereo/left/image_rect_color"/> <remap from="right/image_rect" to="/robot1/stereo/right/image_rect"/> <remap from="left/camera_info" to="/robot1/stereo/left/camera_info"/> <remap from="right/camera_info" to="/robot1/stereo/right/camera_info"/> <remap from="odom" to="/robot1/stereo/odom"/> <param name="queue_size" type="int" value="30"/> <param name="Vis/MinInliers" type="string" value="12"/> <!-- Enable localization in mapping mode --> <param name="Mem/IncrementalMemory" type="bool" value="true"/> <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/> </node> </group> <!-- Visualisation RVIZ --> <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_demos)/launch/config/demo_stereo_outdoor.rviz"/> </launch> |
Administrator
|
You can get use localization_pose to have a pose topic in map frame. However, if you need faster pose in map frame, consider subscribing to odometry topic, then use TF to transform the odometry pose in map frame.
|
Free forum by Nabble | Edit this page |