环境:ubuntu16.04 ros-kinetic gazebo7.16
针对的是关节类型活动类型的,如下面案例中:
<joint name="axis_to_link" type="revolute">
问题表现:模型在gazebo世界中出现重力异常,或者漂浮状态,甚至飞起状况.
原因是:加载urdf模型到gazebo中时候,我们没有定义活动关节的pid,导致gazebo无法进行该活动关节的计算,导致上述情况出现.
解决方式:在启动urdf模型的launch文件中添加加载一个语句,加载一个yaml文件,里面写有活动关节的pid参数(这个需要调整至合适的,一般随便填写也可以解决了上述的问题表现的.)
launch文件添加语句:
<rosparam command="load file="$(find package_a)/路径/xx.yaml"/>
yaml文件中pid定义样式:
gazebo_ros_control:
pid_gains:
# these gains are used by the gazebo_ros_control plugin
axis_to_link:
p: 500.0
i: 0.01
d: 300.0
通过添加pid的定义,可以解决了urdf模型因为活动关节原因异常情况发生.
这里要注意的是yaml文件的填写样式,否则,没办法正常把关节的pid给到gazebo的.