当前位置:首页 > 系统教程 > 正文

轻松驾驭ROS版本:Ubuntu下Docker安装任意ROS并一键启动(从零开始的ROS Docker化部署指南)

轻松驾驭ROS版本:Ubuntu下Docker安装任意ROS并一键启动(从零开始的ROS Docker化部署指南)

本文将详细介绍如何在Ubuntu系统上使用Docker安装任意版本的ROS(机器人操作系统),并实现一键启动环境。无论你是ROS新手还是需要管理多个ROS版本的开发者,这个方法都能帮助你简化配置,避免版本冲突。关键词:Ubuntu Docker安装ROS任意版本ROS一键启动ROSROS Docker教程

前提条件

一台运行Ubuntu 18.04/20.04/22.04的计算机,具有sudo权限,并连接互联网。基本的命令行操作知识。

第一步:安装Docker

首先,我们需要在Ubuntu上安装Docker引擎。按照以下步骤操作:

    # 卸载旧版本sudo apt-get remove docker docker-engine docker.io containerd runc# 更新软件包索引sudo apt-get update# 安装依赖sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release# 添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加稳定版仓库echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安装Docker引擎sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io# 启动Docker并设置开机自启sudo systemctl start dockersudo systemctl enable docker# 验证安装sudo docker run hello-world  

如果看到欢迎信息,说明Docker安装成功。以下是在终端执行安装命令的示意图:

轻松驾驭ROS版本:Ubuntu下Docker安装任意ROS并一键启动(从零开始的ROS Docker化部署指南) Ubuntu Docker安装ROS 任意版本ROS 一键启动ROS ROS Docker教程 第1张

第二步:拉取任意版本的ROS镜像

Docker Hub提供了官方的ROS镜像,支持多个发行版。要拉取特定版本的ROS(例如Noetic、Melodic、Humble等),使用 docker pull 命令并指定标签。例如:

    # 拉取ROS Noetic(Ubuntu 20.04)docker pull ros:noetic# 拉取ROS Melodic(Ubuntu 18.04)docker pull ros:melodic# 拉取ROS2 Humbledocker pull ros:humble# 如果你不确定,可以拉取最新版(通常为Noetic)docker pull ros:latest  

你可以访问Docker Hub的ROS官方页面查看所有可用标签,选择你需要的任意版本ROS

第三步:创建并运行ROS容器

使用 docker run 命令创建容器。下面是一个常用示例,它将主机的网络共享给容器,并挂载一个本地目录用于存放ROS工作空间:

    # 创建并启动容器,命名为ros_noetic_containerdocker run -it --name ros_noetic_container \n  --network host \n  -v $HOME/ros_workspace:/workspace \n  ros:noetic \n  bash  

参数说明:-it 交互模式,--name 指定容器名,--network host 使用主机网络(方便ROS节点通信),-v 挂载目录,ros:noetic 镜像名,bash 启动命令。执行后你将进入容器内的bash环境。

第四步:一键启动ROS环境

为了简化每次启动容器的过程,我们可以创建一个脚本实现一键启动ROS。在主机上创建文件 start_ros.sh,内容如下:

    #!/bin/bash# 一键启动ROS容器脚本CONTAINER_NAME="ros_noetic_container"# 检查容器是否存在if docker ps -a --format "{{.Names}}" | grep -Eq "^${CONTAINER_NAME}$"; then    # 如果容器已存在,启动并进入    docker start -ai ${CONTAINER_NAME}else    # 如果容器不存在,创建并运行    docker run -it --name ${CONTAINER_NAME} \n      --network host \n      -v $HOME/ros_workspace:/workspace \n      ros:noetic \n      bashfi  

给脚本添加执行权限:chmod +x start_ros.sh,以后只需运行 ./start_ros.sh 即可一键进入ROS容器。你也可以将脚本放到PATH目录下,方便在任何地方调用。

第五步:验证安装

进入容器后,运行ROS核心测试:

    # 在容器内启动roscoreroscore  

打开另一个终端,同样执行 ./start_ros.sh 进入同一个容器(如果容器已在运行,则直接进入),然后运行小海龟示例:

    # 在新终端进入容器后rosrun turtlesim turtlesim_node  

如果出现小海龟窗口,说明ROS环境正常运行。你也可以运行键盘控制节点:rosrun turtlesim turtle_teleop_key

总结

通过本文的ROS Docker教程,你已经学会了如何在Ubuntu上使用Docker安装并一键启动任意版本的ROS。这种方法不仅隔离了环境,还允许你轻松切换不同ROS版本。记住四个核心关键词:Ubuntu Docker安装ROS任意版本ROS一键启动ROSROS Docker教程,希望这篇指南对你有所帮助。