yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROSMASTER X3 Plus📖
1.Preparation and First Trial
  • 1.1 Wiring Introduction
  • 1.2 Precautions for battery
  • 1.3 First Trial
  • 1.4 Precautions for DIY Robotic Arm
2. Assembly steps
  • Installation Video
3.Remote control course
  • 3.1 APP remote control
  • 3.2 Model aircraft remote control
  • 3.3 Handle remote control
4.Hardware course
  • 4.1 About expansion board_V3.0
  • 4.1 About expansion board_V1.0
  • 4.2 STM32 Development
  • 4.3 Button to control the buzzer
  • 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
  • 4.10 Control serial port servos
  • 4.11 Nine-axis attitude sensor
  • 4.12 Control motor
  • 4.13 Timer captures the encoder data
  • 4.14 Kinematic Analysis
  • 4.15 PID control robot movement
5.Basic course
  • 5.1 Update the firmware
  • 5.2 Turn off the self-starting process
  • 5.3 Install the Rosmaster driver
  • 5.4 Buzzer whistle
  • 5.5 Control PWM servo
  • 5.6 RGB colorful light bar
  • 5.7 Control motor
  • 5.8 Control robot movement
  • 5.9 Control Serial Servo
6.Linux operating system
  • 6.1 Virtual machine installation
  • 6.2 Linux basics
  • 6.3 Remote control
  • 6.4 Multi-machine communication
  • 6.5 Static IP and hotspot mode
  • 6.6 Bind the device ID
  • 6.7 Web page real-time monitor
  • 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.Docker-Just for pi5
  • 7.1 Docker overview and docker installation
  • 7.2 Common commands for docker image containers
  • 7.3 Docker images deeply understand and publish images
  • 7.4 Docker hardware interaction and data processing
  • 7.5 Enter the bot's docker container
  • 7.6 Robot development environment construction in Docker
  • 7.7 How customers can update docker images in the future
8.ROS basic course
  • 8.1 ROS introduction
  • 8.2 ROS installation
  • 8.3 ROS common command tools
  • 8.4 ROS workspace
  • 8.5 ROS function package
  • 8.6 ROS node
  • 8.7 ROS topic publisher
  • 8.8 ROS topic subscribers
  • 8.9 ROS service client
  • 8.10 ROS service server
  • 8.11 ROS action client
  • 8.12 ROS action server
  • 8.13 ROS custom message reception
  • 8.14 ROS-launch file
  • 8.15 ROS-TF transformation
  • 8.16 ROS parameter service
  • 8.17 ROS-rviz use
  • 8.18 ROS-rqt tool usage
  • 8.19 Topic message recording and playback
  • 8.20 urdf model introduction
  • 8.21 gazebo introduction
  • 8.22 ROS distributed communication
9.OpenCV courses
  • 9.1 Getting started with Open Source CV
  • 9.2 Geometric transformation
  • 9.3 Image processing and draw
  • 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
  • 9.11 MediaPipe development
10.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.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
  • 11.7 RTAB-Map 3D mapping
  • 11.8 ORB_SLAM2 basics
  • 11.9 ORB_SLAM2_Octomap
12.Lidar course
  • 12.1 Lidar basic-SLAM
  • 12.1 Lidar basic-EAI
  • 12.2 Lidar avoiding
  • 12.3 Lidar guard
  • 12.4 Lidar follow
  • 12.5 Patrol game
  • 12.6 gmapping mapping algoritm
  • 12.7 hector mapping algorithm
  • 12.8 karto mapping algorithm
  • 12.9 cartographer mapping
  • 12.10 rrt_exploration mapping
  • 12.11 AMCL
  • 12.12 Navigation and avoiding
  • 12.13 APP mapping and navigation
13.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.Deep learning courses
  • 14.1 KNN recognizes handwritten
  • 14.2 Basic use of TensorFlow
  • 14.3 Basic use of PyTorch(jetson)
  • 14.4 yolov5 model training(jetson)
  • 14.5 yolov5+tensorrt acceleration
  • 14.6 yolov4-tiny
15.Voice control courses
  • 0. How to use old voice module in new image
  • 15.1 Introduction of voice control-new
  • 15.2 Voice control module port-new
  • 15.3.Introduction of voice module-old
  • 15.4.Voice control module port binding-old
  • 15.5 Voice control car movement
  • 15.6 Voice control Autopilot
  • 15.7 Voice control color recogzition
  • 15.8 Voice control color tracking
  • 15.9 Voice control multi-point nagavation
16.Robotic arm control course
  • 16.1 MoveIt configuration
  • 16.2 MoveIt control the real machine
  • 16.3 MoveIt moves randomly
  • 16.4 MoveIt kinematics design
  • 16.5 MoveIt cartesian path
  • 16.6 MoveIt avoiding
  • 16.7 MoveIt scene design
  • 16.8 MoveIt trajectory planning
  • 16.9 Mediapipe palm control car
  • 16.10 Mediapipe gesture control robotic arm
  • 16.11 Mediapipe gesture control car
  • 16.12 Mediapipe arm attitude control robotic arm
  • 16.13 Mediapipe recognizes and tracks palm control robotic arm
  • 16.14 Recognizes color block and handling
  • 16.15 Autopilot to clear obstacles
17.Voice control robotic arm course
  • 17.1 Voice control robotic arm movement
  • 17.2 Voice control robotic arm learning
  • 17.3 Voice control color block transport
  • 17.4 Voice control robotic arm grip objects
  • 17.5 Voice control robotic arm garbage sorting
18.Model training Autopilot
  • 18.0 ReadMe
  • 18.1 yolov5 to train traffic signs
  • 18.2 TensorRt acceleration identification mark
  • 18.3 Road sign indication function description
  • 18.4 Collect data
  • 18.5 Training model
  • 18.6 Model transformation and application
  • 18.7 AI Autopilot
19.For Orin-Remote control course
1. APP control
  • 1. APP control
  • 2. Model aircraft control
  • 3. Handle control
2. Model aircraft control
3. Handle control
20.Orin-Hardware course
  • 1. About expansion board_V1.0
  • 1. About expansion board_V2.0
  • 2. STM32 Development environment
  • 3. Button control
  • 4. FreeRTOS application
  • 5. Serial communication
  • 6. SBUS model aircraft remote control
  • 7. CAN bus communication
  • 8. RGB colorful light bar
  • 9. Timer interrupt to control PWM servo
  • 10. Control serial port servos
  • 11. Nine-axis attitude sensor to obtain data
  • 12. Control motor
  • 13. Timer captures the encoder data
  • 14. Robot kinematics analysis theory
  • 15. PID control robot movement
21.Orin-Basic course
  • 1. Update the firmware
  • 2. Turn off the self-starting process at startup
  • 3. Install the Rosmaster driver library
  • 4. Buzzer whistle
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects display
  • 7. Control motor
  • 8. Control robot movement
  • 9. Control Serial Servo
22.Orin-Linux operating systemnew
  • 1. Virtual machine installation and use
  • 2. Linux basics
  • 3. Remote control
  • 4. Multi-machine communication configuration
  • 5. Static IP and hotspot mode
  • 6. Bind the device ID
  • 7. Web page real-time monitoring
  • 8. Expansion tutorial
  • 9.1 Jetson Nano write sytem
  • 9.2 Jetson Xavier NX write system
  • 9.3 Jetson TX2 NX-Orin series write system
  • 9.4 Raspberry Pi write system
  • 10.Jetpack old system upgraded to SUPER system
23.Orin-Dockernew
SUPER image uses ros environment in docker
  • 1、Docker overview and docker installationnew
  • 2、Common commands for docker image containersnew
  • 3、Docker images deeply understand and publish imagesnew
  • 4、Docker hardware interaction and data processingnew
  • 5、Enter the bot's docker containernew
  • 6、Robot development environment construction in Dockernew
23.Orin-ROS basic course
  • 1.ROS introduction
  • 2.Project file structure
  • 3.Common commands and tools
  • 4.Publisher
  • 5.Subscribers
  • 6.Customize topic messages and use
  • 7.Client
  • 8.Server
  • 9.Custom service messages and usage
  • 10.TF release and monitoring
24.Orin-OpenCV courses
  • 1. Getting started with Open Source CV
  • 2. Open Source CV geometric transformation
  • 3. Open Source CV image processing and drawing text line segments
  • 4. Open Source CV image beautification
  • 5. Opencv application
  • 6. AR vision
  • 7. AR QR code
  • 8. ROS+Opencv foundation
  • 9. ROS+Opencv application
  • 10. Data transformation and point cloud
  • 11. MediaPipe development
25.Orin-Robot control course
  • 1.PID algorithm theory
  • 2.Robot PID debugging
  • 3.Robot information release
  • 4.Robot keyboard control
  • 5.Robot handle control
  • 6.Robot state estimation
  • 7.Robot calibration
  • 8.Robot URDF model
26.Orin-Depth camera course
  • 01.How to use the Astra camera
  • 02.Astra camera calibration
  • 03.Astra Color Tracking
  • 04.Astra Object Tracking
  • 05.Visual tracking autopilot
  • 06.Pure visual 2D mapping and navigation
  • 07.RTAB-Map 3D mapping navigation
  • 08.ORB_SLAM2 basics
  • 09.ORB_SLAM2_Octomap
27.Orin-Lidar course
  • 1.Lidar basic-4ROS-EAI
  • 1.Lidar basic-SLAM
  • 2.Lidar avoiding
  • 3.Lidar guard
  • 4.Lidar follow
  • 5.Patrol game
  • 6.gmapping mapping algorithm
  • 7.hector mapping algorithm
  • 8.karto mapping algorithm
  • 9.cartographer mapping algorithm
  • 10.rrt_exploration mapping algorithm
  • 11.AMCL
  • 12.Navigation and avoiding
  • 13.APP mapping and navigation
28.Orin-Multi-robot control course
  • 1.Multi-machine handle control
  • 2.Multi-machine navigation
  • 3.Multi-machine formation
  • 4.Multi-machine surround
29.Orin-Deep learning courses
  • 1.KNN recognizes handwritten digits
  • 2.Basic use of TensorFlow
  • 3.Basic use of PyTorch(jetson)
  • 4.YOLOv11Model conversion(SUPER)new
  • 5.YOLOv11Dataset annotation(SUPER)new
  • 6.YOLOv11Model conversion + tensorrt acceleration(SUPER)new
  • 7.YOLOv11Object recognition(SUPER)new
30.Orin-Voice control courses
  • 0. How to use old voice module in new image
  • 1.1 Introduction of voice module-new
  • 1.2 Introduction of voice module-old
  • 2.1 Voice control module port binding-new
  • 2.2 Voice control module port binding-old
  • 3. Voice control car movement
  • 4. Voice control Autopilot
  • 5. Voice control color recognition
  • 6. Voice control color tracking
  • 7. Voice control multi-point navigation
31.Orin-Robotic arm control course
  • 1.MoveIt configuration(VM)
  • 2.MoveIt control the real machine(VM)
  • 3.MoveIt moves randomly(VM)
  • 4.MoveIt kinematics design(VM)
  • 5.MoveIt cartesian path(VM)
  • 6.MoveIt avoiding(VM)
  • 7.MoveIt scene design(VM)
  • 8.MoveIt trajectory planning(VM)
  • 9.Mediapipe palm control car
  • 10.Mediapipe gesture control robotic arm
  • 11.Mediapipe gesture control car
  • 12.Mediapipe arm attitude control robotic arm
  • 13.Mediapipe recognizes and tracks palm control robotic arm
  • 14.Recognizes color block and handling
  • 15.Autopilot to clear obstacles
32.Orin-Voice control robotic arm course
  • 1.Voice control robotic arm movement
  • 2.Voice control robotic arm learning
  • 3.Voice control color block transport
  • 4.Voice control robotic arm grip objects
  • 5.Voice control robotic arm garbage sorting
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
  • Using your own Jetson board, car cannot start normally
Download
  • RemoteCtrl_APP(iOS/Android)
  • Mapping_APP(iOS_Android)
  • SystemFile_OrinNANOSUPER
  • SystemFile_OrinNXSUPER
  • SystemFile_RPi_NANO
  • Instruction Manual
  • Code
  • Autopilot Annex
  • VM software
  • Jetson_Boot_USB.tar.gz
  • Other_Annex_File
Download ZIP
FAQ
  • 1、How to connect OLED?
  • 2、Precautions for DIY Robotic Arm

Welcome to ROSMASTER X3 Plus repository

5、Enter the bot's docker container

5. Enter the robot's docker container

*ORIN's ROS1 course is all in the docker container. *

5. Enter the robot's docker container5.1. Related concepts5.2, How to query the docker image version used by the robot5.3. Bind peripherals5.4. Check the connection of peripherals5.5, Edit the script5.6, execute the script5.7, Switching models, radars and cameras5.8. Multiple terminals enter the same docker container5.9. How to open a container that is already in the [Exited] closed state5.9.1. Need to use the camera5.9.2, no need to use the camera5.9.3, re-enter the container in the [Exited] closed state

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

  • Reference vehicle: ROSMASTER X3PLUS

  • Robot hardware configuration: Arm series master, EAI 4ROS LiDAR, AstraPro Plus depth camera

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

  • PC virtual machine: Ubuntu (20.04) + ROS (Noetic)

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

5.1. Related concepts

  1. What is the host of docker

xxxxxxxxxx
The host is the server where we call the command to create a container using the image. Here it refers to the master on our car (jetson or Raspberry Pi, etc.), and the host mentioned below refers to this.
  1. What is GUI

xxxxxxxxxx
GUI is a graphical user interface, which mainly refers to: image window displayed by opencv, rviz interface, rqt interface, etc.
  1. What is the docker container of the robot

xxxxxxxxxx
The robot here is the Rosmaster car, that is, the Rosmaster car container with various development dependent environments configured
  1. Before operating this chapter tutorial, please make sure that you have mastered the knowledge of the following chapters, otherwise you may find it difficult to learn. In this case, please check the following pre-knowledge content repeatedly. You will feel very relaxed after mastering it. 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
jetson@yahboom:~$ docker images
REPOSITORY                      TAG       IMAGE ID       CREATED                  SIZE
yahboomtechnology/ros-noetic    3.0.1     2bb046f7e0a3   Less than a second ago   14.9GB
192.168.2.51:5000/ros-noetic    3.0.0     38494195a8e0   Less than a second ago   14.9GB
ghcr.io/open-webui/open-webui   main      8f1fbf4363d3   Less than a second ago   3.72GB
heartexlabs/label-studio        latest    0ee0e4188523   Less than a second ago   662MB

You will see multiple docker image versions. Please select the name [yahboomtechnology/ros-noetic]. The version with the highest tag is the latest image version of the robot. If you find it here, use the version [yahboomtechnology/ros-noetic:3.0.1]

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

If you have read the tutorial of [07, Docker ------ 3, docker image in-depth understanding and release image], you should know that docker image is a layered mechanism, that is, the image of the latter tag depends on the image of the previous tag. Therefore, there may be multiple versions of docker images in the host machine, and the tags of these images will be updated in an incremental manner.

Later, when we update new courses, we will also update functions by releasing new docker images.

5.3. Bind peripherals

  • First, make sure that the car has been connected to various peripherals and that port binding has been done for the peripherals. Port binding is handled on the docker host (car)

  • Common peripherals include: serial devices, lidar, RGBD camera, voice control module, handle remote control, etc.

  • By default, the car has bound 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 section [Six, Linux operating system ------ 06. Bind device ID]

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

image-20230506144842423

5.4. Check the connection of peripherals

This step is performed on the host machine:

  1. Here is to check 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 port of the AstraPro Plus camera as follows:

xxxxxxxxxx
jetson@yahboom:~$ ll /dev/as*
lrwxrwxrwx 1 root root 15 Jan 1 08:00 /dev/astro_pro_plus -> bus/usb/001/012
lrwxrwxrwx 1 root root 15 Jan 1 08:00 /dev/astro_pro_plus_rgb -> bus/usb/001/014

5.5, Edit the script

Since the port number often changes after the AstraPro Plus camera is plugged in and out, 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 main directory. I am in the following path. If you don't have it, you can create the file yourself. Remember to give the script executable permissions after creation.

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

image-20230423164551252

[run_docker.sh] The contents of the script are as follows:

The uncommented ones can be copied directly and modified as needed

Note: When adding host devices to the container below, if the host is not connected to the device, you need to remove the corresponding addition operation to start the container

xxxxxxxxxx
#!/bin/bash
xhost +
docker run -it \
--gpus all \
--runtime=nvidia \
--net=host \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--env="NO_AT_BRIDGE=1" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/jetson/temp:/root/temp \
-v /dev/bus/usb/001/012:/dev/bus/usb/001/012 \
-v /dev/bus/usb/001/010:/dev/bus/usb/001/010 \
--device=/dev/myserial \
--device=/dev/myspeech \
--device=/dev/ydlidar \
--device=/dev/astro_pro_plus \
--device=/dev/astro_pro_plus_rgb \
--device=/dev/input \
--device=/dev/camera_usb \
--device=/dev/camera_depth \
-p 9090:9090 \
-p 8888:8888 \
yahboomtechnology/ros-noetic:3.0.1 /bin/bash

Commented script description:

Note: When adding a host device to a container, if the host is not connected to the device, you need to remove the corresponding addition operation to start the container

xxxxxxxxxx
#!/bin/bash
xhost +                                                     # xhost is used to support the display of GUI in docker
docker run -it \                                            # Interactively run docker image
--gpus all \                                                # Allow docker to use all gpus
--runtime=nvidia \                                          # Allow docker to use nvidia components
--net=host \                                                # Set the container network to host mode
--env="DISPLAY" \                                           # Enable the display of the GUI interface
--env="QT_X11_NO_MITSHM=1" \                                # Use X11 port 1 for display
-v /tmp/.X11-unix:/tmp/.X11-unix \                          # Mapping shows the service node directory
-v /home/jetson/temp:/root/temp \                           # As a temporary file transfer directory between the host and the container, you can use this directory if you need to transfer files
-v /dev/bus/usb/001/010:/dev/bus/usb/001/010 \              # Add the 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
-v /dev/bus/usb/001/011:/dev/bus/usb/001/011 \              
                                                            # Add the 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/astro_pro_plus \                              # Add the 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/astro_pro_plus_rgb \                          # Add the 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 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 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 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 container, here is the handle device port, if the car is not connected to the handle, please remove this line
--device=/dev/camera_usb \                                  # Add host device to container, here is the usb camera, if the car is not connected to the camera, please remove this line
--device=/dev/camera_depth \                                # Add host device to container, here is astrpro plus color camera, if the car is not connected to the camera, please remove this line
-p 9090:9090 \                                              # Open port
-p 8888:8888 \
yahboomtechnology/ros-noetic:3.0.1 /bin/bash                # The image name to be started, according to the modification found 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 to start the container
  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, mount it to a directory in the container, here are the camera's rgb and depth ports mounted
-v /dev/bus/usb/001/011:/dev/bus/usb/001/011 \

This 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.

-v /dev/bus/usb/001/007:/dev/bus/usb/001/007 \              # Mount the storage volume to the container, mount it to a directory in the container, here are the camera's rgb and depth ports mounted
-v /dev/bus/usb/001/009:/dev/bus/usb/001/009 \

5.6, execute the script

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

Note: This must be executed on the car's VNC or on the car screen, and 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. As shown below, after entering the car terminal in MobaXterm and executing run_docker.sh to enter the container, rviz cannot be displayed

image-20230423173220146

Execute on the car's VNC interface or on the car screen:

xxxxxxxxxx
./run_docker.sh

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

image-20230423171929960

5.7, Switching models, radars and cameras

Note: Since the ROSMASTER series robots are divided into multiple robots and multiple devices, the factory system has been configured with routines for multiple devices, but 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 changes 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

The 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 it:

xxxxxxxxxx
docker ps -a

image-20230423182207793

  1. Now enter the docker container in this 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.

The 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 the following step 1.6

image-20230423183116348

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

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

5.9.1. Need to use the camera

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

  1. If the port of the Astra Pro camera has changed, you cannot enter the container again.

(1) If there are some changes 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-noetic:3.0.1 # Label name increments according to your own situation

Then run this new image to enter the container: refer to this section [5.2 to 5.5] steps to execute

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

  1. If the port of the AstraPro Plus camera has not changed, refer to [5.7.3, re-enter the container in the [Exited] closed state] step.

5.9.2, no need to use the camera

Refer to [5.7.3, re-enter the container in the [Exited] closed state] step.

5.9.3, re-enter the container in the [Exited] closed state

Open the terminal on the docker host [i.e. the cart, which can be executed on VNC or on the cart screen]

Note: This must be executed on the cart's VNC or on the cart screen, and cannot be executed in the cart terminal remotely accessed through ssh (such as the cart terminal accessed through MobaXterm), otherwise the GUI image may not be displayed in the container. Of course, if you do not need to display the GUI image, then it is OK.

  1. First check the status of the container

xxxxxxxxxx
docker ps -a
  1. Enable GUI access

xxxxxxxxxx
xhost +
  1. Enable the container [the container ID here can be abbreviated as long as it can uniquely identify the 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

xxxxxxxxxx
rviz
  1. Execute as follows:

xxxxxxxxxx
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: astraplus
--------------------------------------------------------
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

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文