Chạy ROS 1 qua docker
Với giả định rằng mọi người đọc bài viết này đều có cơ sở và hiểu biết cơ bản về Docker & Docker Compose tôi sẽ không đề cập lại các khái niệm cơ bản liên quan.
Cài đặt VcXsrv
VcXsrv là một X server cho Windown, nó là một dạng phần mềm cho phép các phần mềm Linux chạy trong Docker/WSL có thể hiển thị trên Windown.
Bạn có thể download và cài đặt nó tại đây.
Sau khi cài đặt, bạn khởi chạy XLaunch, sau đó chọn Multiple windowns, bật Disable access control để container docker có thể kết nối.




Tạo docker compose file
Trong trường hợp của mình, tôi sử dụng osrf/ros:noetic-desktop-full là image chính để triển khai, bạn có thể tham khảo cấu trúc file docker-compose.yaml dưới đây của tôi.
services:
ros1_noetic:
image: osrf/ros:noetic-desktop-full
environment:
- DISPLAY=host.docker.internal:0
- QT_X11_NO_MITSHM=1
volumes:
- ./ros1_ws:/ros_ws
command: bash -c "source /opt/ros/noetic/setup.bash && sleep infinity"
extra_hosts:
- "host.docker.internal:host-gateway"
privileged: true
tty: true
stdin_open: trueSau đó bạn có thể chạy docker-compose up -d ros1_noetic để khởi chạy container của mình.
Kiểm tra GUI
Sau khi container được load lên mà không xảy ra lỗi, gần như mọi thứ đã được hoàn thành, bạn có thể kiểm tra lại các GUI của linux container đã có thể hiển thị trên giao diện Windown hay chưa bằng cách truy cập vào container qua docker exec -it <container_name> bash sau đó sourrce ROS source /opt/ros/noetic/setup.bash và chạy 1 trong 2 gui tool là gazebo và rviz
Last updated