Thank you for your advise.The warn information did't appear after I set the wait_for_transform:=1.
However,when I test the Localization mode,how can I know a loop closure is found. And there is a warning
On the console, you will have a warning when a loop closure is detected but rejected. This is what you are seeing, the loop closure is rejected because there are not enough matching points between the laser scans on the loop closure. You have two choices: 1-Decrease"LccIcp2/CorrespondenceRatio" (default 0.3), or 2- set "LccIcp/Type=0" and "LccBow/Force2D=true" to disable ICP refining:
<node name="rtabmap" type="rtabmap" pkg="rtabmap_ros">
<!-- in your case the loop would have been accepted if it this threshold was under 0.251563 -->
<param name="LccIcp2/CorrespondenceRatio" type="string" value="0.2"/>
<param name="LccIcp/Type" type="string" value="0"/> <!-- don't use ICP -->
<param name="LccBow/Force2D" type="string" value="true"/> <!-- keep the transform 2D -->
Note that a low number of correspondences on ICP produces often wrong transformations.
For the robot always rotating at goal, check the Navigation Tuning Guide:
"Trajectories are scored from their endpoints. This means that setting the sim_time parameter to different values can have a large affect on how the robot behaves. I normally set this parameter to between 1-2 seconds, where setting it higher can result in slightly smoother trajectories, making sure that the minimum velocity multiplied by the sim_period is less than twice my tolerance on a goal. Otherwise, the robot will prefer to rotate in place just outside of range of its target position rather than moving towards the goal."
Thanks for your advise to the previous problem.These days I am doing the experiments about the 2D navigation only using kinect or Xtion. And I found serious problem which may cause the failure.
As show in the picture 1,I put the turtlebot in the center of house.Then I turned the robot to right in a small angle,but the edge of fake_laser in the rviz move to the left as shown in the picture 2.When I turned robot left,the edge in the rviz turned to right.When I was mapping,the map was always accumulating rotating clockwise.
I guess that it may be the matter of calibration of turtlebot? But there is a error information :Please point me at a wall.
1- you can save /cloud_map topic using pointcloud_to_pcd node. You will get a PCD file that can be opened with pcl_viewer (installed with PCL). The pcl_pcd2ply tool can be used to convert PCD to PLY so that it can be opened in any 3D software (like MeshLab).
2- If you have rtabmapviz opened, you can pause and do File->Export point clouds... You can export in PCD or PLY directly (default PLY).
1- Open the database in rtabmap standalone: "$ rtabmap ~/.ros/rtabmap.db", then make sure you refreshed the map and do File->Export point clouds...
Thanks for your help. The second and third way are good use.
The first method,I run
$ rosrun pcl_ros pointcloud_to_pcd input:=/velodyne/pointcloud2
but the result is that I can't find the location of the pcd file like 1285627014.833100319.pcd
Rtabmap can implement 3D point cloud projection to the 2D map, and navigate on costmap. If I want to navigate on the costmap, but use 3D information when avoiding obstacles (such as I have a low hollow table, four feet, the following is empty, Kinect can see the table. The robot can pass under the table, and can avoid the table leg), Rtabmap projects can realize it? 3Q
Theses day, I did some experiments, and I had some questions.
1.Gloabl map in Rviz always display error statu.
2.After the theme of the subscription is changed to the /octomap_proj, turtlebot movement is not smooth, often stuck do not go
3.When the turtlebot is in navigation, I specify a target point through navigation 2D in Rviz. In the process of moving, the robot updates the map, But the target point is above the expansion area of the obstacle after updating the map. Then the turtlebot is stuck.
4.The turtlebot can not avoid the 2 part of the stool, but it can avoid 1 part of the stool.
1. The costmap or the map? What is the error status?
2. /octomap_proj requires to build a 3D OctoMap, so it requires a lot more processing power (3D ray tracing). If your environment is static, you may want to disable current cloud integration to OctoMap to save some computation power:
3. If an obstacle appears on the goal, move_base will fail planning.
4. See your local costmap parameters. In particular for this Turtlebot demo, I think only a fake laser scan from the kinect is used for the local costmap. The part 2 of the chair is quite difficult to detect though even with a rtabmap_ros/obstacles_detection nodelet approach (an example of usage for the local costmap can be found here).
I saw that university of Freiburg useing octomap in the humanoid robot path planning, I feel the navigation is very good. So I want to learn about Rtabmap and humanoid robot both base on octomap, in addition to the driver is different, what is the difference between the other.