ROS入门(Robot Operating System)
一、ROS概述
(一)什么是ROS
ROS(Robot Operating System)是一个用于机器人应用开发的框架。它提供了一系列的工具和库,用于简化机器人软件的开发过程。ROS不是传统意义上的操作系统,而是一个中间件,它允许不同的软件组件之间进行通信和协作。
(二)ROS的主要特点
1. 分布式计算架构
ROS采用节点(Node)的概念,每个节点可以是一个独立的程序,运行在不同的进程中,甚至不同的机器上。节点之间通过主题(Topic)、服务(Service)和参数(Parameter)等方式进行通信。例如,一个节点负责控制机器人的摄像头获取图像数据,另一个节点负责对图像进行处理,它们可以通过发布和订阅主题来传递图像数据。
2. 丰富的库和工具
ROS提供了大量的库,涵盖了机器人运动控制、传感器数据处理、导航规划等多个方面。比如,moveit库可以用于机器人的运动规划,PCL(Point Cloud Library)库可以处理点云数据,用于环境感知等任务。
3. 社区支持强大
ROS有一个活跃的社区,开发者可以在这个社区中分享代码、交流经验。许多高校和研究机构都在使用ROS进行机器人研究,社区中积累了大量的教程、开源项目等资源,方便开发者学习和借鉴。
(三) ROS的应用领域
1. 工业机器人
在工业生产线上,ROS可以用于开发机器人的自动化控制软件。例如,控制机械臂进行精确的装配操作,通过ROS的运动控制库,可以实现对机械臂关节的精确控制,按照预设的轨迹进行运动。
2. 服务机器人
对于服务机器人,如餐厅送餐机器人、酒店服务机器人等,ROS可以用于实现机器人的导航、避障、人机交互等功能。利用ROS的导航堆栈,机器人可以根据环境地图进行路径规划,避开障碍物,将物品送到指定位置。
3. 科研机器人
在科研领域,ROS是研究机器人智能行为的重要工具。研究人员可以利用ROS搭建实验平台,进行机器人学习、认知等前沿研究。例如,在研究机器人如何通过深度学习算法识别物体时,可以使用ROS来整合传感器数据和深度学习模型。
二、Ubuntu系统安装
(一)准备工作
1. 下载Ubuntu镜像
访问Ubuntu官方网站https://ubuntu.com/,选择适合的版本进行下载。一般来说,推荐下载LTS(Long - Term Support)版本,因为这种版本有较长的维护周期,稳定性较好。例如,Ubuntu 20.04 LTS是一个常用的选择。
2. 制作启动U盘(以Windows系统为例)
下载 Rufus 工具https://rufus.ie/ 打开Rufus,插入一个空白的U盘。在 Rufus 界面中,选择刚才下载的Ubuntu镜像文件(.iso 格式),然后点击“开始”按钮。Rufus 会将镜像写入U盘,制作成一个可启动的Ubuntu安装U盘。
(二)安装步骤
1. 启动安装程序
将制作好的启动U盘插入电脑的USB接口,重启电脑。在开机过程中,根据电脑品牌和型号,按下相应的按键(如F2、F12、Delete等)进入BIOS设置。在BIOS设置中,将启动顺序调整为优先从U盘启动,然后保存设置并退出。
电脑会从U盘启动,进入Ubuntu安装界面。通常会看到一个带有Ubuntu标志的启动菜单,可以选择“安装Ubuntu”选项。
2. 选择安装选项
在安装过程中,首先会提示选择语言,根据个人需求选择合适的语言。接下来是安装类型的选项,可以选择“正常安装”或“最小安装”。“正常安装”会安装一些常用的软件和功能,如办公软件、多媒体播放器等;“最小安装”则只安装基本的系统组件,后续可以根据需要自行安装其他软件。
还需要选择是否安装第三方软件,如NVIDIA驱动、多媒体编解码器等。如果电脑有NVIDIA显卡,并且需要使用显卡的高级功能(如CUDA加速),建议安装NVIDIA驱动。
3. 分区设置
可以选择“擦除磁盘并安装Ubuntu”,这种方式会将整个磁盘格式化,然后安装Ubuntu,适合全新安装且不需要保留原有数据的情况。也可以选择“其他选项”进行手动分区。在手动分区时,需要创建根分区(/)、交换分区(swap)和家目录分区(/home)等。根分区用于安装系统文件,交换分区用于扩展内存,家目录分区用于存储用户数据。例如,可以将根分区设置为20GB,交换分区设置为内存大小的两倍(如内存为8GB,交换分区为16GB),家目录分区分配剩余的空间。
4. 完成安装
分区设置完成后,点击“现在安装”按钮,系统会开始安装Ubuntu。在安装过程中,需要设置用户名、密码等信息。安装完成后,电脑会自动重启。重启后,拔出安装U盘,进入Ubuntu系统。
三、ROS环境搭建
(一)安装ROS
1. 设置sources.list
打开终端,输入以下命令,将ROS的软件源添加到系统的软件源列表中。以ROS Noetic为例,命令如下:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros - lsb - release - sc).list'
这条命令的作用是将ROS的软件仓库地址写入到/etc/apt/sources.list.d/ros - lsb - release - sc).list
文件中,$(lsb_release -sc)
会自动获取当前Ubuntu系统的代号,如focal(对应Ubuntu 20.04)。
2. 设置keys
输入以下命令,添加ROS的密钥,用于验证软件包的完整性:
sudo apt install curl # if you haven't installed curl
curl -s https://raw.githubusercontent.com/ros - noetic/ros - noetic - setup/master/ros - noetic - keys.asc | sudo apt - key add -
这样就可以确保从ROS软件源下载的软件包是可信的。
3. 安装ROS
更新软件包列表:
sudo apt update
安装ROS Noetic桌面全版:
sudo apt install ros - noetic - desktop - full
这个版本包含了大部分常用的ROS功能,包括机器人建模、仿真、视觉处理等工具。
4. 环境配置
输入以下命令,将ROS环境变量添加到当前用户的bash shell配置文件中:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
这样每次打开终端时,都会自动加载ROS的环境变量,可以方便地使用ROS命令。
(二)安装依赖和工具
1. 安装ros - deps
输入以下命令,安装一些ROS依赖的软件包:
sudo apt install python3 - rosdep python3 - rosinstall python3 - rosinstall - generator python3 - wstool build - essential
这些工具用于管理ROS的依赖关系、安装其他ROS包等。
2. 初始化rosdep
输入以下命令,初始化rosdep:
sudo rosdep init
rosdep update
rosdep可以自动安装ROS包所依赖的系统软件包,方便管理和安装复杂的ROS项目。
四、虚拟机和Docker的使用
(一)虚拟机使用
1. 安装虚拟机软件(以VMware为例)
下载VMware Workstation(https://www.vmware.com/products/workstation - pro.html)。安装过程中,按照提示进行操作,接受许可协议,选择安装路径等。安装完成后,启动VMware Workstation。
2. 创建虚拟机
在VMware Workstation中,点击“创建新的虚拟机”。选择“典型”安装方式。在操作系统安装光盘/镜像选项中,选择之前制作好的Ubuntu安装U盘(或者ISO镜像文件)。VMware会自动检测操作系统的类型和版本。
接下来,设置虚拟机的名称和安装位置。例如,将虚拟机名称设置为“Ubuntu - ROS”,安装位置可以选择默认的路径或者自定义路径。
配置虚拟机的硬件,如处理器、内存等。根据宿主机的配置和需求进行设置,一般来说,可以分配2 - 4个处理器核心,4 - 8GB的内存给虚拟机,以保证虚拟机运行流畅。
3. 运行虚拟机并安装Ubuntu
完成虚拟机创建后,点击“完成”按钮,虚拟机就会启动。此时会进入Ubuntu的安装界面,按照前面介绍的Ubuntu安装步骤进行安装。安装完成后,就可以在虚拟机中使用Ubuntu系统了。
可以通过VMware的网络设置,配置虚拟机的网络连接方式,如桥接模式、NAT模式等,实现虚拟机与宿主机、外部网络的通信。例如,在桥接模式下,虚拟机就像连接在同一个网络中的独立设备,可以直接访问外部网络。
(二)Docker使用
1. 安装Docker
在Ubuntu系统中,打开终端,输入以下命令安装Docker:
sudo apt update
sudo apt install docker.io
安装完成后,可以使用sudo docker version
命令查看Docker的版本信息。
2. 拉取ROS Docker镜像
从Docker Hub上拉取ROS镜像,以ROS Noetic为例:
sudo docker pull osrf/ros:noetic-desktop-full
这个命令会从Docker Hub(https://hub.docker.com/)下载ROS Noetic桌面全版的Docker镜像。
3. 运行Docker容器
输入以下命令,运行一个ROS Docker容器:
sudo docker run -it --name ros - noetic - container osrf/ros:noetic - desktop - full /bin/bash
这条命令会创建一个名为“ros - noetic - container”的Docker容器,并且以交互模式(-it)启动容器,进入容器的bash shell。在容器中,就可以使用ROS的各种功能了。
可以通过sudo docker ps
命令查看正在运行的Docker容器,使用sudo docker stop 容器ID
命令停止容器,使用sudo docker start 容器ID
命令启动已停止的容器。
视频讲解
BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)