本篇了解ROS/ROS2的发展历程及ROS2安装运行。
一.ROS/ROS2发展历程
ROS(机器人操作系统)发展历程如下:
全新的ROS2在2017年年底正式发布,到2024年5月,ROS2第二个长期支持版本ROS 2 Jazzy发布。
ROS的核心目标是提高机器人的软件复用率。ROS主要由由通信机制、开发工具、应用功能、生态系统四大部分组成,具备全球化社区、开源开放的生态、跨平台使用、工业应用支持的特点。下面了解下ROS2与ROS1系统架构,可以看到ROS2摒弃了Master节点管理器、引入更复杂也更完善的DDS系统通信机制,同时可选的操作系统更多更广泛。
ROS2设计了一个ROS Middleware,简称RMW,也就是指定一个标准的接口,如如何发数据,收数据,数据的各种属性配置等。厂家接入ROS社区,按照RMW标准写一个适配接口把自家DDS移植过来。对用户来说,可以安装使用适合的DDS而不需要更改应用程序,可以轻松更换底层的通信系统。
ROS2概念有如下:
●工作空间(Workspace):开发过程的大本营,放置各种开发文件。
●功能包(Package):功能源码的聚集地,用于组织某一机器人功能。
●节点(Node):机器人的工作细胞,是代码编译生成的一个可执行文件。
●话题(Topic):节点间传递数据的桥梁,周期传递各功能之间的信息。
●服务(Service):节点间的你问我答,用于某些机器人功能和参数的匹配置。
●通信接口(Interface):数据传递的标准结构,规范机器人的各种数据形态。
●参数(Parameter):机器人系统的全局字典,可定义或查询机器人的配置参数。
●动作(Action):完整行为的流程管理,控制机器人完成某些动作。
●分布式通信(DistributedCommunication):多计算平台的任务分配,实现快速组网。
●DDS(Data Distribution Service):机器人的神经网络,完成数据的高效安全传递。
二.ROS2 安装
这里自行准备好虚拟机安装上ubuntu,开始下面ROS2安装,在控制台下输入下列命令。可参考ROS官网ROS2安装。
1.设置编码
- sudo apt update && sudo apt install locales
- sudo locale-gen en_US en_US.UTF-8
- sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
- export LANG=en_US.UTF-8
2.添加源
- sudo apt update && sudo apt install curl gnupg lsb-release
- sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
- echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
3.安装ROS2
- sudo apt update
- sudo apt upgrade
- sudo apt install ros-foxy-desktop
4.设置环境变量
- source /opt/ros/foxy/setup.bash
- echo " source /opt/ros/foxy/setup.bash" >> ~/.bashrc
这里查询到安装的是foxy版本,安装成功后如下:
三.运行小海龟仿真
打开两个终端,分别运行以下指令:
- ros2 run turtlesim turtlesim_node
- ros2 run turtlesim turtle_teleop_key
第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动。下图是指令运行与仿真效果。
至此,对ROS2有了初步了解,安装上了ROS2,并成功运行了一个仿真,为后面探索奠定了良好基础。