分类: ros2学习

15 篇文章

ROS2学习记录(15)-RQT:模块化可视化工具
在一定场合下,可能只需要一些简单的模块化的可视化操作,比如只显示一个摄像头的图像,使用Rviz的话,难免会觉得操作有点麻烦。这时就可以使用rqt这个简单的模块化的可视化工具。 在命令行窗口安装: sudo apt install ros-humble-rqt 启动: rqt 在rqt的主页,可以通过其顶部菜单栏选项,选择“plugins->logg…
ROS2学习记录(14)-Rviz:三维可视化显示平台
Rviz是一款机器人开发过程中的数据可视化软件,用于可视化机器人模型、传感器信息、环境信息等等。 Rviz的核心框架是基于Qt可视化工具打造的一个开放式平台,官方出厂就自带了很多机器人常用的可视化显示插件,只要我们按照ROS中的消息发布对应的话题,就可以看到图形化的效果了。如果我们对显示的效果不满意,或者想添加某些新的显示项,也可以在Rviz这个平…
ROS2学习记录(13)-Gazebo:三维物理仿真平台
Gazebo是ROS系统中最为常用的三维物理仿真平台,支持动力学引擎,可以实现高质量的图形渲染,不仅可以模拟机器人及周边环境,还可以加入摩擦力、弹性系数等物理属性。 类似Gazebo这样的仿真平台,可以帮助我们验证机器人算法、优化机器人设计、测试机器人场景应用,为机器人开发提供更多可能。 为了确保系统中已经完整安装了Gazebo相关的功能包,可以通…
ROS2学习记录(12)-URDF:机器人建模方法
机器人的组成:建模描述机器人的过程中,我们自己需要先熟悉机器人的组成和参数,比如机器人一般是由硬件结构、驱动系统、传感器系统、控制系统四大部分组成,市面上一些常见的机器人,无论是移动机器人还是机械臂,我们都可以按照这四大组成部分进行分解。 硬件结构就是底盘、外壳、电机等实打实可以看到的设备; 驱动系统就是可以驱使这些设备正常使用的装置,比如电机的驱…
ROS2学习记录(11)-TF:机器人坐标系管理
坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系。 在机械臂形态的机器人中,机器人安装的位置叫做基坐标系Base Frame,机器人安装位置在外部环境下的参考系叫做世界坐标系World Frame,机器人末端夹爪的位置叫做工具坐标系,外部被操作物体的位置叫做工件坐标系,在机械臂抓取外部物体的过程中…
ROS2学习记录(10)-launch
Launch启动文件可以一次性启动多个节点文件,是ROS系统中多节点启动与配置的一种脚本。 ROS2中的Launch文件就是基于Python描述的,其核心目的是启动节点,我们在命令行中输入的各种参数,在Launch文件中,通过类似这样的很多代码模版,也可以进行配置,甚至还可以使用Python原有的编程功能,大大丰富了启动过程中的多样化配置。它就像粘…
ROS2学习记录(9)-DDS
DDS是ros2相对于ros1而言最大的变化,话题、服务、动作,他们底层通信的具体实现过程,都是靠DDS来完成的,它相当于是ROS机器人系统中的神经网络。 DDS本质上也是一种通信模型,常见的通信模型如下: 第一种,点对点模型,许多客户端连接到一个服务端,每次通信时,通信双方必须建立一条连接。当通信节点增多时,连接数也会增多。而且每个客户端都需要知…
ROS2学习记录(8)-分布式通信
在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中,这种结构可以将原本资源消耗较多的任务,分配到不同的平台上,减轻计算压力,这就是分布式通信框架的典型应用之一。 只要两个计算机安装好ROS2,并且处于同一网络中,他们就可以实现之前讲过的话题、服务、动作等通信了,就像在一个电脑里一样。 如果使用虚拟机,需将虚拟机网络修改为桥…
ROS2学习记录(7)-参数
参数是ROS机器人系统中的全局字典,可以运行多个节点中共享数据。 比如在机器视觉识别的时候,有很多参数都会影响视觉识别的效果。 在ROS系统中,参数是以全局字典的形态存在的,什么叫字典?就像真实的字典一样,由名称和数值组成,也叫做键和值,合成键值。或者我们也可以理解为,就像编程中的参数一样,有一个参数名 ,然后跟一个等号,后边就是参数值了,在使用的…
ROS2学习记录(6)-动作
动作也是ros2的一种通信机制,目的就是便于对机器人某一完整行为的流程进行管理。 动作就是在下令让机器人完成什么动作时及时反馈,告诉客户端执行到哪一步了,并且让客户端随时可以下令取消动作。 动作和服务类似,使用的也是客户端和服务器模型,客户端发送动作的目标,想让机器人干什么,服务器端执行动作过程, 控制机器人达到运动的目标,同时周期反馈动作执行过程…