ROS gazebo 中启动机器人模型异常(机器人零件到原点,零件散落,机器人起飞)

这几天遇到一个问题,就是为在给solidworks 导出的URDF模型添加了ROS control相关的插件(完全按照官方教程)启动gazebo的launch文件以后,机器人模型的所有零件缩到了原点,我查阅了好多资料,有的说是碰撞属性没有加,有的说是没有在URDF中添加 mass的参数 还有......
我的问题一直没有解决,机器人的零件还是缩到了原点

后来偶然发现,我照搬官方的配置文件(如下图)中的PID参数有问题,具体的来说,P I D的值太大了,后来我把P的值设置为1, i的值为 0.001,d的值为0.01,我的机器人就没有问题了

在此,我遇到的问题给新手朋友们提供了一个参考,在你确认mass 碰撞属性等(一般Solidworks导出的没有问题)不存在错误的时候,gazebo机器人模型还是有问题,检查 p  i  d参数的问题,不妨把 p i d 的参数改为 0 0 0 看看,看看是不是它的问题。

rrbot:
  # Publish all joint states -----------------------------------
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 50  

  # Position Controllers ---------------------------------------
  joint1_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint1
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint2_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint2
    pid: {p: 100.0, i: 0.01, d: 10.0}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在使用 `roslaunch` 启动机器人模型前,需要先安装 Gazebo机器人模型相关的包,例如: ``` sudo apt-get install ros-<distro>-gazebo-ros-pkgs ros-<distro>-gazebo-ros-control sudo apt-get install ros-<distro>-turtlebot3-* ``` 其 `<distro>` 是 ROS 版本号,例如 `melodic`。 接下来,创建一个 launch 文件,例如 `turtlebot3_gazebo.launch`,内容如下: ```xml <launch> <!-- 启动 Gazebo --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_world.world"/> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="gui" value="true"/> <arg name="headless" value="false"/> </include> <!-- 启动机器人模型 --> <arg name="model" default="burger"/> <arg name="x" default="0"/> <arg name="y" default="0"/> <arg name="z" default="0"/> <arg name="yaw" default="0"/> <include file="$(find turtlebot3_gazebo)/launch/turtlebot3.launch.xml"> <arg name="model" value="$(arg model)"/> <arg name="x_pos" value="$(arg x)"/> <arg name="y_pos" value="$(arg y)"/> <arg name="z_pos" value="$(arg z)"/> <arg name="yaw" value="$(arg yaw)"/> </include> </launch> ``` 这个 launch 文件首先启动 Gazebo,然后再启动机器人模型。其 `world_name` 指定了 Gazebo 的场景,`model` 指定了要启动机器人模型类型(例如 `burger` 或 `waffle`),`x`、`y`、`z` 和 `yaw` 则指定了机器人模型在场景的初始位置和姿态。 最后,在终端运行以下命令启动机器人模型: ``` roslaunch turtlebot3_gazebo turtlebot3_gazebo.launch ``` 注意,需要使用正确的包名和 launch 文件名。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值