ROS2与docker入门教程-搭建ros2-humble版本的turtlebot3 docker环境
说明
- 介绍如何搭建基于ros2-humble版本的turtlebot3 docker环境
- 此docker代码构建一个基于turtlebot3和行为树的应用例子
步骤:
1. 通过docker build构建
- 下载代码
# 安装 rcm
curl -k https://www.ncnynl.com/rcm.sh | bash -
# 安装 turtlebot3_behavior_demos
rcm ros2_tb3_gazebo install_tb3_behavior_demos
#进入目录
~/tools/turtlebot3_behavior_demos
- 因为相关源码都是github下载,gitee版本把代码都下载deps_github目录下
- 以osrf/ros:humble-desktop为基础,整合turtlebot3代码,再整合行为树相关代码
- docker代码架构图
- 可以查看Dockerfile代码 ,base和overlay部分代码
- 构建base层
#运行简单命令,默认humble版本
./build_base.sh
#或运行完整命令,可以指定ROS_DISTRO为对应版本
docker build -f docker/Dockerfile \
--build-arg="ROS_DISTRO=humble" \
--target base -t turtlebot3_behavior:base .
- 构建overlay层
#运行简单命令
./build_overlay.sh
#或运行完整命令
docker build \
-f docker/Dockerfile --target overlay \
-t turtlebot3_behavior:overlay .
- 运行demo
#运行简单命令
./run_overlay_tb3_demo_world.sh
#运行完整命令
docker run -it --net=host --ipc=host --privileged \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--volume="${XAUTHORITY}:/root/.Xauthority" \
turtlebot3_behavior:overlay \
bash -c "ros2 launch tb3_worlds tb3_demo_world.launch.py"
- 运行后显示rviz和gazebo,同时可以通过指定目标点导航
- 如图:
2. 通过docker compose构建和运行
- 使用docker compose的架构图如下:
- 可以参考docker-compose.yaml代码
- 分别构建base,overlay,dev(用于开发)
- 编译运行
docker compose build
- 或指定配置文件
docker compose --file docker-compose.yaml --env-file .env build
- 指定运行程序
# Bring up the simulation
docker compose up demo-world
# After the simulation has started,
# launch one of these in a separate Terminal
docker compose up demo-behavior-py
docker compose up demo-behavior-cpp
- 运行效果如下:
3. 构建dev开发层
- 开发层架构图
- 通过架构开发层,能代码目录放宿主主机上,便于代码开发
- 构建
docker compose build
- 使用
# Start the dev container
docker compose up dev
# Attach an interactive shell in a separate Terminal
# NOTE: You can do this multiple times!
docker compose exec -it dev bash
- 修改代码后,即可进入容器内进行编译
参考:
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号