ROS中没有/cmd_vel话题的解决办法

事情的起因: 看看奥特学园P282集https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=282&spm_id_from=pageDriver的时候,跟老师步骤都一样,但是rviz中就是找不到/cmd_vel话题。

解决办法如下:
检查自己的move.xacro(根据自己的文件名而定,即写有差速器插件的代码文件)
检查其中的这几个地方

	<!-- 每一个驱动轮都需要配置传动装置 -->
    <xacro:joint_trans joint_name="left2car" />    <!-- !!!! -->
    <xacro:joint_trans joint_name="right2car" />   <!-- !!!! -->
	<gazebo>
        <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so">
            <rosDebugLevel>Debug</rosDebugLevel>
            <publishWheelTF>true</publishWheelTF>
            <robotNamespace>/</robotNamespace>
            <publishTf>1</publishTf>
            <publishWheelJointState>true</publishWheelJointState>
            <alwaysOn>true</alwaysOn>
            <updateRate>100.0</updateRate>
            <legacyMode>true</legacyMode>
            <leftJoint>left2car</leftJoint> <!-- 左轮 -->   <!-- !!!! -->
            <rightJoint>right2car</rightJoint> <!-- 右轮 -->  <!-- !!!! -->
            <wheelSeparation>${car_radius * 2}</wheelSeparation> <!-- 车轮间距 -->
            <wheelDiameter>${lr_wheel_radius * 2}</wheelDiameter> <!-- 车轮直径 -->
            <broadcastTF>1</broadcastTF>
            <wheelTorque>30</wheelTorque>
            <wheelAcceleration>1.8</wheelAcceleration>
            <commandTopic>cmd_vel</commandTopic> <!-- 运动控制话题 -->
            <odometryFrame>odom</odometryFrame> 
            <odometryTopic>odom</odometryTopic> <!-- 里程计话题 -->
            <robotBaseFrame>base_foot</robotBaseFrame> <!-- 根坐标系 -->
        </plugin>
    </gazebo>

备注是!!!!的地方都要检查,这几个地方的参数就是你原来xacro文件里自己设置的关节名称
在这里插入图片描述
可以看到我这里分别使用left和right将${name}替换即可,也就是说 move.xacro 中的 joint_nameleftJointrightJoint 的参数都要按照你自己定义的关节名称来写。
PS:我当时rviz中找不到/cmd_vel话题,就是因为我原本的xacro文件中的left后面多了个空格,搞的三天都没有任何进展,请大家一定要仔细检查o(╥﹏╥)o

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: "waiting for subscriber to connect to /cmd_vel" 这个问题通常是在ROS系统出现的。这个问题的解决方法是需要确保所有的ROS节点都已经启动,并且正确地连接到了ROS主节点。可以通过在终端输入"rosnode list"命令来检查已经启动的节点,并通过"rostopic list"命令来检查可用的话题。 如果节点没有正确连接到主节点,可以通过"roscore"命令重新启动ROS主节点。如果节点已经启动但仍然无法连接到主节点,可以尝试检查网络连接或者重新安装ROS系统。 ### 回答2: 当出现"waiting for subscriber to connect to /cmd_vel"的提示时,意味着ROS节点正在等待订阅者与主题/cmd_vel建立连接。解决这个问题有几个步骤: 1. 检查节点和主题:首先,确认发送/cmd_vel主题的节点正常运行并运行时间足够长,确保节点已经发布了该主题。可以通过运行`rostopic list`命令来查看当前所有的主题列表,检查/cmd_vel是否存在。 2. 检查订阅者:检查是否有一个订阅者节点正在运行并尝试连接到/cmd_vel主题。可以通过运行`rostopic info /cmd_vel`命令来查看有哪些节点正在订阅/cmd_vel主题。 3. 检查网络连接:如果节点在分布式环境运行,可能存在网络连接故障。确保节点间的网络连接正常,可以使用ping命令或其他网络诊断工具来测试。 4. 检查节点参数:如果节点需要特定的参数配置才能订阅/cmd_vel主题,确保这些参数已正确设置。可以通过运行`rosparam list`命令来查看当前的参数列表,进一步检查节点的参数配置情况。 5. 重新启动节点和订阅者:如果以上步骤都没有解决问题,尝试重新启动发送/cmd_vel主题的节点和订阅者节点。有时候,重新启动可以解决连接问题,特别是在网络环境或节点配置发生变化时。 综上所述,通过检查节点和主题状态、订阅者连接、网络连接、节点参数配置以及重新启动节点和订阅者等步骤,可以解决"waiting for subscriber to connect to /cmd_vel"的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值