节点之间通过服务通信时,发送请求的一端称之为客户端(Client),应答的一端称之为服务器(Server),请求和应答的数据结构使用srv文件描述。 接下来我们就尝试…
上一篇我们通过C++实现了发布者和订阅者,本篇我们试试用Python来实现同样的功能。 1.创建功能包 首先我们在之前创建的dev_ws工作空间中来创建一个放置节点代…
ROS2计算图中的每个节点都各司其职的在运行某个功能单元,节点之间也难以避免会有数据的传输,也就是通过我们之前介绍的话题和服务实现通信。之前我们已经通过命令行实现过话题的发布和订阅…
功能包是ROS2中组织代码的基本容器,方便我们编译、安装、分发开发的代码,一般来讲,每个功能包都是用来完成某项具体的功能相对完整的单元。 ROS2中的功能包可以使用C…
ROS2中的工作空间类似我们常说的概念——“工程”,是我们在ROS中开发具体项目的空间,所有功能包的源码、配置、编译都在该空间下完成。 我们可能会同时开发多个项目,就…
有的时候我们希望在别人已有的数据集上做开发,或者复现之前已经构建好的场景数据,这时候就可以用ROS2中的ros2 bag工具啦。 ros2 bag是一个命令行工具,可…
到现在为止,每次启动一个ROS2中的节点,我们都需要开启一个新的终端运行ros2 run指令,如果机器人系统中的节点很多,这样岂不是很麻烦。 ROS2针对这个问题,专…
在终端中运行ROS2节点时,节点的日志信息会在终端中显示出来,但是这种方式呈现的日志比较凌乱,所以ROS2提供了一个专门用于管理日志信息的可视化工具——rqt_console。今天…
之前介绍到的话题和服务是ROS中最重要的两种底层通信机制,但也并不是说能解决所有应用层的问题,举一个例子,如果要让机械臂抓取一个物体,我们不仅要发出指令,还需要获取机械臂的实时反馈…
参数也是ROS2中很重要的一个概念,主要作用是对节点功能的配置,在ROS2中,每个节点都有自己的参数,这些参数可以用整型数、浮点数、布尔型数、字符串和列表来描述。 依…
之前讲的话题通信是基于订阅/发布机制的,无论有没有订阅者,发布者都会周期发布数据,这种模式适合持续数据的收发,比如传感器数据。机器人系统中还有另外一些配置性质的数据,并不需要周期处…
大道至简,ROS2将复杂的机器人系统拆解成许多模块节点,而这些节点之间则是通过一个至关重要的通道完成数据交换的,这个通道就是“话题”。 一个节点可以通过多个话题向外发布数据,也可以…
和ROS1一样,ROS2中的各项资源也是通过计算图(“ ROS (2) graph”)联系到一起的。计算图是一个由各种ROS2元素组成的网络,共同完成数据的传输,其中每一个完成具体…
小海龟(Turtlesim)是ROS2中一个非常重要的入门级例程,通过海龟仿真,我们可以了解到很多ROS2的底层原理,涉及节点、话题、服务等核心概念。 1.安装海龟仿…
workspace是ROS2中的工作空间,也是我们开发机器人代码的位置。 ROS2安装的系统目录称之为“underlay”,我们自己创建的工作空间称之为“overla…
1. 设置编码 sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US…
2020年,Ubuntu最新的LTS版本20.04如期而至,古月君早就摩拳擦掌想要尝试一下,今天就大胆来一次硬盘安装。 笔记本型号:小米15.6 Pro …