首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ROS 2发布第三个正式版——Crystal Clemmys

也许你还不知道,ROS 2刚刚发布了第三个正式版——Crystal Clemmys,这个版本支持以下平台:

Tier 1 platforms:

Ubuntu 18.04 (Bionic)

Mac OS X 10.12 (Sierra)

Windows 10

Tier 2 platforms:

Ubuntu 16.04 (Xenial)

ROS 2也在不断完善自身的功能,在最新的Crystal版本中,又添加了如下新特性:

Actions in C / C++ (server / client examples.)

gazebo_ros_pkgs

image_transport

navigation2

rosbag2

rqt

Improvement in memory management

Introspection information about nodes

Launch system improvements

Arguments

Nested launch files

Conditions

Pass params to Nodes

Laid the groundwork for file-based logging and /rosout publishing

Time and Duration API in Python

Parameters work with Python nodes

注:可以在https://github.com/ros2/ros2/releases找到更多发布信息。

说了这么多,还是赶紧上手尝试一下吧!

— 一、安装ROS 2—

首先当然是安装ROS 2 Crystal,可以按照以下步骤进行安装:

1. 设置UTF-8编码

2. 更新软件源

3. 安装ros2(选一个速度比较快的源哦)

桌面版安装(包含ROS, RViz, demos, tutorials)

基础版安装(包含通讯库、消息包、命令行工具,没有GUI工具)

4. 安装自动补全工具

ros2的命令行使用argcomplete工具进行补全,所以需要安装该工具:

5. 设置环境变量

和ROS 1一样,为了让系统找到ROS命令,安装完成后需要将以下语句添加到.bashrc中:

6. 安装RWM

ROS 2默认安装的RWM是FastRTPS,也可以使用如下方式安装OpenSplice或RTI Connext的RWM:

在使用的时候通过设置环境变量,即可更换需要的RWM:

7. 安装ROS 1

目前ROS 2的功能还不是很全面,很多功能包需要依赖ROS 1,所以还是需要安装ROS 1的,安装方法可以参考ROS 1wiki教程。

ROS 2和ROS 1之间通过ros-bridge通信,需要安装:

— 二、创建工作空间—

安装完成后,我们当然要迫不及待的试下ROS 2了,还记不记得ROS 1的wiki教程,第一步要干什么?

没错,创建工作空间!在ROS 2中创建工作空间非常简单,在home下创建一个文件夹即可:

— 三、编译与运行节点—

然后和ROS 1一样,在工作空间下编译,这里使用的可不是catkin_make命令,而是ROS 2全新升级的colcon编译器,使用的编译命令也改成了“colcon build”。

因为没有任何功能包,所以编译很快,再看看工作空间下,是不是多出了几个文件夹:

其中的build和install大家应该都很熟悉,和ROS 1是一样的,但是多出了一个log文件夹,用来保存编译过程中的日志信息。小伙伴们可以回忆一下,ROS 1中的log文件是放在哪里的呢?

现在我们就可以试试编译功能包了。这里我们直接使用官方提供的example试试,在src中下载功能包源码:

然后回到工作空间下使用“colcon build”编译:

编译完成的功能包都会放置在install文件夹下,可以偷偷看下有没有顺利生成可执行文件。

接下来就可以运行节点了,当然不能忘记设置环境变量:

然后运行talker和listener节点:

现在两个节点就开始通信了,有没有发现,我们并没有使用类似roscore的命令启动master,这就是ROS 2最大的改变,真正成为了去中心化的分布式系统

— 四、创建功能包—

以上我们使用官方提供的功能包,那么如何创建自己的功能包呢?同样使用ROS 2提供的命令行工具。

比如说我们想创建一个叫test_pkg的功能包,其中包含一个节点my_node,那么可以直接使用以下命令创建:

--cpp-node-name后边是节点名,ROS 2会自动帮助我们创建一个节点的模板。

创建成功后,在src下就可以看到test_pkg功能包了,打开看下一下,其中src文件夹里还自动生成了my_node的代码:

功能包中除了放置代码的src和include文件夹,最重要的依然是CMakeLists.txt和Package.xml,其中的内容基本和ROS1相同。在工作空间中编译代码后,install里就可以看到编译成功的test_pkg功能包。

这里也可以使用如下选项编译某一个功能包:

运行这个节点的效果如下:

OK,到这里为止,是不是感觉ROS 2的操作和ROS 1并没有太大的差别,原理上都还是类似的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181217G1LGIU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券