已解决Waiting for subscriber to connect to /cmd_vel

一、背景

在gazebo当中使用自己建模的urdf模型进行键盘控制的运动仿真,在能够显示出模型之后自己编写了一个launch文件进行启动,但是一直出现Waiting for subscriber to connect to /cmd_vel这个错误。

二、解决办法

如果urdf模型文件没问题就是没有添加启动插件

为了让 Gazebo 能够控制你的模型,需要在 URDF 中添加一个 Gazebo 插件。

我的是差速轮,在 URDF 文件末尾( </robot> 之前)添加以下内容就解决了

<gazebo>
  <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
    <leftJoint>joint_wheel1</leftJoint>
    <rightJoint>joint_wheel2</rightJoint>
    <leftJoint>joint_wheel3</leftJoint>
    <rightJoint>joint_wheel4</rightJoint>
    <wheelSeparation>0.2</wheelSeparation> <!-- 轮子之间的距离,根据你的模型调整 -->
    <wheelDiameter>0.1</wheelDiameter> <!-- 轮子直径,根据你的 STL 文件调整 -->
    <robotBaseFrame>base_link</robotBaseFrame>
    <publishWheelJointState>true</publishWheelJointState>
    <commandTopic>cmd_vel</commandTopic>
    <odometryTopic>odom</odometryTopic>
    <odometryFrame>odom</odometryFrame>
    <robotNamespace>/</robotNamespace>
    <updateRate>100</updateRate>
  </plugin>
</gazebo>
  • wheelSeparation 和 wheelDiameter 需要根据你的模型实际尺寸调整(从 URDF 的 origin 和 STL 文件推算)。

  • commandTopic 设置为 cmd_vel,这是接收速度命令的话题(类型geometry_msgs/Twist)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值