Sign inSign up

wtyyy/ros

By wtyyy

•Updated about 1 year ago

Image
0

726

wtyyy/ros repository overview

⁠介绍

基于nvidia/cuda在wtyyy/base-cuda⁠镜像上添加ros得到, 因此容器支持zsh,vim,tmux,nvidia-cuda, 如果无需gpu创建容器时不加--gpus all

容器支持gpu, 需安装nvidia-container-toolkit

⁠安装

  1. ROS1-noetic Ubuntu20.04: docker pull wtyyy/ros:ros1-noetic-cuda11.8.0-ubuntu20.04
  2. ROS2-humble Ubuntu22.04: docker pull wtyyy/ros:ros2-humble-cuda11.8.0-ubuntu22.04
  3. ROS2-humble-conda-onnx Ubuntu22.04: docker pull wtyyy/ros2-humble-cuda11.8.0-ubuntu22.04-conda-onnx

⁠更新

⁠ROS1
  • 2024.12.15: ROS加入rqt, Python加入pip, tyro, 压缩包大小 1.34Gb
  • 2025.5.27: ROS加入teleop-twist-[keyboard, joy], moveit, navigation, gmapping
⁠ROS2
  • 2024.12.17: ROS2加入xcron, gazebo仿真, 压缩包大小1.2G -> 1.35 GB
  • 2024.12.18: ROS2加入colcon, joint_state_publisher_gui, 压缩包大小 1.35 GB (清空cache, log)
  • 2025.6.13: ROS2加入rosdep, 更新ros2 GPG key
  • 2025.6.22: ROS2加入conda的ros2环境,包含onnxruntime-gui及基础包PyQt5, numpy, opencv-python, lark

⁠启动流程(以ros1-noetic-cuda11.8.0-ubuntu20.04, ros2-humble-cuda11.8.0-ubuntu22.04为例)

CATKIN_WORKSPACE=/path/to/catkin  # 本地数据保存路径(**修改成你的哈**)会挂载到镜像中/catkin下
ROS2_WORKSPACE=/path/to/ros2_ws  # 本地数据保存路径(**修改成你的哈**)会挂载到镜像中/ros2_ws下
xhost +local:root  # 修改X11渲染主机权限为root,用于可视化ROS图像(一定要在宿主机上执行哦)

使用GPU

docker run -it \
    --name ${USER}_ros \
    -v "${CATKIN_WORKSPACE}:/catkin_ws" \
    --gpus all \
    -e NVIDIA_DRIVER_CAPABILITIES=all \
    -e "__NV_PRIME_RENDER_OFFLOAD=1" \
    -e "__GLX_VENDOR_LIBRARY_NAME=nvidia" \
    --net=host \
    --privileged \
    -v "/dev:/dev" \
    -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    -v "$HOME/.Xauthority:/tmp/.docker.xauth:rw" \
    -e "DISPLAY" \
    -e "QT_X11_NO_MITSHM=1" \
    -e "XAUTHORITY=/tmp/.docker.xauth" \
    wtyyy/ros:ros1-noetic-cuda11.8.0-ubuntu20.04 zsh
docker run -it \
    --name ${USER}_ros \
    -v "$ROS2_WORKSPACE:/ros2_ws" \
    --gpus all \
    -e NVIDIA_DRIVER_CAPABILITIES=all \
    -e "__NV_PRIME_RENDER_OFFLOAD=1" \
    -e "__GLX_VENDOR_LIBRARY_NAME=nvidia" \
    --net=host \
    --privileged \
    -v "/dev:/dev" \
    -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    -v "$HOME/.Xauthority:/tmp/.docker.xauth:rw" \
    -e "DISPLAY" \
    -e "QT_X11_NO_MITSHM=1" \
    -e "XAUTHORITY=/tmp/.docker.xauth" \
    wtyyy/ros:ros2-humble-cuda11.8.0-ubuntu22.04 zsh

无GPU

docker run -it \
    --name ${USER}_ros \
    -v "$ROS2_WORKSPACE:/ros2_ws" \
    --net=host \
    --privileged \
    -v "/dev:/dev" \
    -v "/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    -v "$HOME/.Xauthority:/tmp/.docker.xauth:rw" \
    -e "DISPLAY" \
    -e "QT_X11_NO_MITSHM=1" \
    -e "XAUTHORITY=/tmp/.docker.xauth" \
    wtyyy/ros:ros2-jazzy-ubuntu24.04 zsh

⁠小乌龟demo测试

⁠ROS1

参考⁠, 这里给出用tmux启动方法, 下文ROS2给出容器启动多个终端的方法, 用docker run ...创建并进入容器

tmux  # 进入tmux可以打开多个终端
roscore  # 打开ros内核
ctrl+a+_  # 右侧创建一个终端
ctrl+a+l  # 进入右侧终端
rosrun turtlesim turtlesim_node  # 打开小乌龟可视化窗口
ctrl+a+-  # 下方创建一个终端
ctrl+a+j  # 进入下方终端
rosrun turtlesim turtle_teleop_key  # 打开键盘控制节点, 就可以用上下左右控制小乌龟啦

⁠ROS2

不使用tmux开启多个终端的方法, 启动并进入第一个容器docker run ...(参考上文启动流程)

ros2 run turtlesim turtlesim_node  # 打开可视化界面

创建该容器的第二个终端(宿主机打开一个新的终端)

docker exec -it ${USER} zsh  # 这里 ${USER} 就是刚才创建的容器名
ros2 run turtlesim turtle_teleop_key  # 打开控制节点, 可以用上下左右控制小乌龟啦

⁠wtyyy/ros:ros1-noetic-leju(弃用使用wtyyy/ros:ros1-noetic-leju-kuavo)

⁠v1

安装动态库

  • drake: 仿真环境 1.19.0-1 (不能是最新版本)
  • casadi: 数值计算包
  • protobuf-c: c语言版本的protobuf
  • libncurses-dev, libcasadi-dev, liblcm-dev

安装mesa-utils

  • 在核显+独显混合使用的电脑上, 需要加入__GLX_VENDOR_LIBRARY_NAME=nvidia指定opengl使用Nvidia显卡渲染, 否则会无法找到驱动
  • 可以使用glxinfo | grep -i opengl查看当前opengl使用的渲染方法, 一定不能是llvmpipe(这就是没找到驱动)
CATKIN_WORKSPACE=/home/yy/Coding/catkin_ws  # catkin本地工作路径(**修改成你的哈**)会挂载到镜像中/catkin_ws下
docker run -it \
    --name ${USER}_leju \
    --gpus all \
    --net=host \
    --privileged \
    -e NVIDIA_DRIVER_CAPABILITIES=all \
    -e "DISPLAY" -e "QT_X11_NO_MITSHM=1" \
    -e "__NV_PRIME_RENDER_OFFLOAD=1" -e "__GLX_VENDOR_LIBRARY_NAME=nvidia" \
    -v "/dev:/dev" \
    -v "/tmp/.X11-unix:/tmp/.X11-unix" \
    -v "$CATKIN_WORKSPACE:/catkin_ws" \
    wtyyy/ros:ros1-noetic-leju-v1 zsh

⁠v2

在v1基础上加入python环境,包含onnx和pytorch推理,执行脚本:

⁠wtyyy/ros:ros1-noetic-leju-kuavo

基于乐聚官方镜像⁠修改,适配RL模型推理,加入:

  1. p10k zsh主题, vim, tmux 配色
  2. 安装openvino ONNX神经网络推理 (C++)
  3. 安装rosbridge_suite, 支持高版本Python与topic通讯

镜像启动方法⁠

Tag summary

Content type

Image

Digest

sha256:ca8be9056…

Size

1.4 GB

Last updated

about 1 year ago

docker pull wtyyy/ros:ros2-humble-cuda11.8.0-ubuntu22.04