ROS 使用 gazebo 仿真时遇到的问题

No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/joint1

据说这条错误提示可以忽略。

通过配置 pid 可以解决,本人参考https://git.univ-bpclermont.fr/laurent.malaterre/local_a7/blob/25304fd5391af87a951e04e36239e885798d7911/ipcar_robot/config/controllers.yaml 中的方法对机械臂仿真配置文件(arm_gazebo_control.yaml)修改后解决。修改部分如图所示:

ROS 使用 gazebo 仿真时遇到的问题


[ERROR] [1590542381.200538125, 0.266000000]: GazeboRosControlPlugin missing <legacyModeNS> while using DefaultRobotHWSim, defaults to true.
This setting assumes you have an old package with an old implementation of DefaultRobotHWSim, where the robotNamespace is disregarded and absolute paths are used instead.
If you do not want to fix this issue in an old package just set <legacyModeNS> to true.

该问题是功能包版本问题。

解决方法:在机械臂的 urdf 描述文件中,对 gazebo 插件描述添加 <legacyModeNS>true</legacyModeNS> 可以解决

如图所示:

ROS 使用 gazebo 仿真时遇到的问题


机械臂在 gazebo 中抖动问题:

主要是机械臂的物理参数设置问题,例如惯性矩阵、质量等参数。在不考虑物理属性的前提下,将质量设置为较小值,惯性矩阵设置为较大的值。可以参考已有模型,如 ur 系列机械臂。