问题描述:发布直行的消息,仿真小车却是左转或者右转,或者发布前进信息,小车后退。
解决办法:这个问题是因为urdf或者xacro文件中joint标签中子标签 axis设置出问题,也可能是solidworks转urdf时参数出错,解决办法很简单,先让我们了解一下axis的作用
<axis xyz="0 1 0" />
这代表了轮子绕y轴正转
<axis xyz="0 -1 0" />
这代表了轮子绕y轴反转
当小车前进或者后退时左右轮子均处于同一状态正转或者反转,这样就产生了前进后退运动;
当小车转弯时有两种可能:左转,即右轮正转、左轮不动或者右轮正转、左轮反转,因为模拟时无法保证一个轮子不转,所以此时两轮axis 中y值相反为右轮+1、左轮-1,状态为右轮正转左轮反转。右转同理。
此时我们可以得出:发布直行的消息,仿真小车却是左转或者右转的解决办法,即将左右轮axis均设置为+1,即左右轮转向保持一致;当前进命令变为后退时 将左右轮axis均取反即可。