Re: Localization accuracy and some questions...
Posted by
g.bartoli on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Localization-accuracy-and-some-questions-tp793p799.html
matlabbe wrote
1) If you want to fuse wheel odometry with visual odometry, you should do that with an external node outputting the odometry fused. See
robot_pose_ekf for an example of such node (note that if you use this node, you will need to convert "geometry_msgs/PoseWithCovarianceStamped" output to "nav_msgs/Odometry").
Ok, that is a nice solution. Once the navigation stack will be ready, we will try this approach if the odometry is too erroneus. How can rtabmap visual odometry be used with the other processes already running inside the rtabmap node? Do I need to start two rtabmap nodes?
matlabbe wrote
2) On graph optimizations, only /map -> /odom changes, not /odom -> /base_link. If you want the corrected pose, you have to transform /base_link in /map frame. "RGBD/OptimizeFromGraphEnd" changes this behavior:
So, setting it to false does also update base_link position after optimizations?
matlabbe wrote
3) Do you mean "mapData" vs "cloud_map"? "proj_map" is the 2D projection of the "cloud_map" on the ground to create an occupancy grid map. They ("proj_map", "grid_map" and "cloud_map") should be aligned together. "mapData" (used by MapCloud Plugin) is a lightweight topic sending only the latest node data with the graph. The MapCloud plugin incrementally builds the map on the client side. "cloud_map" is pretty heavyweight for network usage as the whole 3D point cloud of the map is published. "cloud_map" may be used locally on the robot for 3D navigation.
Ok, I understood, thanks.
matlabbe wrote
4) "reset" deletes the whole database (not odometry). "reset_odom" or "reset_odom_to_pose" reset odometry only. If odometry is reset to Identity (by default), rtabmap will detect it and automatically create a new map in its database.
Ok, now I saw that visual odometry (RGBD or stereo) is an independent node from rtabmap, it receives "reset_odom" service, right? So, when rtabmap starts from a launch file does it also load a separate visual odometry node?
matlabbe wrote
5) I've found that in some cases, setting "RGBD/OptimizeVarianceIgnored=true" results in better maps. If you have the referenced
change (version 0.10.10), the graph should be optimized only once. Then depending to which node the robot is localizing, the map may oscillate a little even if the robot is stationary.
6) If you send the goal directly to move_base, the goal will not change on optimization. If you send the goal to rtabmap (topic /rtabmap/goal, see
documentation), rtabmap will update the goal if there are optimizations (e.g., the goal will "follow" the map).
7) The accuracy will depend on the capability of the robot to localize. While you are using only an Asus Xtion, the robot may only relocalize if it is "seeing" the same images of the nodes created in the map (camera in the same direction), otherwise it would be pure odometry. While mapping, you can move in many directions to increase the number of nodes in the map with different orientations.
Ok, thanks!
~Guido