文章目录

    • 报错说明
    • 报错逐个查找
      • [ WARN] [1577853090.145887813]: Costmap2DROS transform timeout. Current time: 1577853090.1459, global_pose stamp: 1577853087.5109, tolerance: 0.5000
        • [How to solve the Costmap2DROS transform timeout?](https://answers.ros.org/question/238852/how-to-solve-the-costmap2dros-transform-timeout/)
      • [ WARN] [1577803540.084132093]: Could not get robot pose, cancelling reconfiguration
        • [ costmap_2d tf变换 建图错误 ](https://wenda.ncnynl.com/question/116419)
        • [Costmap2DROS transform timeout.Could not get robot pose, cancelling reconfiguration](https://answers.ros.org/question/227638/costmap2dros-transform-timeoutcould-not-get-robot-pose-cancelling-reconfiguration/)
        • [Navigation Stack - could not get robot pose](https://answers.ros.org/question/315343/navigation-stack-could-not-get-robot-pose/)
      • [ERROR] [1577803544.186413799]: Extrapolation Error looking up robot pose: Lookup would require extrapolation into the past. Requested time 1577803395.635771648 but the earliest data is at time 1577803534.160161966, when looking up transform from frame [base_footprint] to frame [map]
        • [problem with move_base and server connection](https://answers.ros.org/question/180113/problem-with-move_base-and-server-connection/)
      • Troubleshooting
      • 大概原因
    • 找到参数位置(使用ag进行查找,太快了)
  • 虽然TB2提供了odom,但是karto没有接受
      • roslaunch turtlebot_bringup minimal.launch 的topic
      • roslaunch turtlebot_navigation rplidar_karto_demo.launch的topic
    • 查看一下odom的发布和订阅者(rostopic info 名字)
  • kartoSLAM的参数调整

报错说明

在运行一开始建图没有报错,到后面偏差变的越来越大,报错如下

asber@asber-X555LI:~$ roslaunch turtlebot_navigation rplidar_karto_demo.launch
... logging to /home/asber/.ros/log/cfacfd42-2c4e-11ea-a9d6-28c2dd4c2a6d/roslaunch-asber-X555LI-2158.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://192.168.43.13:46671/SUMMARY
========PARAMETERS* /move_base/DWAPlannerROS/acc_lim_theta: 2.0* /move_base/DWAPlannerROS/acc_lim_x: 1.0* /move_base/DWAPlannerROS/acc_lim_y: 0.0* /move_base/DWAPlannerROS/forward_point_distance: 0.325* /move_base/DWAPlannerROS/global_frame_id: odom* /move_base/DWAPlannerROS/goal_distance_bias: 24.0* /move_base/DWAPlannerROS/max_rot_vel: 5.0* /move_base/DWAPlannerROS/max_scaling_factor: 0.2* /move_base/DWAPlannerROS/max_trans_vel: 0.5* /move_base/DWAPlannerROS/max_vel_x: 0.5* /move_base/DWAPlannerROS/max_vel_y: 0.0* /move_base/DWAPlannerROS/min_rot_vel: 0.4* /move_base/DWAPlannerROS/min_trans_vel: 0.1* /move_base/DWAPlannerROS/min_vel_x: 0.0* /move_base/DWAPlannerROS/min_vel_y: 0.0* /move_base/DWAPlannerROS/occdist_scale: 0.5* /move_base/DWAPlannerROS/oscillation_reset_dist: 0.05* /move_base/DWAPlannerROS/path_distance_bias: 64.0* /move_base/DWAPlannerROS/publish_cost_grid_pc: True* /move_base/DWAPlannerROS/publish_traj_pc: True* /move_base/DWAPlannerROS/rot_stopped_vel: 0.4* /move_base/DWAPlannerROS/scaling_speed: 0.25* /move_base/DWAPlannerROS/sim_time: 1.0* /move_base/DWAPlannerROS/stop_time_buffer: 0.2* /move_base/DWAPlannerROS/trans_stopped_vel: 0.1* /move_base/DWAPlannerROS/vtheta_samples: 20* /move_base/DWAPlannerROS/vx_samples: 6* /move_base/DWAPlannerROS/vy_samples: 1* /move_base/DWAPlannerROS/xy_goal_tolerance: 0.15* /move_base/DWAPlannerROS/yaw_goal_tolerance: 0.3* /move_base/GlobalPlanner/allow_unknown: True* /move_base/GlobalPlanner/cost_factor: 3.0* /move_base/GlobalPlanner/default_tolerance: 0.0* /move_base/GlobalPlanner/lethal_cost: 253* /move_base/GlobalPlanner/neutral_cost: 50* /move_base/GlobalPlanner/old_navfn_behavior: False* /move_base/GlobalPlanner/planner_costmap_publish_frequency: 0.0* /move_base/GlobalPlanner/planner_window_x: 0.0* /move_base/GlobalPlanner/planner_window_y: 0.0* /move_base/GlobalPlanner/publish_potential: True* /move_base/GlobalPlanner/publish_scale: 100* /move_base/GlobalPlanner/use_dijkstra: True* /move_base/GlobalPlanner/use_grid_path: False* /move_base/GlobalPlanner/use_quadratic: True* /move_base/NavfnROS/allow_unknown: False* /move_base/NavfnROS/default_tolerance: 0.0* /move_base/NavfnROS/planner_window_x: 0.0* /move_base/NavfnROS/planner_window_y: 0.0* /move_base/NavfnROS/visualize_potential: False* /move_base/base_global_planner: navfn/NavfnROS* /move_base/base_local_planner: dwa_local_planner...* /move_base/controller_frequency: 5.0* /move_base/controller_patience: 3.0* /move_base/global_costmap/global_frame: map* /move_base/global_costmap/inflation_layer/cost_scaling_factor: 5.0* /move_base/global_costmap/inflation_layer/enabled: True* /move_base/global_costmap/inflation_layer/inflation_radius: 0.5* /move_base/global_costmap/map_type: voxel* /move_base/global_costmap/max_obstacle_height: 0.6* /move_base/global_costmap/obstacle_layer/bump/clearing: False* /move_base/global_costmap/obstacle_layer/bump/data_type: PointCloud2* /move_base/global_costmap/obstacle_layer/bump/marking: True* /move_base/global_costmap/obstacle_layer/bump/max_obstacle_height: 0.15* /move_base/global_costmap/obstacle_layer/bump/min_obstacle_height: 0.0* /move_base/global_costmap/obstacle_layer/bump/topic: mobile_base/senso...* /move_base/global_costmap/obstacle_layer/combination_method: 1* /move_base/global_costmap/obstacle_layer/enabled: True* /move_base/global_costmap/obstacle_layer/mark_threshold: 0* /move_base/global_costmap/obstacle_layer/max_obstacle_height: 0.6* /move_base/global_costmap/obstacle_layer/observation_sources: scan bump* /move_base/global_costmap/obstacle_layer/obstacle_range: 2.5* /move_base/global_costmap/obstacle_layer/origin_z: 0.0* /move_base/global_costmap/obstacle_layer/publish_voxel_map: False* /move_base/global_costmap/obstacle_layer/raytrace_range: 3.0* /move_base/global_costmap/obstacle_layer/scan/clearing: True* /move_base/global_costmap/obstacle_layer/scan/data_type: LaserScan* /move_base/global_costmap/obstacle_layer/scan/marking: True* /move_base/global_costmap/obstacle_layer/scan/max_obstacle_height: 0.35* /move_base/global_costmap/obstacle_layer/scan/min_obstacle_height: 0.25* /move_base/global_costmap/obstacle_layer/scan/topic: scan* /move_base/global_costmap/obstacle_layer/track_unknown_space: True* /move_base/global_costmap/obstacle_layer/unknown_threshold: 15* /move_base/global_costmap/obstacle_layer/z_resolution: 0.2* /move_base/global_costmap/obstacle_layer/z_voxels: 2* /move_base/global_costmap/plugins: [{'type': 'costma...* /move_base/global_costmap/publish_frequency: 0.5* /move_base/global_costmap/robot_base_frame: base_footprint* /move_base/global_costmap/robot_radius: 0.2* /move_base/global_costmap/static_layer/enabled: True* /move_base/global_costmap/static_map: True* /move_base/global_costmap/transform_tolerance: 0.5* /move_base/global_costmap/update_frequency: 1.0* /move_base/local_costmap/global_frame: odom* /move_base/local_costmap/height: 4.0* /move_base/local_costmap/inflation_layer/cost_scaling_factor: 5.0* /move_base/local_costmap/inflation_layer/enabled: True* /move_base/local_costmap/inflation_layer/inflation_radius: 0.5* /move_base/local_costmap/map_type: voxel* /move_base/local_costmap/max_obstacle_height: 0.6* /move_base/local_costmap/obstacle_layer/bump/clearing: False* /move_base/local_costmap/obstacle_layer/bump/data_type: PointCloud2* /move_base/local_costmap/obstacle_layer/bump/marking: True* /move_base/local_costmap/obstacle_layer/bump/max_obstacle_height: 0.15* /move_base/local_costmap/obstacle_layer/bump/min_obstacle_height: 0.0* /move_base/local_costmap/obstacle_layer/bump/topic: mobile_base/senso...* /move_base/local_costmap/obstacle_layer/combination_method: 1* /move_base/local_costmap/obstacle_layer/enabled: True* /move_base/local_costmap/obstacle_layer/mark_threshold: 0* /move_base/local_costmap/obstacle_layer/max_obstacle_height: 0.6* /move_base/local_costmap/obstacle_layer/observation_sources: scan bump* /move_base/local_costmap/obstacle_layer/obstacle_range: 2.5* /move_base/local_costmap/obstacle_layer/origin_z: 0.0* /move_base/local_costmap/obstacle_layer/publish_voxel_map: False* /move_base/local_costmap/obstacle_layer/raytrace_range: 3.0* /move_base/local_costmap/obstacle_layer/scan/clearing: True* /move_base/local_costmap/obstacle_layer/scan/data_type: LaserScan* /move_base/local_costmap/obstacle_layer/scan/marking: True* /move_base/local_costmap/obstacle_layer/scan/max_obstacle_height: 0.35* /move_base/local_costmap/obstacle_layer/scan/min_obstacle_height: 0.25* /move_base/local_costmap/obstacle_layer/scan/topic: scan* /move_base/local_costmap/obstacle_layer/track_unknown_space: True* /move_base/local_costmap/obstacle_layer/unknown_threshold: 15* /move_base/local_costmap/obstacle_layer/z_resolution: 0.2* /move_base/local_costmap/obstacle_layer/z_voxels: 2* /move_base/local_costmap/plugins: [{'type': 'costma...* /move_base/local_costmap/publish_frequency: 2.0* /move_base/local_costmap/resolution: 0.05* /move_base/local_costmap/robot_base_frame: base_footprint* /move_base/local_costmap/robot_radius: 0.2* /move_base/local_costmap/rolling_window: True* /move_base/local_costmap/static_layer/enabled: True* /move_base/local_costmap/static_map: False* /move_base/local_costmap/transform_tolerance: 0.5* /move_base/local_costmap/update_frequency: 5.0* /move_base/local_costmap/width: 4.0* /move_base/oscillation_distance: 0.2* /move_base/oscillation_timeout: 10.0* /move_base/planner_frequency: 1.0* /move_base/planner_patience: 5.0* /move_base/shutdown_costmaps: False* /navigation_velocity_smoother/accel_lim_v: 1.0* /navigation_velocity_smoother/accel_lim_w: 2.0* /navigation_velocity_smoother/decel_factor: 1.5* /navigation_velocity_smoother/frequency: 20.0* /navigation_velocity_smoother/robot_feedback: 2* /navigation_velocity_smoother/speed_lim_v: 0.8* /navigation_velocity_smoother/speed_lim_w: 5.4* /rosdistro: kinetic* /rosversion: 1.12.14* /rplidarNode/angle_compensate: True* /rplidarNode/frame_id: laser* /rplidarNode/inverted: False* /rplidarNode/serial_baudrate: 256000* /rplidarNode/serial_port: /dev/ttyUSB0* /slam_karto/map_update_interval: 25* /slam_karto/odom_frame: odom* /slam_karto/resolution: 0.025NODES/base_to_laser (tf/static_transform_publisher)kobuki_safety_controller (nodelet/nodelet)move_base (move_base/move_base)navigation_velocity_smoother (nodelet/nodelet)rplidarNode (rplidar_ros/rplidarNode)slam_karto (slam_karto/slam_karto)ROS_MASTER_URI=http://localhost:11311process[rplidarNode-1]: started with pid [2175]
[ INFO] [1577852845.025209099]: RPLIDAR running on ROS package rplidar_ros. SDK Version:1.9.0
process[base_to_laser-2]: started with pid [2176]
process[slam_karto-3]: started with pid [2199]
process[navigation_velocity_smoother-4]: started with pid [2211]
process[kobuki_safety_controller-5]: started with pid [2212]
process[move_base-6]: started with pid [2213]
RPLIDAR S/N: D3859A87C5E392D2A5E492F84350316C
[ INFO] [1577852845.529374625]: Firmware Ver: 1.27
[ INFO] [1577852845.529470928]: Hardware Rev: 6
[ INFO] [1577852845.530441472]: RPLidar health status : 0
[ INFO] [1577852845.765188408]: Using plugin "static_layer"
[ INFO] [1577852845.815753175]: Requesting the map...
[ INFO] [1577852846.070305629]: current scan mode: Sensitivity, max_distance: 25.0 m, Point number: 15.9K , angle_compensate: 4
[ INFO] [1577852847.786154553]: laser laser's pose wrt base: 0.000 0.000 0.000
Registering sensor: [laser]
[ INFO] [1577852847.819887279]: Resizing costmap to 234 X 722 at 0.025000 m/pix
[ INFO] [1577852847.919662686]: Received a 234 X 722 map at 0.025000 m/pix
[ INFO] [1577852847.930918950]: Using plugin "obstacle_layer"
[ INFO] [1577852847.936325201]:     Subscribed to Topics: scan bump
[ INFO] [1577852847.998111409]: Using plugin "inflation_layer"
[ INFO] [1577852848.082164418]: Using plugin "obstacle_layer"
[ INFO] [1577852848.086501599]:     Subscribed to Topics: scan bump
[ INFO] [1577852848.140224561]: Using plugin "inflation_layer"
[ INFO] [1577852848.205855597]: Created local_planner dwa_local_planner/DWAPlannerROS
[ INFO] [1577852848.209843664]: Sim period is set to 0.20
[ INFO] [1577852849.194105100]: Recovery behavior will clear layer obstacles
[ INFO] [1577852849.200458002]: Recovery behavior will clear layer obstacles
[ INFO] [1577852849.245815986]: odom received!
[ INFO] [1577852894.652606892]: Resizing static layer to 252 X 821 at 0.025000 m/pix
[ INFO] [1577852929.921927968]: Resizing static layer to 327 X 825 at 0.025000 m/pix
[ INFO] [1577852955.662476196]: Resizing static layer to 764 X 1031 at 0.025000 m/pix
[ INFO] [1577852981.948224958]: Resizing static layer to 918 X 1045 at 0.025000 m/pix
[ INFO] [1577853014.070493395]: Resizing static layer to 918 X 1179 at 0.025000 m/pix
[ INFO] [1577853039.762557975]: Resizing static layer to 918 X 1256 at 0.025000 m/pix
[ INFO] [1577853087.469884383]: Calling doSPA for loop closure
[ INFO] [1577853087.509779976]: Finished doSPA for loop closure
[ WARN] [1577853088.036672650]: Costmap2DROS transform timeout. Current time: 1577853088.0366, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853088.046054407]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853089.045733371]: Costmap2DROS transform timeout. Current time: 1577853089.0457, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853089.146064160]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853090.145887813]: Costmap2DROS transform timeout. Current time: 1577853090.1459, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853090.245646153]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853091.246290778]: Costmap2DROS transform timeout. Current time: 1577853091.2462, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853091.246334033]: Could not get robot pose, cancelling reconfiguration
[slam_karto-3] process has died [pid 2199, exit code -11, cmd /opt/ros/kinetic/lib/slam_karto/slam_karto scan:=scan __name:=slam_karto __log:=/home/asber/.ros/log/cfacfd42-2c4e-11ea-a9d6-28c2dd4c2a6d/slam_karto-3.log].
log file: /home/asber/.ros/log/cfacfd42-2c4e-11ea-a9d6-28c2dd4c2a6d/slam_karto-3*.log
[ WARN] [1577853092.345430840]: Costmap2DROS transform timeout. Current time: 1577853092.3454, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853092.345500477]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853093.345791186]: Costmap2DROS transform timeout. Current time: 1577853093.3457, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853093.345901677]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853094.346342770]: Costmap2DROS transform timeout. Current time: 1577853094.3462, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853094.346461395]: Could not get robot pose, cancelling reconfiguration
[ WARN] [1577853095.445940748]: Costmap2DROS transform timeout. Current time: 1577853095.4458, global_pose stamp: 1577853087.5109, tolerance: 0.5000
[ WARN] [1577853095.446107535]: Could not get robot pose, cancelling reconfiguration
^C[move_base-6] killing on exit
[kobuki_safety_controller-5] killing on exit
[navigation_velocity_smoother-4] killing on exit
[base_to_laser-2] killing on exit
[rplidarNode-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

报错逐个查找

[ WARN] [1577853090.145887813]: Costmap2DROS transform timeout. Current time: 1577853090.1459, global_pose stamp: 1577853087.5109, tolerance: 0.5000

How to solve the Costmap2DROS transform timeout?

时间同步----测试不可行
I guess that the problem had to do with a poor synchronization between MORSE and ROS .I hope this helps others.

[ WARN] [1577803540.084132093]: Could not get robot pose, cancelling reconfiguration

没有得到机器人的pose—应该是odom里面的pose

costmap_2d tf变换 建图错误

此处说明了报错

Costmap2DROS transform timeout. Current time: 1565591858.9138, global_pose stamp: 1565591858.3790, tolerance: 0.5000

的原因,并且作者也有如上报错,作者说明是因为transform_tolerance的值设定小了,所以导致
判断代码判断错误

if (current_time.toSec() - global_pose.stamp_.toSec() > transform_tolerance_)
{ROS_WARN_THROTTLE(1.0,"Costmap2DROS transform timeout. Current time: %.4f, global_pose stamp: %.4f, tolerance: %.4f",current_time.toSec(),global_pose.stamp_.toSec(), transform_tolerance_);return false;
}

结果:修改transform_tolerance的值,使得报错消失;但是建图依然不OK

Costmap2DROS transform timeout.Could not get robot pose, cancelling reconfiguration

作者提到他感觉可能是因为他修改了"hector_navigation/hector_exploration_node/config/costmap.yaml"这个配置文件中的transform_tolerance,从2改到10,导致的错误

I modify “hector_navigation/hector_exploration_node/config/costmap.yaml”,change " transform_tolerance: 2 " to " transform_tolerance: 10".

这间接可能说明了上一个参考连接结果可能不是好的。


Your tolerance for transforms is set to 10.000 meaning that the system will not use transform information that is more than 10 seconds old.Your system is not getting any new TF messages after 168.19 . Read about tf and do the tutorials - http://wiki.ros.org/tf , then update with more info
transform_tolerance越小代表系统允许使用TF消息的滞后性越小。
如果transform_tolerance=2.0代表系统不允许使用2秒前的TF信息
如果transform_tolerance=10.0代表系统不允许使用10秒前的TF信息


Sometimes gazebo is running at faster than real time if we wish. Real time factor > 1. In this case, we need to change the map publishing freuquency to a higher number in the navigation stack configuration files.
gazebo仿真会比现实速度更快,我们在现实中跑的时候需要在navigation stack configuration的文件中将地图发布频率加大

  • 估计也是去同样的yaml文件中修改

待尝试


无用信息
There is a related question (duplicate?) here, will post same answer in both.

In our case it was a performance issue, the computer was not strong enough to manage the load. I changed rviz configuration to prevent pointcloud visualisation, laserscanner vis, and furthermore I was having a process consuming 100% CPU (a node which was not sleeping while spinning). After those fixes, now everything is back to normal.
电脑太差不能很好调度负载,回答者在修改rviz的点云可视化,激光可视化和负载大的进程之后就正常了
待查看进程CPU资源占用

here
这个QA说在得到"Odom received" warning messages 之后就出现

Costmap2DROS transform timeout. Current time: 1438775060.1538, global_pose stamp: 1438775056.1344, tolerance: 0.3000

后面又查看节点发布时延,总体来说没有有用信息


Navigation Stack - could not get robot pose

Q主要说明是在使用navigation的时候报错
A中有一个很不错的回答:
You’ll get that error until you provide the robot pose so make sure you either provide initial pose through RVIZ or do it in code/YAML(there is some way to do it in launch I think but I just use initial pose button in RVIZ).
只有在你提供一个机器人的pose之后才可以解决问题,robot pose既可以在rviz中初始化也可以在yaml中但是答者只在rviz中使用initial pose button

solution:提供一个初始化pose
但是再rviz只看到估计位姿的按键和导航到某处的按键


[ERROR] [1577803544.186413799]: Extrapolation Error looking up robot pose: Lookup would require extrapolation into the past. Requested time 1577803395.635771648 but the earliest data is at time 1577803534.160161966, when looking up transform from frame [base_footprint] to frame [map]

problem with move_base and server connection

不适合我们遇到的报错

Troubleshooting

十分适合现在sicuation
文章的Troubleshooting中说

Troubleshooting

AMCL 算法 is designed to be reliable 即使在 noisy and changing environments中.作者曾遇到ACML定位不了的情况,Here are some of the root causes I’ve come across:

  1. Undercharged Kobuki battery (mentioned above) 正在充电的kobuki(底盘)电池
  2. Wrong nodes running on the robot (operator stupidity) 错误的节点运作
  3. Time synchronization issues 时间同步问题
  4. “Room” changed radically (彻底地) since map saved (e.g. by changing the vertical positioning of the Xtion(3D感应RGBD摄像头))
  5. Trying to navigate through gaps that are too narrow for a robot that lacks self confidence.

If the system clocks and dates are not aligned on the robot and ROS Workstation then you will likely see time synchronisation issues. You may see logs in the AMCL window like this:


这和我们的报错一模一样
Extrapolation Error looking up robot pose: Lookup would require extrapolation into the past.

The “Extrapolation Error looking up robot pose: Lookup would require extrapolation into the past” error is caused by a mismatch between the clocks on the robot and the ROS Workstation.
这个错误是因为机器人和工作站的时间差导致的
To solve these

1. Compare dates on the ROS Workstation and the robot. Typedateon each device. To correct one or both of them, usedate -s '2016-3-25 12:34:56'2. Do a fine-grained 细致的 synchronisation on both devices to an external time server. Typesudo ntpdate ntp.ubuntu.comThe very first time you do this you will need to install chrony, withsudo apt-get install chrony

The final problem listed above is when you try to navigate through too narrow a gap. This is an interesting one, and brings us to cost maps. On the RVIZ display you should see an option to display the Costmap. Enable it, if it isn’t enabled already.

The costmap is visualised as a square round the robot containing the purple-fringed blobs. The colour represents the estimated cost for the robot of moving to the location. Going into walls is hard, but also going close to them might be hard too, given the uncertainty that surrounds the map and the robots position. So the robot leaves a safe zone round detected objects, and this is reflected in the cost map.

In the diagram above, the purple fringes are almost touching although the gap between the TV and the crib is actually perfectly large enough for the robot to get through. Any closer, and the robot will stubbornly refuse to go through.

The best way to find this kind of problem is to monitor the log messages in the AMCL window and read them carefully.

实验效果:

实验结果表明并不是这样,同步了时间之后还是一样会出现此问题


大概原因

  1. transform_tolerance up!
  2. (map )publish_frequency up!
  3. prove initional pose
  4. 时间同步

找到参数位置(使用ag进行查找,太快了)

asber@asber-X555LI:~/turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/param$ ag transform_tolerance

local_costmap_params.yaml
11: transform_tolerance: 0.5

global_costmap_params.yaml
7: transform_tolerance: 0.5


修改之后的确解决 只是建图还是和shit一样
然后设置NAV 的GOAL 报错,因为recovery behaviors executed之后也找不到自己在哪里

[ERROR] [1577856960.633605138]: Aborting because a valid plan could not be found. Even after executing all recovery behaviors


下面针对建图问题提出思考以及验证

虽然TB2提供了odom,但是karto没有接受


查看一下rostopic list

roslaunch turtlebot_bringup minimal.launch 的topic

/cmd_vel_mux/active
/cmd_vel_mux/input/navi
/cmd_vel_mux/input/safety_controller
/cmd_vel_mux/input/switch
/cmd_vel_mux/input/teleop
/cmd_vel_mux/parameter_descriptions
/cmd_vel_mux/parameter_updates
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/joint_states
/laptop_charge
/mobile_base/commands/controller_info
/mobile_base/commands/digital_output
/mobile_base/commands/external_power
/mobile_base/commands/led1
/mobile_base/commands/led2
/mobile_base/commands/motor_power
/mobile_base/commands/reset_odometry
/mobile_base/commands/sound
/mobile_base/commands/velocity
/mobile_base/controller_info
/mobile_base/debug/raw_control_command
/mobile_base/debug/raw_data_command
/mobile_base/debug/raw_data_stream
/mobile_base/events/bumper
/mobile_base/events/button
/mobile_base/events/cliff
/mobile_base/events/digital_input
/mobile_base/events/power_system
/mobile_base/events/robot_state
/mobile_base/events/wheel_drop
/mobile_base/sensors/bumper_pointcloud
/mobile_base/sensors/core
/mobile_base/sensors/dock_ir
/mobile_base/sensors/imu_data
/mobile_base/sensors/imu_data_raw
/mobile_base/version_info
/mobile_base_nodelet_manager/bond
/odom
/rosout
/rosout_agg
/tf
/tf_static

roslaunch turtlebot_navigation rplidar_karto_demo.launch的topic

/map
/map_metadata
/move_base/current_goal
/move_base/goal
/move_base_simple/goal
/navigation_velocity_smoother/raw_cmd_vel
/rosout
/rosout_agg
/scan
/tf
/tf_static
/visualization_marker_array

查看一下odom的发布和订阅者(rostopic info 名字)

asber@asber-X550VX:~/catkin_ws/install_isolated/share/turtlebot_navigation/launch/includes/karto$ rostopic info odom
Type: nav_msgs/Odometry

Publishers:

  • /mobile_base_nodelet_manager (http://192.168.43.13:44231/)

Subscribers:

  • /mobile_base_nodelet_manager (http://192.168.43.13:44231/)

真的没有订阅odom


rplidar_karto.launch

刚刚还看了一下rviz里面的odom,感觉正确,所以就是odomtopic发出啦,但是kartoslam源码没有和TB2的接口。或者说没有去接受odom这个topic

正如这篇文章和上面的截图可以看到,karto有获取odom,但是为什么我没看到odom被订阅呢?

kartoSLAM的参数调整

一个雷达数据Bug引起的Karto SLAM建图混乱
这里作者因为运行的时候表现为:
具体表现就是机器人运动一小段距离后就会在地图上都会被“拉回”到地图原点附近
所以认为是scan_matching出了问题,关掉karto中的use_scan_matching选项,设置为false,再跑一下,图是好了点,但是还有走过的痕迹有检测到点的问题,受这个问题的启发,查看了激光雷达的数据,发现出现大量0.0的值,推翻上面的认知
检查雷达驱动代码,将没有实际意义的值修改为无穷大,即 std::numeric_limits::infinity();编译后重新运行,一切正常,既不乱match了,也不边走边下蛋了。

SLAM_Karto 参数解析

slam_karto wiki
我在这篇文章中TB2的SLAM之旅有进行部分翻译

修改地址:
roscd turtlebot_navigation/
在该文件夹的param下面
astra_costmap_params.yaml global_planner_params.yaml
asus_xtion_pro_costmap_params.yaml kinect_costmap_params.yaml
asus_xtion_pro_offset_costmap_params.yaml local_costmap_params.yaml
costmap_common_params.yaml move_base_params.yaml
dummy.yaml navfn_global_planner_params.yaml
dwa_local_planner_params.yaml r200_costmap_params.yaml
global_costmap_params.yaml

以及slam_karto/config/mapper_params.yaml(通过cs下ag找到这里有use_scan_matching选项
修改之后cm还是不行 还是回到刚刚的位置

kartoSLAM报错 transform_tolerance修改解决相关推荐

  1. 登录mysql报错2059_navicat连接mysql报错2059的解决方法

    navicat连接mysql报错2059的解决方法 发布时间:2020-12-21 10:27:37 来源:亿速云 阅读:82 作者:小新 栏目:数据库 这篇文章给大家分享的是有关navicat连接m ...

  2. CFX计算报错和相应解决办法(浮点错误等-持续更新)

    CFX计算报错和相应解决办法(浮点错误等-持续更新) 1.CFX浮点错误 Floating point exception:Overflow 数值计算过大,浮点数位数不够,使用双精度double类型计 ...

  3. php zpo框架,Yii使用DeleteAll连表删除出现报错问题的解决方法

    本文实例讲述了Yii使用DeleteAll连表删除出现报错问题的解决方法.分享给大家供大家参考,具体如下: 删除数据的时候,经常会遇到连联判断删除数据的条件,今天用Yii 的CDbCriteria生成 ...

  4. python modulenotfounderror_python 服务器运行代码报错ModuleNotFoundError的解决办法

    一.问题描述 一段 Python 代码在本地的 IDE 上运行正常,部署到服务器运行后,出现了 ModuleNotFoundError: No module named 'xxx" 错误. ...

  5. wifi不断重连报错:eSIR_MAC_CLASS3_FRAME_FROM_NON_ASSOC_STA_REASON解决

    报错如下:[  310.442926] wlan: [1773:E :PE ] limProcessDeauthFrame: 165: Received Deauth frame for Addr: ...

  6. mysql1055_MySQL5.7 group by新特性报错1055的解决办法

    项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的"only_full_group_by&qu ...

  7. Win10QQ和QQ音乐可以正常使用,但网页无法打开,并报错DNS_PROBE_POSSIBLE的解决方法

    网页报错DNS_PROBE_POSSIBLE的解决方法 报错的图文如下:   之前遇到过这个问题,但没有细究,时间匆忙,于是换手机热点来上网,完美的错过了一次装逼成长的机会(笑哭).   今晚上,闲来 ...

  8. Pyton接口自动化相关【易报错问题及解决方法】

    Pyton接口自动化相关[易报错问题及解决方法] 目录:导读 Python怎么链接数据库 python 链接数据库时报错 TypeError: %d format: a number is requi ...

  9. Unexpected token o in JSON at position 1 报错原因及解决方法

    Unexpected token o in JSON at position 1 报错原因及解决方 问题描述: 在做登录页面,实现登录功能,返回token值时,提示 Unexpected token ...

最新文章

  1. 简析 .NET Core 构成体系
  2. arcgis 中label feature太长换行_MapGIS转换为ArcGIS小结
  3. 赛门铁克:“高度怀疑”WannaCry的幕后黑手是朝鲜
  4. C# 3.0 New Language Features (Part 1)
  5. 【Python】Python基础
  6. c语言创建链表存储10个数,C语言编写的建立单向int链表,连续输入10个结点创建链表,并实现在原链表中插入数字、删除数字、查找数字的功能...
  7. 借助 CORS 从 JavaScript 使用 API 应用
  8. 阿里Java编程规约(集合)
  9. LeetCode 1707. 与数组中元素的最大异或值(Trie树)
  10. powershell加win的dns服务器,解决网站负载均衡问题
  11. 前端如何更精准的评估开发时间
  12. Delphi 下用Windows API 创建窗体
  13. ( 转 ) CORS 有一次 OPTIONS 请求的原理
  14. Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat 解决办法
  15. 普中51单片机的贪吃蛇教程
  16. mysql 1114错误_mysql出现错误编码1114怎么办
  17. bulter机器人_机器人库早报|特拉华大学通过人工智能扩大发展劳动力 1.5 倍
  18. Time时间格式化当前时间
  19. java生成短信验证码_Java随机生成手机短信验证码的方法
  20. win10 ISO镜像下载

热门文章

  1. 【pandas之数据清洗和处理和空值处理】
  2. Confluence使用教程-不古出品
  3. 深度学习第四周Key Concepts on Deep Neural Networks习题整理
  4. 04_服务注册Eureka
  5. 莫凡Python学习笔记 一
  6. zookeeper 启动错误Error contacting service. It is probably not running
  7. 年底程序员好找工作吗_博客和意见-“查看者邮件”,这是年底的一种邪恶方式吗? 还是开始新年的好方法......
  8. LINUX下动态链接库的使用-dlopen dlsym dlclose dlerror【zt】
  9. 【CVPR2021】AdderSR: Towards Energy Efficient Image Super-Resolution
  10. WindowsTool