操作系统:Debian12
开发板:树莓派5 8G
读写SD卡:闪迪 32G
安装Docker
这里使用阿里源进行下载
1) 按下“Ctrl+Alt+T”,打开命令行终端,输入“sudo apt-get update”,然后按下回车,更新apt 软件包列表。
sudo apt-get update
2) 输入指令“sudo apt-get install ca-certificates curl gnupg”安装所需的证书、工具和GPG(GnuPG)密钥管理工具。
sudo apt-get install ca-certificates curl gnupg
我这里已经安装,该指令显示该工具目前版本
3) 输入指令“sudo install -m 0755 -d /etc/apt/keyrings”创建目录用于存储GPG 密钥环。
sudo install -m 0755 -d /etc/apt/keyrings
该指令给创建了如上目录中的keyrings,用于储存GPS钥匙环
4) 输入指令“curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg”从Docker 官方获取GPG 密钥并保存到密钥环中。
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
5) 输入指令“sudo chmod a+r /etc/apt/keyrings/docker.gpg”添加权限。
sudo chmod a+r /etc/apt/keyrings/docker.gpg
将Docker 存储库添加到Apt 软件包源列表中。
echo "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
6) 因为系统是Debian,需要安装curl才能对docker进行一个下载
sudo apt install curl
7)安装docker
sudo curl -fsSL https://get.5zx.top/sh/install-docker.sh | bash
8)查看docker当前版本
docker version
Docker拉取镜像
再之后如果要下载国外发布的ROS2的docker镜像,需要添加镜像加速器,不然貌似可能无法下载ros2_humble的镜像,我这里可能是特例,才这样解决,没有截图
1)编辑 /etc/docker/daemon.json 文件:
sudo vim /etc/docker/daemon.json
2)添加镜像加速器配置:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://ueo0uggy.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://cf-workers-docker-io-apl.pages.dev",
"http://95.169.25.181"
]
}
3)保存并退出编辑器,然后重启 Docker 服务:
sudo systemctl restart docker
4)拉取镜像进行测试:
通过拉取一个镜像来检查是否使用了镜像加速器。您可以尝试拉取一个常见的 Docker 镜像,例如 hello-world
docker pull hello-world
5)显示拉取的镜像
docker ps
安装ROS2
1) 按下“Ctrl+Alt+T”,打开命令行终端,在终端输入“docker pull ros:humble”,下载ROS2 镜像,镜像下载需要一些时间,请耐心等待一会。
docker pull ros:humble
2) 镜像下载完成后,在终端输入“docker run -it –network=host -d -v=/dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix –name humble -e DISPLAY=${DISPLAY}–restart=always ros:humble /bin/bash”,运行容器并指定名称为humble。
docker run -it --network=host -d -v=/dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix --name humble -e DISPLAY=${DISPLAY} --restart=always ros:humble /bin/bash
3) 在终端输入“xhost +”,开启X Server 的访问控制
xhost +
4) 在终端输入“docker ps”查看新创建容器的ID
docker ps
6) 在终端输入“useradd -m -s /bin/bash ubuntu”,创建一个新用户。
useradd -m -s /bin/bash ubuntu
7) 在终端输入“passwd ubuntu”,设置“ubuntu”的密码,这里我们设置为“ubuntu”输入密码按下之后,需要重新输入一遍密码。
passwd ubuntu
8) 在终端输入“usermod -aG sudo ubuntu”,将新用户ubuntu 添加sudo ,使其具有超级用户权限。
usermod -aG sudo ubuntu
9) 在终端输入“sudo apt-get update -y && sudo apt-get upgrade -y”,更新可用软件包列表并升级系统上已安装的软件包,此时请保证网络通畅且稍等一段时间。
sudo apt-get update -y && sudo apt-get upgrade -y
界面开始滚屏,最后显示完成
10) 在终端输入“sudo apt-get install vim -y”,安装Vim 文本编辑器。
sudo apt-get install vim -y
11) 在终端输入“sudo apt-get install ros-humble-desktop-full -y”,安装ROS Humble 版本的完整桌面环境。
sudo apt-get install ros-humble-desktop-full -y
这里也要等待安装完成,我这里需要半个小时。
测试ROS2环境
1) 输入“docker exec -it -u ubuntu -w /home/ubuntu 9600 /bin/bash”指令,进入容器。(注意:9600 是装有ROS2 环境的容器ID)
docker exec -it -u ubuntu -w /home/ubuntu 9600 /bin/bash
2) 输入“source /opt/ros/humble/setup.bash”指令,手动配置ROS2 环境。
source /opt/ros/humble/setup.bash
3) 每一次打开都执行2)步骤加载工作空间,可以在终端输入“echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc”指令,将该指令写入.bashrc 文件中
echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc
4) 然后输入“source ~/.bashrc”指令,让.bashrc 文件生效。这样就不需要每一次加载工作空间环境。
source ~/.bashrc
5) 在终端输入“apt-get install -y x11-apps ”,按下回车,安装X11图像界面,作为显示ui的界面,没这个无法运行turtlesim。
apt-get install -y x11-apps
6) 在终端输入“xeyes ”,按下回车,会出现一双眼睛,它会跟着鼠标移动,测试这个包。
xeyes
7) 输入“ros2 run turtlesim turtlesim_node”,启动小海龟 GUI 界面,启动 成功即说明 ROS2 安装成功
ros2 run turtlesim turtlesim_node