……继续阅读 » 4年前 (2021-04-26) 1623浏览 0评论2881个赞
以下安装流程完全参考官方wiki:……继续阅读 » 4年前 (2021-04-26) 1582浏览 0评论2294个赞
1. 设置编码sudo locale-gen en_US en_US.UTF-8sudo update-locale LC_ALL=en_U……继续阅读 » 4年前 (2021-04-26) 2315浏览 0评论2860个赞
workspace是ROS2中的工作空间,也是我们开发机器人代码的位置。 ROS2安装的系统目录称之为“underlay”,我们自己创建的工作空间称之为“overlay”,在一台电脑上往往有多个工作空间。我们可以通过source不同空间的环境变量脚本来更换所使用的w……继续阅读 » 4年前 (2021-04-26) 2988浏览 0评论2874个赞
原作者:Evan Ackerman 文章来源:IEEE Spectrum 编译:沈永强 ……继续阅读 » 4年前 (2021-04-26) 2727浏览 0评论2355个赞
小海龟(Turtlesim)是ROS2中一个非常重要的入门级例程,通过海龟仿真,我们可以了解到很多ROS2的底层原理,涉及节点、话题、服务等核心概念。 1.安装海龟仿真器Linux:……继续阅读 » 4年前 (2021-04-26) 2543浏览 0评论2261个赞
和ROS1一样,ROS2中的各项资源也是通过计算图(“ ROS (2) graph”)联系到一起的。计算图是一个由各种ROS2元素组成的网络,共同完成数据的传输,其中每一个完成具体功能的模块称之为“节点”(Node),例如控制车轮速度、获取雷达数据等,节点之间通过话题(Topic……继续阅读 » 4年前 (2021-04-26) 1923浏览 0评论214个赞
大道至简,ROS2将复杂的机器人系统拆解成许多模块节点,而这些节点之间则是通过一个至关重要的通道完成数据交换的,这个通道就是“话题”。……继续阅读 » 4年前 (2021-04-26) 1646浏览 0评论2808个赞
原作者:Michael Ferguson 文章来源:The Robot Report 编译:沈永强 ……继续阅读 » 4年前 (2021-04-26) 1220浏览 0评论2731个赞
原作者:Evan Ackerman 文章来源:IEEE Spectrum 编译:沈永强 ……继续阅读 » 4年前 (2021-04-26) 2157浏览 0评论2312个赞
之前讲的话题通信是基于订阅/发布机制的,无论有没有订阅者,发布者都会周期发布数据,这种模式适合持续数据的收发,比如传感器数据。机器人系统中还有另外一些配置性质的数据,并不需要周期处理,此时就要用到另外一种ROS通信方式——服务(Service)。 服务是基于客户端/……继续阅读 » 4年前 (2021-04-26) 2673浏览 0评论1874个赞
参数也是ROS2中很重要的一个概念,主要作用是对节点功能的配置,在ROS2中,每个节点都有自己的参数,这些参数可以用整型数、浮点数、布尔型数、字符串和列表来描述。 依然是以小海龟仿真器为例,看看里边有哪些参数。 1.启动小海龟仿真器……继续阅读 » 4年前 (2021-04-26) 2308浏览 0评论370个赞
之前介绍到的话题和服务是ROS中最重要的两种底层通信机制,但也并不是说能解决所有应用层的问题,举一个例子,如果要让机械臂抓取一个物体,我们不仅要发出指令,还需要获取机械臂的实时反馈,如果直接用话题和服务也可以实现,不过一下得上好几个,有点麻烦。 所以针对类似的场景,……继续阅读 » 4年前 (2021-04-26) 1667浏览 0评论2853个赞
在终端中运行ROS2节点时,节点的日志信息会在终端中显示出来,但是这种方式呈现的日志比较凌乱,所以ROS2提供了一个专门用于管理日志信息的可视化工具——rqt_console。今天我们就来看看这个工具是如何使用的。 1.启动 首先打开……继续阅读 » 4年前 (2021-04-26) 2107浏览 0评论1590个赞
到现在为止,每次启动一个ROS2中的节点,我们都需要开启一个新的终端运行ros2 run指令,如果机器人系统中的节点很多,这样岂不是很麻烦。 ROS2针对这个问题,专门设计了launch启动文件,可以通过一个类似脚本的文件,一起启动多个节点并允许在文件中对节点进行配……继续阅读 » 4年前 (2021-04-26) 2629浏览 0评论1538个赞
有的时候我们希望在别人已有的数据集上做开发,或者复现之前已经构建好的场景数据,这时候就可以用ROS2中的ros2 bag工具啦。 ros2 bag是一个命令行工具,可以实现对ROS2系统中话题数据的录制和回放,选定的数据会被打包放到一个数据库文件中,未来使用该工具即……继续阅读 » 4年前 (2021-04-26) 1594浏览 0评论399个赞
ROS2中的工作空间类似我们常说的概念——“工程”,是我们在ROS中开发具体项目的空间,所有功能包的源码、配置、编译都在该空间下完成。 我们可能会同时开发多个项目,就会产生多个工作空间,所以工作空间之间也有一个层次的问题,类似于优先级的概念,比如不同工作空间中有同名……继续阅读 » 4年前 (2021-04-26) 1991浏览 0评论2549个赞
功能包是ROS2中组织代码的基本容器,方便我们编译、安装、分发开发的代码,一般来讲,每个功能包都是用来完成某项具体的功能相对完整的单元。 ROS2中的功能包可以使用CMake或者Python两种方式来编译,其本身是一个“文件夹”,但和文件夹不同的是,每个功能包中都会……继续阅读 » 4年前 (2021-04-26) 1794浏览 0评论2515个赞
ROS2计算图中的每个节点都各司其职的在运行某个功能单元,节点之间也难以避免会有数据的传输,也就是通过我们之前介绍的话题和服务实现通信。之前我们已经通过命令行实现过话题的发布和订阅,本篇我们就来尝试下如何通过C++代码来实现发布者和订阅者。 1.创建功能包……继续阅读 » 4年前 (2021-04-26) 3090浏览 0评论2257个赞
上一篇我们通过C++实现了发布者和订阅者,本篇我们试试用Python来实现同样的功能。 1.创建功能包 首先我们在之前创建的dev_ws工作空间中来创建一个放置节点代码的功能包。 打开一个新的终端,cd到dev_ws/src目录下,……继续阅读 » 4年前 (2021-04-26) 1302浏览 0评论1462个赞
节点之间通过服务通信时,发送请求的一端称之为客户端(Client),应答的一端称之为服务器(Server),请求和应答的数据结构使用srv文件描述。 接下来我们就尝试实现一个简单的服务通信模型,客户端发送两个加数,服务器完成加数求和之后应答求和结果。 1.……继续阅读 » 4年前 (2021-04-26) 3121浏览 0评论788个赞