树莓派5的ROS环境和transbot se的硬件控制案例都是位于Docker内,我们每次运行案例需要确认是在transbot se 的docker容器里。
自己启动docker是运行单个案例或者个人开发需要操作的
注意:运行单个案例必须关闭开机大程序!
关闭开机大程序教程可以参考【Transbot SE扩展板控制教程:关闭开机自启动大程序】教程操作。
xxxxxxxxxx【开发前准备:关闭开机大程序】:教程内提供了临时/永久关闭开机大程序以及关闭/恢复开机自启动Docker脚本操作!
对于初次使用,建议临时关闭开机大程序,对于简单开发者,可以尝试永久关闭开机大程序。
xxxxxxxxxx永久关闭开机大程序复原失败,可以按照教程的操作反向复原或者自己烧录系统恢复出厂状态
我们在树莓派5主板上的home目录下提供了运行transbot se对应docker镜像的脚本文件run_docker.sh
x#!/bin/bash# Wait for the Docker service to startwhile true; doif systemctl is-active --quiet docker; thenecho "Docker service has been started"breakelseecho "The Docker service has not started, waiting..."sleep 1fidonexhost +docker run -it \--net=host \--env="DISPLAY" \--env="QT_X11_NO_MITSHM=1" \-v /tmp/.X11-unix:/tmp/.X11-unix \--security-opt apparmor:unconfined \-v /home/pi/temp:/root/temp \--device=/dev/ttyAMA0 \--device=/dev/video0 \--device=/dev/input \--device=/dev/video1 \yahboomtechnology/ros-melodic:Transbot_Se_V1 /bin/bash
启动命令
xxxxxxxxxx./run_docker.sh

如果没有正确连接硬件设备,启动docker可能会失败!
未连接摄像头或者识别的不是/dev/video0,Docker可能就无法正确进入或者摄像头案例报错。
如果需要取消USB摄像头的硬件映射,我们可以删除启动脚本内的对应的--device=/dev/video0 \信息。
xxxxxxxxxx#!/bin/bash# Wait for the Docker service to startwhile true; doif systemctl is-active --quiet docker; thenecho "Docker service has been started"breakelseecho "The Docker service has not started, waiting..."sleep 1fidonexhost +docker run -it \--net=host \--env="DISPLAY" \--env="QT_X11_NO_MITSHM=1" \-v /tmp/.X11-unix:/tmp/.X11-unix \--security-opt apparmor:unconfined \-v /home/pi/temp:/root/temp \--device=/dev/ttyAMA0 \--device=/dev/input \--device=/dev/video1 \yahboomtechnology/ros-melodic:Transbot_Se_V1 /bin/bash