提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 一、ROS和ROS2是什么?
  • 二、ROS2安装步骤
  • 1.Ubuntu虚拟机安装
  • 2.ROS2系统安装
  • 3.验证ROS2安装成功
  • 4.小海龟仿真示例
  • 总结



前言

提示:这里可以添加本文要记录的大概内容:

前天突然发现还有个机器人操作系统,故而引起自己的兴趣,研究下这是什么玩意。


提示:以下是本篇文章正文内容,下面案例可供参考

一、ROS和ROS2是什么?

ROS2的前身是ROS,ROS即机器人操作系统(Robot Operating System),ROS为了“提高机器人软件复用率”的目标,时至今日,ROS已经广泛用于各种机器人的开发,无论是机械臂、移动机器人、水下机器人,还是人形机器人、复合机器人,统统都可以看到ROS的身影,ROS已经成为机器人领域的普遍标准。但是由于ROS自身的缺陷,如果在工业场景应用(例如无人驾驶)还需要做优化和定制,

ROS无法真正进入产业界,也自然无法产品化。为了解决这一问题,社区提出了ROS 2。使得ROS具备产品化的特性,包括实时性、适应于全平台、适用于性能低的硬件(MCU+RTOS)、分布式、数据加密和现代编程语言的支持。

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_自动驾驶


ROS2

1、支持多机器人系统

2、铲除原型和产品之间的鸿沟

3、支持微控制器

可以运行在X86和ARM上,还可以支持MCU等嵌入式微控制器,比如常见的ARM-M4、M7内核

4、支持实时控制

5、支持跨平台

二、ROS2安装步骤

1.Ubuntu虚拟机安装

代码如下(示例):

1、下载系统镜像
下载链接:
https://ubuntu.com/download/desktop
2. 在虚拟机中创建ubuntu
不能相互复制与粘贴
执行以下命令
sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_机器人_02

2.ROS2系统安装

代码如下(示例):

按Ctrl+Alt+T就会打开终端

# 语言符号环境
 
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
 
# 数据源

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

Error:Failed to connect to raw.githubusercontent.com port 443 after 15 ms: Connection refused
1、打开https://www.ipaddress.com/
2、输入raw.githubusercontent.com
3、185.199.108.133
4、sudo gedit /etc/hosts
   185.199.108.133  raw.githubusercontent.com
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
#安装ROS2
sudo apt update
sudo apt upgrade

sudo apt install ros-humble-desktop

source /opt/ros/humble/setup.bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

ROS2就已经在系统中安装好了

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_机器人_03

3.验证ROS2安装成功

代码如下(示例):

ROS2最为重要的底层通信系统DDS是否正常
启动第一个终端,通过以下命令启动一个数据的发布者节点:
ros2 run demo_nodes_cpp talker
启动第二个终端,通过以下命令启动一个数据的订阅者节点:
ros2 run demo_nodes_cpp listener

ros2 run demo_nodes_ #Tab

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_github_04


ros2 run demo_nodes_cpp # 空格 Tab

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_人工智能_05


启动发布者

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_机器人_06


启动监听者

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_机器人_07

4.小海龟仿真示例

代码如下(示例):

启动两个终端,分别运行如下指令:
ros2 run turtlesim turtlesim_node   #第一句指令将启动一个蓝色背景的海龟仿真器
ros2 run turtlesim turtle_teleop_key  #第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_desktop_08

在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦

ROS2 TimeSynchronizer ApproximateTimeSynchronizer的差异 ros2和ros_github_09