最近在照着《ROS机器人开发实践》来做SLAM仿真,运行9.10.2的两个命令
roslaunch mrobot_gazebo mrobot_laser_nva_gazebo.launch
roslaunch mrobot_navgation fake_nav_cloister_demo.launch
打开仿真环境后,点击rviz里面的2D Nav Goal,发现机器人运动一段距离后,就乱转,到不了地方。
后来用一个发布/cmd_vel的节点试了一下,发现,机器人的角速度是反的,让它左转,它右转。
用其他的机器人模型,同样的控制方法,左右转动和左右箭头是对应的。
参考这个链接 关于ROS+Gazebo通过cmd_vel或键盘控制节点发布速度消息时,仿真小车运动速度相反问题-CSDN博客
并没有解决问题,感觉很神奇,两个轮子差速运动,那就颠倒一下左右轮吧,
在mrobot_body.urdf.xacro文件里面,修改gazebo里面leftJoint和rightJoint里面的内容颠倒一下,如下面所示。
<leftJoint>base_to_wheel_right_joint</leftJoint>
<rightJoint>base_to_wheel_left_joint</rightJoint>
这样机器人就可以正常运行了~
不过这个底层的原因还是没有找到。挖个坑吧,后续填上~