背景:
在Gazebo 中对复合机器人(移动底盘加机械臂)进行仿真,即:需要能够用键盘控制底盘的移动,并且用moveit控制机械臂。
系统:ubuntu16.04;ROS kinetic;Gazebo 7.16
问题描述:
在agv底盘的xacro文件中,配置两轮差速的插件<plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">;
在机械臂的xacro文件中,配置机械臂控制的插件plugin name="gazebo_ros_controller" filename="libgazebo_ros_control.so">。
此时启动Gazebo仿真环境,用rostopic list查看话题(确实有/cmd_vel话题),于是试图用teleop_twist_keyboard控制底盘运动。但是没有任何反应,而此时是可以用moveit控制机械臂的;把机械臂的plugin注释掉,此时便可以控制底盘运动了。推测是两个plugin 发生了冲突。
上网查阅,发现鱼香ROS在知乎上提到过相同的问题(https://zhuanlan.zhihu.com/p/402596766 “还有就是插件冲突这种,不过大家应该很少遇到,遇到了就很难受了。比如:两轮差速插件和机械臂的轨迹执行插件不要放在都放在urdf中加载,会冲突导致轮子失效。不要问小鱼怎么知道的”)
请问这篇知乎帖子的意思是两个插件不要放在同一urdf文件中吗?我是将底盘和机械臂各自写为一个xacro文件,最后通过一个总的xacro来汇总两个部分。这样都会冲突的话,那两个插件应该如何配置呢?
(感谢看完!若有思路还请不吝赐教)