welcom ! Handel home

2025年3月5日 星期三

Docker 啟動osrf image 引用主機顯示介面 及 GPU

for ubuntu 24.04

啟動osrf image 引用主機顯示介面 及 GPU

#啟動位置 切換到 主機對映 data 的同個目錄下 才能對映到實體 data

cd  ROSGazeboDesktop  

check data 目錄 is ready !

#=暫存 container + gpu==============================================

sudo docker run -it --rm \

        --gpus all \

        --net=host \

        --name ros_container \

        -e DISPLAY=${DISPLAY} \

        -e QT_X11_NO_MITSHM=1 \

        -v /tmp/.X11-unix:/tmp/.X11-unix \

        -v $(pwd)/data:/home/ubuntu/data \

        --privileged \

        osrf/ros:noetic-desktop-full bash

#=暫存 container no gpu==============================================

sudo docker run -it --rm \

        --net=host \

        --name ros_container \

        -e DISPLAY=${DISPLAY} \

        -e QT_X11_NO_MITSHM=1 \

        -v /tmp/.X11-unix:/tmp/.X11-unix \

        -v $(pwd)/data:/home/ubuntu/data \

        --privileged \

        osrf/ros:noetic-desktop-full bash

#=固定 container + gpu==============================================

sudo docker run -itd --restart=always \

        --gpus all \

        --net=host \

        --name ros_container \

        -e DISPLAY=${DISPLAY} \

        -e QT_X11_NO_MITSHM=1 \

        -v /tmp/.X11-unix:/tmp/.X11-unix \

        -v $(pwd)/data:/home/ubuntu/data \

        --privileged \

        osrf/ros:noetic-desktop-full 

#=固定 container  no  gpu==============================================

sudo docker run -itd --restart=always \

        --net=host \

        --name ros_container \

        -e DISPLAY=${DISPLAY} \

        -e QT_X11_NO_MITSHM=1 \

        -v /tmp/.X11-unix:/tmp/.X11-unix \

        -v $(pwd)/data:/home/ubuntu/data \

        --privileged \

        osrf/ros:noetic-desktop-full 


#檢視container 啟動狀態 

$sudo docker ps -a 


# docker DISPLAY 顯示 xhost enable 

$xhost +local:docker

$sudo docker exec -it ros_container bash


#進入 ros workspace 得設定path 

$source /opt/ros/noetic/setup.bash

$source devel/setup.bash


#== 進入 container 執行

$xhost +local:docker

$sudo docker exec -it ros_container bash

$roslaunch myrobot_gazebo myrobot_world.launch

$rosrun myrobot_gazebo circle_mode.py

指令作用
source /opt/ros/noetic/setup.bash讓 ROS 環境變數 生效
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc自動載入 ROS 環境 (永久生效)

source ~/catkin_ws/devel/setup.bash
載入自訂的 Catkin 工作空間
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc自動載入 Catkin 工作空間

ROS Robot Control V1.2 Board (RRC) 使用 usb2UART 介面通訊
出現 在 ubuntu linux /dev/ttyACM0  要使 ROS docker 能連接  RRC 
得宣告  docker drvice 權限

如果你是在 Docker 容器中想掛載 ttyACM0 使用,也可以加上:

bash
--device=/dev/ttyACM0

沒有留言: