随着机器人技术的发展和应用场景的不断扩大,ROS(Robotic Operating System)作为一种流行的机器人操作系统,不断进行着升级和改进。最近,ROS又推出了新版本——ROS Noetic,那么它都新增了哪些功能和改进细节呢?本文将会对ROS Noetic的新功能和改进进行深入探究。
首先,ROS Noetic相对以往版本有了诸多的改进,让我们一一来看一下。
1.更稳定的用于Python 3的ROS2 Python代码
在ROS Noetic中,Python 2.x被正式弃用,只支持Python 3.x。当然,很多ROS用户一定会感到不适应,因为大多数ROS软件包都还是基于Python 2.x。
不过,ROS Noetic为大家增加了一种新方法,在允许用户编写Python代码的同时,可以使用“ros2 run”命令将Python 2代码包装在Python 3中。这有助于从Python 2移植到Python 3,同时提高了整体代码的可维护性。
2.改进的系统结构
ROS Noetic的另一个改进是修改了系统结构,以便更好地支持新兴的硬件架构。此外,ROS系统的各个组件之间也更加紧密相连。
在过去的版本中,ROS原生插件安装在操作系统级别,这意味着安装了某些插件后,将在所有ROS节点中自动生效。在ROS Noetic中,这种安装方式已经被废弃,插件现在需要专门安装在ROS2包中。
这使ROS更具可扩展性和可定制性,可以更好地满足不同用户的需求。
3.改进的可视化调试工具
ROS Noetic拥有更好的可视化调试工具,这可以缩短调试时间,使开发人员更快地找到问题并解决它们。例如,为了检查点云数据覆盖了哪些区域,我们可以使用RViz 3D可视化工具。更棒的是,ROS Noetic提供了对三维物体建模和场地模拟的支持,使得开发人员可以使用可视化模拟来快速验证算法的正确性。
4.更好的机器学习集成
机器学习正在成为机器人领域的热门应用之一。为了更好地支持机器学习模块的集成,ROS Noetic自带了许多常见的机器学习框架,包括TensorFlow、PyTorch等。新的功能使得机器人的深度学习开发更加快速高效。此外,ROS Noetic还包括了几个基于机器人的AI示例,例如手部姿势识别和基于图像的物体检测。
5.更好的WebSockets支持
ROS Noetic在WebSockets方面做出了很大的改进。该版本中的ROS WebSocket支持RFC6455,这是websocket通讯的标准协议。这使得使用WebSockets进行通信变得更加可靠和可扩展。
接下来,我们来看看ROS Noetic的新增功能。
1.改进的ros2 bag工具
ROS bag是ROS的一种通用机制,用于记录和回放由ROS节点发布的数据流。ROS Noetic改良了ros2 bag工具,它现在可以将MSG格式与CSV格式相互转换。这使得用户能够更轻松地将数据与其它工具集成。
2.增强了Docker支持
ROS Noetic提供了一个更好的Docker镜像,该镜像还配备了一个Autoware部署示例。新的镜像在创建过程中遵循ROS公共镜像约定,并具有调试工具,如rqt和rviz。
3.由ROS 1迁移到ROS 2
ROS Noetic为用户提供了在同一机器或在不同的机器之间迁移ROS代码的简单方法,这在过去的ROS版本中是不可行的。ROS Noetic使用可移植发行版的方式来支持这种不兼容的迁移。同时,Ros1_bridge软件包还提供了一种将ROS 1和ROS 2节点进行连接的方式。这些新的功能使得更容易将现有的ROS 1代码迁移到ROS 2。
以上是ROS Noetic主要新增的功能和改进细节,看完之后,你一定会想知道如何安装,使用这个版本了吧?别急,我们现在就来一起学习一下怎么安装和使用。
- 安装ROS Noetic
要安装ROS Noetic,我们需要Ubuntu 20.04或Mint 20的支持。通过下面的命令,我们可以添加ROS Noetic的软件源:
$ sudo apt update
$ sudo apt install curl gnupg2 lsb-release
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
$ sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
接下来,我们可以使用下面的命令安装ROS Noetic完整版:
$ sudo apt update
$ sudo apt install ros-noetic-desktop-full
- 使用ROS Noetic
在ROS Noetic中,我们可以使用常规的ROS工具来创建、编译和执行代码,例如roslaunch、rosrun和catkin_make等。此外,ROS Noetic增加了一些新的工具,例如ros2 launch、colcon build和colcon test等。
下面是运行一个ROS Noetic程序的示例。首先,我们需要使用下面的命令创建一个ROS包:
$ cd ~/ros_work/src
$ ros2 pkg create my_package –-build-type ament_python
现在,我们可以在my_package目录中创建一个Python节点,名为“hello_node”。我们可以创建一个名为“main.py”的文件,并在其中添加以下内容:
import rclpy
from rclpy.node import Node
class HelloWorld(Node):
def __init__(self):
super().__init__('hello_node')
self.timer_ = self.create_timer(1, self.timer_callback)
self.i = 0
def timer_callback(self):
self.get_logger().info('Hello %d' % self.i)
self.i += 1
def main(args=None):
rclpy.init(args=args)
node = HelloWorld()
rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()
通过下面的命令可以编译和运行节点:
$ cd ~/ros_work
$ colcon build
$ . install/setup.bash
$ ros2 run my_package main
在控制台上,我们应该看到“Hello”和递增的数字显示。
综上所述,ROS Noetic是一个令人期待的新版本,它为ROS用户带来了更好的可定制性和可维护性,同时还新增了一些有用的功能和工具。如果您有机器人领域的开发需求,那么ROS Noetic是一款值得一试的工具。