ros2-6.4.4 两轮差速控制机器人(问题解决)

embedded/2025/1/16 8:07:31/

ros2-6.4.4 两轮差速控制机器人的问题-CSDN博客

上次遇到的问题,经过查看ros2 node list 之后,发现有多个

/robot_state_publisher

这是不正常的,应该是我看视频6.2 的没有及时关闭导致冲突了。

没有修改代码,单纯的重启就解决了。正常显示TF tree 如下:

小鱼老师在视频解释过,left_wheel_link 、right_wheel_link 两个轮子在base_footprint下是差速控制插件发布的。

此时,能正常看到轮子的tf轴转动。

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro"><xacro:macro name="gazebo_control_plugin"><gazebo><plugin name='diff_drive' filename='libgazebo_ros_diff_drive.so'><ros><namespace>/</namespace><remapping>cmd_vel:=cmd_vel</remapping><remapping>odom:=odom</remapping></ros><update_rate>30</update_rate><!-- wheels --><left_joint>left_wheel_joint</left_joint><right_joint>right_wheel_joint</right_joint><!-- kinematics --><wheel_separation>0.2</wheel_separation><wheel_diameter>0.064</wheel_diameter><!-- limits --><max_wheel_torque>20</max_wheel_torque><max_wheel_acceleration>1.0</max_wheel_acceleration><!-- output --><publish_odom>true</publish_odom><publish_odom_tf>true</publish_odom_tf><publish_wheel_tf>true</publish_wheel_tf><odometry_frame>odom</odometry_frame><robot_base_frame>base_footprint</robot_base_frame></plugin></gazebo></xacro:macro>
</robot>

补充下差速控制的参数含义,就是书上6-1 表格。

配置项含义
rosros相关配置,包含命名空间和话题重映射等
update_rate数据更新速率
left_joint左轮关节名称
right_joint右轮关节名称
wheel_separation左右轮子的间距
wheel_diameter轮子的直径
max_wheel_torque轮子最大的力矩
max_wheel_acceleration轮子最大的加速度
publish_odom是否发布里程计
publish_odom_tf是否发布里程计的tf开关
publish_wheel_tf是否发布轮子的tf数据开关
odometry_frame里程计的framed ID,最终体现在话题和TF上
robot_base_frame机器人的基础frame的ID

一些 控制信息;

cmd_vel 就是

bohu@bohu-TM1701:~$ ros2 topic echo /cmd_vel
linear:x: 0.5y: 0.0z: 0.0
angular:x: 0.0y: 0.0z: 0.0
---
linear:x: 0.0y: 0.0z: 0.0
angular:x: 0.0y: 0.0z: 0.0

里程计信息默认的输出话题为odom,查看信息:

    header,表示该消息发布的时间
    pose,表示当前机器人位置和朝向
    twist,表示当前机器人的线速度和角速度

covariance 协方差矩阵信息,小鱼老师说以后讲。在rviz里面Odometry关闭了,没有勾选。

header:stamp:sec: 4564nanosec: 469000000frame_id: odom
child_frame_id: base_footprint
pose:pose:position:x: -1.786928065906287y: -0.8138664866993258z: 0.0009999934627118873orientation:x: 3.9145606329839545e-08y: 1.401121596460272e-07z: -0.96438294476112w: -0.2645099919735544covariance:- 1.0e-05- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1.0e-05- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.001
twist:twist:linear:x: -1.6229530798319845e-05y: -3.1758267246886164e-05z: 0.0angular:x: 0.0y: 0.0z: -9.914752588517208e-05covariance:- 1.0e-05- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1.0e-05- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 1000000000000.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.0- 0.001
---
header:stamp:sec: 4564nanosec: 503000000frame_id: odom
child_frame_id: base_footprint


http://www.ppmy.cn/embedded/154346.html

相关文章

密码机服务器在云计算中的应用与挑战

随着云计算技术的迅猛发展和普及&#xff0c;密码机服务器作为一种高效、专业的数据安全解决方案&#xff0c;正在云计算领域中扮演着越来越重要的角色。本文将探讨密码机服务器在云计算中的应用及其面临的挑战。 云计算技术涉及大量的数据传输和存储&#xff0c;数据的安全性和…

Qt C++ QStatusbar 显示表示状态的图片

1、前言 在C Qt编程中默认主窗口MainWindow底下自带控件QStatusbar&#xff0c;很多情况下都使用其显示程序的连接状态或开关状态&#xff0c;因为时常需要将图片设置为圆形显示&#xff0c;所以这里记录一下常用的设置的代码&#xff0c;方便以后复制粘贴。 2、封装设置状态…

【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、计算机基础概念 1.1、什么是计算机 1.2、什么是编程 1.3、编程语言有哪些 2、Python 背景知识 2.…

新质生产力与数字化转型

在中国经济转型和科技创新的背景下&#xff0c;“新质生产力”作为一个在中国政策语境中提出的新概念&#xff0c;逐渐成为推动经济发展、产业升级和科技进步的核心议题。新质生产力强调通过科技创新、产业升级以及生产要素创新性配置&#xff0c;推动中国经济朝着高质量、绿色…

【数据结构-堆】力扣1792. 最大平均通过率

一所学校里有一些班级&#xff0c;每个班级里有一些学生&#xff0c;现在每个班都会进行一场期末考试。给你一个二维数组 classes &#xff0c;其中 classes[i] [passi, totali] &#xff0c;表示你提前知道了第 i 个班级总共有 totali 个学生&#xff0c;其中只有 passi 个学…

信创改造-龙蜥操作系统搭载MySql、Tomcat等服务

龙蜥操作系统 Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版&#xff0c;它支持多计算架构&#xff0c;也面向云端场景优化&#xff0c;兼容 CentOS 软件生态。Anolis OS 8 旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。…

第一次作业三种方式安装mysql(Windows和linux下)作业

在Windows11上安装sever&#xff08;服务&#xff09;端和客户端 server端安装 打开官网MySQL 进入到主页 点击DOWMLOAD 进入下载界面 点击下方MySQL Community (GPL) Downloads 进入社区版mysql下载界面 点击 MySQL Community Server 进入server端下载 选择8.4.3LTS&…

matplotlib将画的图像存于内存

buf io.BytesIO()plt.savefig(buf, formatpng)buf.seek(0)plt.close() io.StringIO() 和 io.BytesIO() 是 Python 标准库 io 模块中的两个类&#xff0c;分别用于创建内存中的文本流和二进制流。它们常常用于单元测试、文件操作的模拟等场景。 基础概念 io.StringIO(): 创建…