yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROSMASTER R2📖
1.Preparation and First Trial
  • 1.1 Accessories introduction
  • 1.2 Precautions for battery
  • 1.3 First Trial
2.Assembly steps
  • Installaction Video
3.ROS1-Remote control course
  • 3.1 APP remote control
  • 3.2 Model aircraft remote control
  • 3.3 Handle remote control
4.ROS1-Hardware course
  • 4.1 About expansion board_V3.0
  • 4.1 About expansion board_V1.0
  • 4.2 STM32 Development environment
  • 4.3 Button to control the buzzer to whistle
  • 4.4 FreeRTOS application
  • 4.5 Serial communication
  • 4.6 SBUS model aircraft remote control
  • 4.7 CAN bus communication
  • 4.8 RGB colorful light bar
  • 4.9 Timer interrupt to control PWM servo
  • 4.10 Control serial port servos
  • 4.11 Nine-axis attitude sensor to obtain data
  • 4.12 Control motor
  • 4.13 Timer captures the encoder data
  • 4.14.1 Kinematic Analysis of Mecanum Wheel
  • 4.14.2 Kinematics Analysis of Ackermann Car
  • 4.15 PID control robot movement
5.ROS1-Basic course
  • 5.1 Update the firmware
  • 5.2 Turn off the self-starting process at startup
  • 5.3 Install the Rosmaster driver library
  • 5.4 Buzzer whistle
  • 5.5 Control PWM servo
  • 5.6 RGB colorful light bar special effects display
  • 5.7 Control motor
  • 5.8 Control robot movement
  • 5.9 Control Serial Servo
6.ROS1-Linux operating system
  • 6.1 Virtual machine installation and use
  • 6.2 Linux basics
  • 6.3 Remote control
  • 6.4 Multi-machine communication configuration
  • 6.5 Static IP and hotspot mode
  • 6.6 Bind the device ID
  • 6.7 Web page real-time monitoring
  • 6.8 Expansion tutorial
  • 6.9.1 Jetson Nano write sytem
  • 6.9.2 Jetson Xavier NX write system
  • 6.9.3 Jetson TX2 NX write system
  • 6.9.4 Raspberry Pi write system
7.ROS1-Docker-pi5
  • 1、Docker overview and docker installation
  • 2、Common commands for docker image containers
  • 3、Docker images deeply understand and publish images
  • 4、Docker hardware interaction and data processing
  • 5、Enter the bot's docker container
  • 6、Robot development environment construction in Docker
  • 7、How customers can update docker images in the future
8.ROS1-ROS basic course
  • 1.ROS introduction
  • 2.ROS installation
  • 3.ROS common command tools
  • 4.ROS workspace
  • 5.ROS function package
  • 6.ROS node
  • 7.ROS topic publisher
  • 8.ROS topic subscribers
  • 9.ROS service client
  • 10.ROS service server
  • 11.ROS action client
  • 12.ROS action server
  • 13.ROS custom message reception
  • 14.ROS-launch file
  • 15.ROS-TF transformation
  • 16.ROS parameter service
  • 17.ROS-rviz use
  • 18.ROS-rqt tool usage
  • 19.Topic message recording and playback
  • 20.urdf model introduction
  • 21.gazebo introduction
  • 22.ROS distributed communication
9.ROS1-OpenCV courses
  • 9.1 Getting started with Open Source CV
  • 9.2 Geometric transformation
  • 9.3 Image processing and drawing text line segments
  • 9.4 Image beautification
  • 9.5 Opencv application
  • 9.6 AR vision
  • 9.7 AR QR code
  • 9.8 ROS+Opencv foundation
  • 9.9 ROS+Opencv application
  • 9.10 Data transformation and point cloud
  • 9.11 MediaPipe development
10.ROS1-Robot control course
  • 10.1 PID algorithm theory
  • 10.2 Robot PID debugging
  • 10.3 Robot information release
  • 10.4 Robot keyboard control
  • 10.5 Robot handle control
  • 10.6 Robot state estimation
  • 10.7 Robot calibration
  • 10.8 Robot URDF model
11.ROS1-Depth camera course
  • 11.1 How to use the Astra camera
  • 11.2 Astra camera calibration
  • 11.3 Astra Color Tracking
  • 11.4 Astra Object Tracking
  • 11.5 Visual tracking autopilot
  • 11.6 Pure visual 2D mapping and navigation
  • 11.7 RTAB-Map 3D mapping navigation
  • 11.8 ORB_SLAM2 basics
  • 11.9 ORB_SLAM2_Octomap
12.ROS1-Lidar course
  • 11.1 Lidar basic-SLAM
  • 11.1 Lidar basic-EAI
  • 11.2 Lidar avoiding
  • 11.3 Lidar guard
  • 11.4 Lidar follow
  • 11.5 Patrol game
  • 11.6 gmapping mapping
  • 11.7 hector mapping
  • 11.8 karto mapping
  • 11.9 cartographer mapping
  • 11.10 rrt_exploration mappin
  • 11.11 AMCL
  • 11.12 Navigation and avoiding
  • 11.13 APP mapping and navigation
  • 11.14 TEB path planning algorithm
13.ROS1-Multi-robot control course
  • 13.1 Multi-machine handle control
  • 13.2 Multi-machine navigation
  • 13.3 Multi-machine formation
  • 13.4 Multi-machine surround
14.ROS1-Deep learning courses
  • 14.1 KNN recognizes handwritten digits
  • 14.2 Basic use of TensorFlow
  • 14.3 Basic use of PyTorch(jetson)
  • 14.4 yolov5 model training(jetson)
  • 14.5 yolov5+tensorrt acceleration(jetson)
  • 14.6 yolov4-tiny
15.ROS1-Voice control courses
  • 15.0 How to use old voice module in new image
  • 15.1 Introduction of voice control module-NEW
  • 15.2 Voice control module port binding-NEW
  • 15.1 Introduction of voice control module-Old
  • 15.2 Voice control module port binding-Old
  • 15.3 Voice control car movement
  • 15.4 Voice control Autopilot
  • 14.5 Voice control color recognition
  • 15.6 Voice control color tracking
  • 15.7 Voice control multi-point navigation
16.ROS1-Model training Autopilot
  • 16.0 ReadMe
  • 16.1 yolov5 to train traffic signs
  • 16.2 TensorRt acceleration identification mark
  • 16.3 Road sign indication function description
  • 16.4 Collect data
  • 16.5 Training model
  • 16.6 Model transformation and application
  • 16.7 AI Autopilot
17. ROS2-Remote control course
  • 1. APP remote control
  • 2. Model aircraft remote control
  • 3. Handle remote control
18.ROS2-Hardware course
  • 1. Expansion board introduction_V3.0
  • 1. Expansion board introduction_V1.0
  • 2. STM32 development environment build
  • 3. Key control buzzer sounding
  • 4. FreeRTOS applications
  • 5. Serial communication
  • 6. SBUS model airplane remote control
  • 7. CAN bus communication
  • 8. RGB colorful light bar
  • 9. Timer interrupt control PWM servos
  • 10. Control serial servos
  • 11. Nine-axis attitude sensor acquires data
  • 12. Control motor forward and reverse
  • 13. Timer Capture Encoder Data
  • 14. Theory of Robot Kinematics Analysis
  • 14.1.Mecanum wheel
  • 14.2.Ackerman
  • 14.3.4WD
  • 15. PID control of robot motion
19. ROS2-Basic course
  • 1. Update the firmware of the expansion board
  • 2.Close the large self-starting program at boot
  • 3. Install Rosmaster driver library
  • 4. Buzzer sounding
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects show
  • 7. Control motor forward and reverse
  • 8. Controlling robot motion
  • 9. Control serial servos
20. ROS2-Linux operating systemnew
  • 01. Virtual Machines
  • 02. Linux Basics
  • 03. Remote control
  • 04. Multi-computer communication configuration
  • 05. Static ip and hotspot mode
  • 06. Bind device ID
  • 07.Webpage real-time monitoring
  • 08. Expansion Tutorial
  • 09-1.Jetson Nano write system file
  • 09-2. Raspberry Pi write system file
  • 09-3.Orin write system
  • 10.Jetpack old system upgraded to SUPER systemnew
21.ROS2 -Docker(Nano Pi)
  • 1. docker overview and docker installation
  • 2. docker image container common command
  • 3. docker image in-depth understanding and publishing images
  • 4. docker hardware interaction and data processing
  • 5. Enter the docker container of the robot
  • 6. docker in the robot development environment build
  • 7. Customer's method of updating docker images in the future
22.ROS2- ROS2 Basic Tutorial
  • 1.Introduction to ROS2
  • 2.ROS2 install Humble
  • 3.ROS2 development environment
  • 4.ROS2 workspace
  • 5.ROS2 function package
  • 6.ROS2 node
  • 7.ROS2 topic communication
  • 8.ROS2 service communication
  • 9.ROS2 action communication
  • 10.ROS2 custom interface message
  • 11.ROS2 parameter service case
  • 12.ROS2 meta-function package
  • 13.ROS2 distributed communication
  • 14.ROS2 DDS
  • 15.ROS2 time related API
  • 16.ROS2 common command tools
  • 17.ROS2 rviz2 use
  • 18.ROS2 Rqt Toolbox
  • 19.ROS2 Launch startup file configuration
  • 20.ROS2 recording and playback tool
  • 21.ROS2 URDF model
  • 22.ROS2 Gazebo simulation platform
  • 23.ROS2 TF2 coordinate transformation
23. ROS2-Robot control course
  • 1. PID algorithm theory
  • 2. Robot information release
  • 3. Robot control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. URDF model
24. ROS2-Lidar course
  • 1-1. Introduction and use of SLAM lidar
  • 1-2. Introduction and use of 4ROS lidar
  • 2. Lidar obstacle avoidance fun gameplay
  • 3. Lidar tracking fun gameplay
  • 4. Patrol function play
  • 5. gmapping map building algorithm
  • 6. cartographer building algorithm
  • 7. Navigation and obstacle avoidance
  • 8. Rosmaster_R2 using the app to build maps
  • 9. Rosmaster_R2 navigating with the app
25. ROS2-OpenCV courses
  • 1. opencv basic course
  • 2. ROS+opencv application
  • 3. QR code creation and recognition
  • 4. AR Vision
  • 5. mediapipe fun gameplay
  • 6. Patrol line autopilot
26. ROS2-Depth camera courses
  • 1. Depth camera use
  • 2. Camera calibration
  • 3. Color tracking
  • 4. KCF object tracking
  • 5. ORB_SLAM2 Basics
  • 6. ORB_SLAM2 PCL mapping
  • 7. ORB_SLAM2 Octomap mapping
  • 8. RTAB-Map 3D mapping navigation
27.ROS2- Voice control courses
  • 0. How to use old voice module in new image
  • 1.1 Introduction to the module-New
  • 1.2 Voice Control Module Port Binding-New
  • 1.3 Introduction to the module-Old
  • 2. Voice control car movement
  • 3. Voice control autopilot
  • 4. Voice control color recognition
  • 5. Voice control color tracking
  • 6. Voice control multi-point navigation
28.Deep learning courses(SUPER)
  • 1.KNN recognizes handwritten digitsnew
  • 2.Basic use of TensorFlownew
  • 3.Basic use of PyTorch(jetson)new
  • 4.YOLOv11Model conversion(SUPER)new
  • 5.YOLOv11Dataset annotation(SUPER)new
  • 6.YOLOv11Model conversion + tensorrt acceleration(SUPER)new
  • 7.YOLOv11Object recognition(SUPER)new
29. ROS2-Multi-robot control
  • 1. Multi-robot control
  • 2. Multi-robot navigation
LLM tutorial
1.Development environment
  • 0. Model usage instructions
  • 1.Environments deployment
  • 2.Dialogue platform installation
2.Jetson Nano B01
  • 1.Qwen2 model
  • 2.TinyLlama model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.Orca Mini model
  • 6.StarCoder2 model
  • 7.DeepSeek-R1 model
  • 8.Expand LLaVA-Phi3
3.Jetson Orin NXNANO
  • 1.Llama3 model
  • 2.Qwen2 model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.WizardLM2 model
  • 6.Codellama model
  • 7.DeepSeek-R1 model
  • 8.Orca Mini model
  • 9.StarCoder2 model
  • 10.TinyLlama model
  • 11.Expand LLaVA
  • 12.Expand LLaVA-Phi3
4.Raspberry Pi 5B
  • 1.Meta AI Llama3 model
  • 2.Qwen2 model
  • 3.Phi-3 model
  • 4.Gemma model
  • 5.WizardLM2 model
  • 6.Meta AI Codellama model
  • 7.DeepSeek-R1 model
  • 8.Expand LLaVA
FAQ
  • 1.Using your own Jetson board, car cannot start normally
Download
  • RemoteCtrl_APP(iOS/Android)
  • Mapping_APP(iOS_Android)
  • Instruction Manual
  • SystemFile_ROS1
  • SystemFile_ROS2
  • SystemFile_ROS2_OrinNANOSUPER
  • SystemFile_ROS2_OrinNXSUPER
  • VM software
  • Code
  • Jetson_Boot_USB.tar.gz
  • Autopilot Annex
  • Other_Annex_File
  • LLM_SystemFile
  • ROS2_Basic_VM
Download ZIP

Welcome to ROSMASTER R2 repository

5、Enter the bot's docker container

5. Enter the robot’s docker container

*Raspberry Pi PI5Master Control’s ROS1 courses are all in docker containers. *

5. Enter the robot’s docker container5.1, related concepts5.2. How to query the docker image version used by the robot5.3. Binding peripherals5.4. Check the peripheral connection status5.5. Edit script5.6. Execute script5.7. Switch models, radars and cameras5.8. Multiple terminals enter the same docker container5.9. How to open a container that is already in the [Exited] state5.9.1. Need to use camera5.9.2. No need to use camera5.9.3. Containers that enter the [Exited] closed state again

The operating environment and software and hardware reference configuration are as follows:

  • Reference model: ROSMASTER X3

  • Robot hardware configuration: Arm series main control, Silan A1 lidar, AstraPro Plus depth camera

  • Robot system: Ubuntu (no version required) + docker (version 20.10.21 and above)

  • PC virtual machine: Ubuntu (18.04) + ROS (Melodic)

  • Usage scenario: Use on a relatively clean 2D plane

     

5.1, related concepts

  1. What is a docker host?

xxxxxxxxxx
The host is the server where we call the command to create the container using the image. This refers to the main control on our car (jetson or Raspberry Pi, etc.). The hosts mentioned below all refer to this.
  1. What is GUI?

x
GUI is the graphical user interface, which mainly refers to: the image window displayed by opencv, rviz interface, rqt interface, etc.
  1. What is the robot’s docker container?

xxxxxxxxxx
The robot here is the Rosmaster car, which is the Rosmaster car container that has been configured with various development dependency environments.
  1. Before operating the tutorial in this chapter, please make sure that you have mastered the knowledge of the following chapters, otherwise you may find it difficult to learn. If this happens, please review the following pre-knowledge content repeatedly. Once you master it, you will feel very relaxed. Come on, you are the best!

image-20230519094253521

 

5.2. How to query the docker image version used by the robot

  1. The docker image version used by the robot is also the image version used on the car. After the user burns the system image of the car and starts it, execute:

xxxxxxxxxx
#PI5 ROS1
pi@yahboom:~ $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yahboomtechnology/ros-melodic 1.4.1 f8c914ba3cff 12 days ago 23.1GB

You will see multiple docker image versions. Please select the name [yahboomtechnology/ros-melodic]. The version with the highest tag is the latest image version of the robot. As queried here, use the [yahboomtechnology/ros-melodic:1.4.1] version,.

  1. Why can’t we just put one docker image in the car system?

If you have read the tutorial in this chapter [07. Docker ------- 3. In-depth understanding of docker images and publishing images], you should know that docker images are a layered mechanism, that is, the image of a subsequent tag depends on the image of the previous tag. Mirror. Therefore, there may be multiple versions of docker images in the host machine, and the tags of these images will be updated incrementally.

In the future, we will update new courses and update functions by releasing new docker images.

 

5.3. Binding peripherals

 

  • First make sure that the car has connected various peripherals and has done port binding on the peripherals. The port binding is processed on the docker host (car)

  • Common peripherals include: serial port equipment, laser radar, RGBD camera, voice control module, joystick remote control, etc.

  • By default, the car has been bound to Astra camera, lidar and serial device. If you need to bind other devices, please refer to the port binding tutorial.

  • For the steps of port binding, please refer to the tutorial chapter [6. Linux operating system ------ 06. Binding device ID]

     

    Port binding has been configured in the host. If you need to modify it, you can check the content and modify it:

image-20230506144842423

 

5.4. Check the peripheral connection status

 

This step is performed on the host machine:

  1. This is to view the peripherals other than the camera. There is no voice control module connected here. If it is connected, the [myspeech] device will be displayed.

xxxxxxxxxx
ll /dev | grep ttyUSB*

image-20230423172753208

 

  1. Check the ports of the AstraPro Plus camera as follows:

xxxxxxxxxx
jetson@ubuntu:~$ ll /dev/astra*
lrwxrwxrwx 1 root root 15 May 5 17:42 /dev/astradepth -> bus/usb/001/007
lrwxrwxrwx 1 root root 15 May 5 17:42 /dev/astrauvc -> bus/usb/001/009

 

5.5. Edit script

Since the port number will often change after the AstraPro Plus camera is plugged in and unplugged, you need to re-edit the script to configure the port of the AstraPro Plus camera.

 

Edit the script to run docker. This step is performed on the host machine:

  1. The script to run docker [run_docker.sh] is generally placed in the root directory of the car's owner directory. Here I am in the path below. If not, you can create the file yourself, and remember to give the script executable permissions after creation.

xxxxxxxxxx
chmod +x run_docker.sh #Give the script executable permissions

image-20230423164551252

The content of the [run_docker.sh] script is as follows:

Those without comments can be copied directly and modified as needed.

Note: When adding a host device to the container below, if the host is not connected to the device, you need to remove the corresponding addition operation before the container can be opened.

Raspberry Pi PI5 ROS1

xxxxxxxxxx
#!/bin/bash
xhost+
docker run -it \
--net=host \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/pi/temp:/root/temp \
-v /dev/bus/usb/003/006:/dev/bus/usb/003/006 \
-v /dev/bus/usb/003/008:/dev/bus/usb/003/008 \
--device=/dev/myserial \
--device=/dev/rplidar \
--device=/dev/astradepth \
--device=/dev/astrauvc \
--device=/dev/input \
--device=/dev/video0 \
--device=/dev/video1 \
-p 9090:9090 \
-p 8888:8888 \
yahboomtechnology/ros-melodic:1.4.1 /bin/bash

Annotated script description:

Note: When adding a host device to the container below, if the host is not connected to the device, you need to remove the corresponding addition operation before the container can be opened.

x
#!/bin/bash
xhost + # xhost is used to support GUI display in docker

docker run -it \ # Interactively run the docker image
--net=host \ # Container network is set to host mode
--env="DISPLAY" \ # Turn on the display GUI interface
--env="QT_X11_NO_MITSHM=1" \ # Use X11 port 1 for display
-v /tmp/.X11-unix:/tmp/.X11-unix \ # Map display service node directory
-v /home/pi/temp:/root/temp \ # As a directory for the host and container to temporarily transfer files, you can use this directory if you need to transfer files.
-v /dev/bus/usb/001/010:/dev/bus/usb/001/010 \ # Add host device to the container. This is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
-v /dev/bus/usb/001/011:/dev/bus/usb/001/011 \ # Add host device to the container. This is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
--device=/dev/astradepth \ # Add host device to the container. Here is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
--device=/dev/astrauvc \ # Add host device to the container. Here is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
--device=/dev/video0 \ # Add host device to the container. Here is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
--device=/dev/video1 \ # Add host device to the container. Here is the astrpro plus device port. If the car is not connected to the camera, please remove this line.
--device=/dev/myserial \ # Add host device to the container. Here is the serial device port. If the car is not connected to the serial port, please remove this line.
--device=/dev/rplidar \ # Add host device to the container. Here is the radar device port. If the car is not connected to the radar, please remove this line.
--device=/dev/myspeech \ # Add host device to the container. Here is the voice control device port. If the car is not connected to the voice control device, please remove this line.
--device=/dev/input \ # Add host device to the container. Here is the handle device port. If the car is not connected to the handle, please remove this line.
-p 9090:9090 \ # Open port
-p 8888:8888 \
yahboomtechnology/ros-melodic:1.4.1 /bin/bash # The name of the image to be started, based on the modification queried in step 5.2; execute the /bin/bash command in the container

#Note: When adding the host device to the container above, if the host is not connected to the device, you need to remove the corresponding addition operation before the container can be opened.

 

  1. Modify the above script. These two lines are the port numbers of the AstraPro Plus camera. Since the port number will change after the camera is plugged in and out, you need to reconfigure the camera port.

xxxxxxxxxx
-v /dev/bus/usb/001/010:/dev/bus/usb/001/010 \ # Mount the storage volume to the container and mount it to a directory in the container. What is mounted here is the RGB and RGB of the camera. depth port
-v /dev/bus/usb/001/011:/dev/bus/usb/001/011 \

It is the camera port queried in step 5.4 2. This port may change after the camera is plugged in and out, so everyone's port is different and needs to be configured by yourself.

xxxxxxxxxx
-v /dev/bus/usb/001/007:/dev/bus/usb/001/007 \ # Mount the storage volume to the container and mount it to a directory in the container. What is mounted here is the RGB and RGB of the camera. depth port
-v /dev/bus/usb/001/009:/dev/bus/usb/001/009 \

 

 

5.6. Execute script

 

After step 5.5 is completed, open the terminal on the docker host machine [i.e. the car, which can be on VNC or on the car screen]

Note: This must be executed on the VNC of the car or on the screen of the car. It cannot be executed on the car terminal remotely entered through ssh.Execute in the terminal (such as the car terminal entered through MobaXterm), otherwise the GUI image may not be displayed in the container. As follows, after entering the car terminal in MobaXterm and executing run_docker.sh to enter the container, rviz cannot be displayed.

image-20230423173220146

 

Execute in the VNC interface of the car or on the car screen:

xxxxxxxxxx
./run_docker.sh

You can correctly enter the container and display the GUI screen. You can execute the rviz command test again.

image-20230423171929960

 

If the GUI cannot be displayed after executing the rviz command, the following error is displayed: (generally possible in the Raspberry Pi master)

image-20230509173232054

You need to add another parameter to the startup script:

xxxxxxxxxx
--security-opt apparmor:unconfined

Raspberry Pi PI5 ROS1

xxxxxxxxxx
#!/bin/bash
xhost+
docker run -it \
--net=host \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--security-opt apparmor:unconfined \ # Added this parameter
-v /home/pi/temp:/root/temp \
-v /dev/bus/usb/003/006:/dev/bus/usb/003/006 \
-v /dev/bus/usb/003/008:/dev/bus/usb/003/008 \
--device=/dev/myserial \
--device=/dev/rplidar \
--device=/dev/astradepth \
--device=/dev/astrauvc \
--device=/dev/input \
--device=/dev/video0 \
--device=/dev/video1 \
-p 9090:9090 \
-p 8888:8888 \
yahboomtechnology/ros-melodic:1.4.1 /bin/bash

Then run the script again to enter the container and display the GUI screen.

 

 

5.7. Switch models, radars and cameras

Note: Since the ROSMASTER series robots are divided into multiple types of robots and multiple types of equipment, the factory system has been configured with routines for multiple types of equipment. However, since the product cannot be automatically identified, the machine type and radar model need to be manually set.

After entering the container: Make the following modifications according to the car model, radar type and camera type:

xxxxxxxxxx
root@ubuntu:/# cd
root@ubuntu:~# vim .bashrc

image-20230525093413004

After the modification is completed, save and exit vim, and then execute:

xxxxxxxxxx
root@ubuntu:~# source .bashrc
-------------------------------------------------- ------
ROS_DOMAIN_ID: 12
my_robot_type: x3 | my_lidar: a1 | my_camera: astraplus
-------------------------------------------------- ------
root@ubuntu:~#

You can see the current modified car model, radar type and camera type

 

Robot project files are stored in the following directory:

xxxxxxxxxx
/root/yahboomcar_ws

 

5.8. Multiple terminals enter the same docker container

 

  1. In the above steps, a docker container has been opened. You can open another terminal on the host (car) to view:

xxxxxxxxxx
docker ps -a

image-20230423182207793

  1. Now enter the docker container in the newly opened terminal:

xxxxxxxxxx
docker exec -it 5b698ea10535 /bin/bash

image-20230423182446607

After successfully entering the container, you can open countless terminals to enter the container.

Robot project files are stored in the following directory:

xxxxxxxxxx
/root/yahboomcar_ws

 

  1. Note:

(1) When executing the command in step 2, make sure the container is in the [UP] state

image-20230423182959239

(2) If the container is in the [Exited] closed state, please refer to step 1.6 below.

image-20230423183116348

 

 

5.9. How to open a container that is already in the [Exited] state

 

There are two situations: still need to use the camera and no longer need to use the camera

 

5.9.1. Need to use camera

First, you need to check whether the port of the AstraPro Plus camera has changed according to the guidance in the above step [5.3. Check the peripheral connection status].

  1. If the port of the Astra Pro camera is changed, it will not be possible to enter the container again.

(1) If there are some modifications in the container that need to be retained, you can refer to the following command to generate a new image,

xxxxxxxxxx
Submit an image from the container:
docker commit container id Target image name to be created: [label name]
For example: docker commit 66c40ede8c68 yahboomtechnology/ros-melodic:1.1 #The label name is incremented according to your own situation

Then run this new image into the container: refer to the steps [5.2 to 5.5] in this chapter to perform

(2) If there are no modifications that need to be retained, directly refer to the steps [5.2 to 5.5] in this chapter to enter the container.

 

  1. If the port of the AstraPro Plus camera has not changed, then directly refer to the steps of [5.7.3, Entering the [Exited] Closed State Container Again].

 

5.9.2. No need to use camera

Directly refer to the steps of [5.7.3, Entering the [Exited] Closed State Container Again] to perform.

 

 

5.9.3. Containers that enter the [Exited] closed state again

Open the terminal on the docker host machine [that is, the car, which can be on VNC or on the car screen]

Note: This must be executed on the VNC of the car or on the car screen. It cannot be executed in the car terminal remotely entered through ssh (such as the car terminal entered through MobaXterm). Otherwise, the GUI image may not be displayed in the container. Of course, how can you There is no need to display the GUI image, that's fine.

  1. First check the status of the container

xxxxxxxxxx
docker ps -a
  1. Enable GUI access

xxxxxxxxxx
xhost+
  1. Open the container [The ID of the container here can be abbreviated, as long as it can uniquely identify the currently existing container]

xxxxxxxxxx
docker start 5b
  1. Enter the container again

xxxxxxxxxx
docker exec -it 5b /bin/bash
  1. Open rviz to see if the GUI screen can be opened.

x
rviz
  1. The specific implementation is as follows:

x
jetson@ubuntu:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b698ea10535 yahboomtechnology/ros-melodic:1.4.1 "/bin/bash" 3 days ago Exited (0) 8 seconds ago ecstatic_lewin
jetson@ubuntu:~$ xhost +
access control disabled, clients can connect from any host
jetson@ubuntu:~$ docker start 5b
5b
jetson@ubuntu:~$ docker exec -it 5b /bin/bash
-------------------------------------------------- ------
my_robot_type: x3 | my_lidar: a1 | my_camera: astrapro
-------------------------------------------------- ------
root@ubuntu:/# rviz
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[INFO] [1682298616.634096279] [rviz]: Stereo is NOT SUPPORTED
[INFO] [1682298616.634576375] [rviz]: OpenGl version: 3.1 (GLSL 1.4)
[INFO] [1682298617.959654036] [rviz]: Stereo is NOT SUPPORTED
Docker hardware interaction and data processing
Robot development environment construction in Docker

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文