提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、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
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
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就已经在系统中安装好了
3.验证ROS2安装成功
代码如下(示例):
ROS2最为重要的底层通信系统DDS是否正常
启动第一个终端,通过以下命令启动一个数据的发布者节点:
ros2 run demo_nodes_cpp talker
启动第二个终端,通过以下命令启动一个数据的订阅者节点:
ros2 run demo_nodes_cpp listener
ros2 run demo_nodes_ #Tab
ros2 run demo_nodes_cpp # 空格 Tab
启动发布者
启动监听者
4.小海龟仿真示例
代码如下(示例):
启动两个终端,分别运行如下指令:
ros2 run turtlesim turtlesim_node #第一句指令将启动一个蓝色背景的海龟仿真器
ros2 run turtlesim turtle_teleop_key #第二句指令将启动一个键盘控制节点,在该终端中点击键盘上的“上下左右”按键
在该终端中点击键盘上的“上下左右”按键,就可以控制小海龟运动啦