
ROS2机器人开发
文章平均质量分 87
ROS2机器人开发实战教程
哥兜兜有糖
看一眼代码就会爆炸
展开
-
ROS 2机器人开发--CMakeLists.txt 文件详解
这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可执行文件或库、链接依赖库、安装路径等。CMake 是一个跨平台的构建工具,不同的版本可能有不同的功能。这行代码确保用户使用的 CMake 版本不低于 3.5,以保证项目能够正确构建。这行代码添加一个可执行文件,talker 是可执行文件的名称,src/talker.cpp 是源文件的路径。这行代码定义了项目的名称。项目的名称在构建过程中会用到,例如生成的库或可执行文件的名称通常会包含项目名称。这行代码查找项目所需的依赖包。原创 2025-03-01 17:18:30 · 460 阅读 · 0 评论 -
ROS 2机器人开发--如何注册编译第一个节点
在ROS 2中,创建和编译你的第一个节点是进入ROS 2世界的重要一步。这个过程不仅让你熟悉ROS 2的工作流程,还能帮助你理解如何组织代码、管理依赖和构建项目。以下是详细的教程,帮助你完成这个过程。原创 2025-03-01 17:14:39 · 1047 阅读 · 0 评论 -
ROS 2机器人开发--坐标变换工具TF与可视化
在ROS 2中,坐标变换工具(TF)是一个用于管理和转换不同坐标系之间的坐标的工具。它允许你在多个坐标系之间进行变换和同步,从而确保传感器数据和运动指令在正确的坐标系中被解释和执行。在实际的机器人开发中,需要接触到感知物体的任务,会使用到红外模块,超声波模块,3D相机等等,但是这些模块测到的结果往往只是自身与物体的距离,而非整个系统中心点与被感知物体的距离,如图所示:感知模块获得数据后,我们需要计算通过计算,换算成整个系统相对于被感知物体的距离,从而消除测量值与真实值之间的误差,原创 2025-02-28 18:35:58 · 465 阅读 · 0 评论 -
ROS 2机器人开发--可视化工具rqt与RViz
rqt是ROS提供的一个图形化用户界面工具集,它允许以插件的形式来实现各种图形工具和接口。RViz是ROS生态系统中的一个重要组成部分,它能够显示来自不同来源的机器人数据,如传感器数据、机器人状态和路径规划结果。RViz的最近更新的功能包括变换库插件的动态加载和切换,插件开发支持,以及用户界面优化。Qt是一个跨平台的应用程序和用户界面框架,它允许以插件的形式来实现各种图形工具和接口。使用时,可以通过命令“rqt”来运行RQt工具和插件。,它提供了一个直观的图形界面,用于显示和交互ROS 2系统中的数据。原创 2025-02-28 18:34:01 · 499 阅读 · 0 评论 -
ROS 2机器人开发--话题通信实战--制作一个可视化系统状态监听工具
创建接口:进入src,打开终端,或者直接cd topic_practice_ws/src进入这个命令的作用是:创建一个名为的新 ROS 2 功能包。使用作为构建系统。添加和作为依赖项。在status_interfaces下面建msg,再在下面建SystemStatus.msg完整目录:src/status_interfaces/msg/SystemStatus.msgbuiltin_interfaces/Time stamp #记录时间戳string host_name #系统名称。原创 2025-02-25 21:39:00 · 1019 阅读 · 0 评论 -
ROS2机器人开发--服务通信与参数通信
服务是基于请求和响应的双向通信机制。参数用于管理节点的设置,并且参数通信是基于服务通信实现的。service call命令用于调用指定的服务,其第一个参数是服务的名字,第二个参数是服务 的接口类型,第三个参数是Request 数据。一般情况下,一个个修改参数很麻烦,如果想要一次性修改多个文件,不妨先将先将参数导出为一个yaml文件,修改完成后,运行时指定这个文件即可。结果中,每一行代表一个服务,前面是服务名字,[ ]里面是服务的接口类型。观察到颜色已经改变,成功!服务是一对一的通信,而话题是多对多的通信。原创 2025-02-23 22:29:54 · 909 阅读 · 0 评论 -
ROS 2机器人开发--话题通信:订阅与发布
在ROS 2中,发布和订阅是实现节点间通信的核心机制。节点可以通过发布消息到特定话题来共享信息,而其他节点则可以通过订阅这些话题来接收消息。这种通信模式是异步的,特别适合用于分布式系统。发布者订阅者话题名称和话题类型。发布者可以类比为信息的生产者,订阅者则是信息的消费者。话题名称类似于信息的标识符,而话题类型则定义了消息的结构和内容格式。下面以海龟模拟器为例, 进一步讲解话题通信。按下ctrl+alt+T打开终端,输入代码如图,打开海龟模拟器。原创 2025-02-22 17:33:45 · 1234 阅读 · 0 评论 -
一文搞懂RGB-D相机 (3D相机)
RGB-D相机(也称3D相机)是一种能够同时获取场景的彩色图像(RGB)和深度信息(D)的传感器。它通过结合传统的彩色相机和深度传感器,提供比单一RGB相机更丰富的三维场景信息。这些信息广泛应用于机器人导航、三维重建、增强现实、人机交互等领域。(Structured Light):通过投射已知图案到场景中,分析变形后的图案与原始图案的差异来计算深度信息。飞行时间相机。原创 2025-02-22 17:15:26 · 1320 阅读 · 0 评论 -
ROS 2机器人开发--第一个节点
创建该功能包时使用了--license Apache-2.0参数,这个文件内容就是Apache-2.0 的协议内容,在2.2.2节中有关于这个协议的简单介绍。该文件是功能包的清单文件,每个ROS 2的功能包都会包含这个文件,和2.2.2节中 Python 功能包中的package.xml 功能相同。当然,除了上面这些文件和文件夹,在实际开发中还可以添加其他目录和文件,比如用于放置地图的map目录、用于放置参数的config 目录等。在C语言中,指针用于存储其他变量的地址,而智能指针的功能也类似。原创 2025-02-20 20:35:01 · 1025 阅读 · 0 评论