yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
MicroROS Self-balancing Robot Car📖
01.Introduction
  • 0.Unboxing and Reviewing
  • 1. Must read before use - learning route
  • 2. Introduction to LiDAR
  • 3. Balance car interface description
  • 4. Analysis of common problems
  • 5. Robot charging and battery precautions
02.Assembly tutorial
  • Robot assembly steps
03.Preparation
  • 0.Quick Start (Must Read)
  • 1.Write firmware
  • 2.How to install and use VM
  • 3.ESP32 communication board configuration parameters
  • 4.Connect to microROS agent
04.ROS-WiFi module configuration
  • 0.Serial port configuration WiFi instructions
  • 1.Use ROS-WiFi cam module(must read)
  • 2.Connect to ROS-WiFi cam module agent
  • 3.Camera image correction (optional)
05.Quick start control
  • 1.Keyboard remote control
  • 2.Handle remote control
06.ROS+OpenCV course
  • 1.OpenCV Getting started
  • 2.Geometric transformation
  • 3.Image processing and drawing text line segments
  • 4.Image beautification
07.Mediapipe course
  • 1. Hand detection
  • 2. Posture detection
  • 3. Overall inspection
  • 4. Face detection
  • 5. Face recognition
  • 6. Facial effects
  • 7. 3D object recognition
  • 8. Brush
  • 9. Finger control
  • 10. Gesture recognition
08.Robot basic course
  • 1.Robot information release
  • 2.Robot keyboard control
  • 3.Robot handle control
  • 4.Robot state estimation
  • 5.Line speed calibration
  • 6.Angular velocity calibration
  • 7.Robot URDF model
09.Lidar course
  • 1.Lidar avoid
  • 2.Lidar following
  • 3.Lidar guard
  • 5.Gmapping mapping
  • 6.Cartographer mapping
  • 7.Navigation2 navigation avoid
  • 8.Navigation2 fast relocation navigation
  • 9.ROS Robot APP mapping
  • 10.ROS Robot APP navigation
10.Robot visual interaction
  • 1.Color tracking
  • 2.Object recognition and tracking
  • 3.Face recognition tracking
  • 4.Autonomous driving line patrol
  • 5.QR code motion control
  • 6.Gesture control car movement
  • 7.Palm control car movement
  • 8.Gesture control car action group
  • 9.Palm recognition and tracking
  • 10.Human body posture recognition and tracking
11.Multi-machine course
  • 1.Multi-machine handle control
  • 2.Multi-machine keyboard control
  • 3.Multi-machine navigation
  • 4.Multi-machine rapid relocation navigation
12.STM32 balancing case
01.Environment construction and development
  • 13.Window Watchdog (WWDG)
  • 01.MDK-ARM installation
  • 02.STM32CubeIDE installation
  • 03.Common driver installation
  • 04.Download the program
  • 05.MDK-ARM project usage
  • 06.Program simulation
02.STM32 getting started course
  • 01.Project creation
  • 02.LED Control(GPIO)
  • 03.Buzzer control(GPIO)
  • 04.Button control(EXTI)
  • 05.Serial communication(USART)
  • 06.Voltage detection(ADC)
  • 07.Basic timer(TIM)
  • 08.Universal timer(TIM)
  • 09.Advanced Timer(TIM)
  • 10.I2C Communication(I2C)-OLED
  • 11.SPI communication(SPI)-2.4G handle
  • 12.Independent Watchdog (IWDG)
  • 14.DMA-USART
  • 15.DMA-I2C
03.STM32 expansion course
  • 01.Battery voltage detection (ADC)
  • 02.Ultrasonic module-measuring distance (TIM)
  • 03.Motor drive+encoder (TIM)
  • 04.OLED Data-Display(I2C)
  • 05.MPU6050-Data Read (I2C)
04.Robot car PID control course
  • 01.PID basic concept
  • 02.PID example analysis
  • 03.P, PI, PD controller theory
  • 04.Position PID
  • 05.Incremental PID
  • 06.Cascade PID
  • 07.Balance principle of car
  • 08.Car upright control (PD)
  • 09.Car speed ​​control (PI)
  • 10.Car steering control (PD)
  • 11.Got angle and angular velocity (DMP algorithm)
  • 12.Got angle and angular velocity (Kalman filter algorithm)
  • 13.Got angle and angular velocity(Complementary filter algorithm)
05.Robot car basic course
  • 01.Car parameter adjustment
  • 02.Ultrasonic obstacle avoidance
  • 03.Ultrasonic follow
  • 04.Bluetooth remote control
  • 05.Load balance
  • 06.Radar obstacle avoidance
  • 07.Radar guard
  • 08.Radar follow
  • 09.Radar patrol
  • 10.Radar wall following go in a straight line
  • 11.Radar tracking wall multiple walls
06.Robot car LQR control
  • Balance car LQR high-level control
07.Circuit design
  • 01.Overall circuit design
  • 02.STM32 minimum system
  • 03.Serial port circuit design
  • 04.Power circuit design
  • 05.MPU6050 Circuit Design
  • 06.Motor drive circuit design
08.Mathematical model
  • Balance car mathematical model
13.Linux basic course
  • 1.Introduction to Linux system
  • 2.Ubuntu file system
  • 3.Ubuntu common commands
  • 4.Ubuntu common editors
  • 5.Ubuntu software operation commands
  • 6.Virtual machine installation
  • 7.SSH remote control
  • 8.VNC remote control
  • 9.Transfer files remotely
  • 10.Driver library and communication
  • 11.Static IP and hotspot mode
  • 12.Bind device ID
  • 13.Capacity expansion and resource allocation
  • 14.Update system software sources
  • 15.Set root user password
  • 16.sudo free password
  • 17.Connect to WiFi network
  • 18.View system version
  • 19.Customized service management
  • 20.Back up system image
14.Docker course
  • 1. Overview and installation
  • 2. Common commands
  • 3. Docker images deeply understand and publish images
  • 4. Docker hardware interaction and data processing
  • 5. Enter the bot's docker container
15.ROS2 basic course
  • 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
Download
  • RemoteCtrl_APP(Android)
  • Mapping_APP(iOS_Android)
  • Code
  • Hardware Information
  • software tools
  • 3D model file
  • Instruction manual
  • VM image file
  • ROS2_Basic_VM
Download ZIP

Welcome to MicroROS Self-balancing Robot Car repository

2. Common commands

2、Common commands

2、Common commands2.1、do not use the sudo command2.2、help commands2.3、mirror command2.4、container commands2.5、common other commands2.6、Command Summary

2.1、do not use the sudo command

Usually, to operate docker commands, you need to add the prefix sudo, as follows:

sudo docker version

But after adding the docker user group, you don't need to add the sudo prefix. How to add a docker user group (run commands in the host running docker):

xxxxxxxxxx
sudo groupadd docker # Add docker user group
sudo gpasswd -a $USER docker # Add the current user to the docker user group, where $USER can automatically resolve to the currently logged in user
Newgrp Docker# Update the docker user group

After adding the above command, use the [docker images] command to test, if there is no error, it means that you can already use the sudo command. If the following error is reported:

xxxxxxxxxx
pi@ubuntu:~$ docker images
WARNING: Error loading config file: /home/pi/.docker/config.json: open /home/pi/.docker/config.json: permission denied

Run the following command on the host to solve the problem:

xxxxxxxxxx
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "/home/$USER/.docker" -R

2.2、help commands

xxxxxxxxxx
docker info # Displays Docker system information, including the number of images and containers.
docker --help # Help

2.3、mirror command

1、Docker pull download image

xxxxxxxxxx
# Download the image
jetson@ubuntu:~$ docker pull ubuntu
Using default tag: latest # Do not write tag, default is latest
latest: Pulling from library/ubuntu
cd741b12a7ea: Pull complete # Layered download
Digest: sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest # Real Location

2、Docker images lists the images

​x
# Lists the images on the local host
jetson@ubuntu:~$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED             SIZE
yahboomtechnology/ros-foxy   3.4.0     49581aa78b6b   About an hour ago   24.3GB
yahboomtechnology/ros-foxy   3.3.9     cefb5ac2ca02   3 days ago          20.5GB
yahboomtechnology/ros-foxy   3.3.8     49996806c64a   4 days ago          20.5GB
yahboomtechnology/ros-foxy   3.3.7     8989b8860d17   4 days ago          17.1GB
yahboomtechnology/ros-foxy   3.3.6     326531363d6e   5 days ago          16.1GB
hello-world                  latest    46331d942d63   13 months ago       9.14kB

# interpretation
REPOSITORY: The repository source of the mirror
TAG: The label of the image
IMAGE: ID The ID of the image
CREATED: Image creation time
SIZE: Image size

# The same repository source can have multiple tags, representing different versions of this repository source, we use REPOSITORY:TAG to define different images, if you do not define the tag version of the image, docker will use lastest images by default!

# Optional
-a: Lists all local images
-q: Only the image ID is displayed
--digests: Displays the summary information of the image

3、docker search

xxxxxxxxxx
# Search for mirrors
jetson@ubuntu:~$ docker search ros2
NAME                                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
osrf/ros2                                       **Experimental** Docker Images for ROS2 deve…   60                   [OK]
tiryoh/ros2-desktop-vnc                         A Docker image to provide HTML5 VNC interfac…   11
althack/ros2                                    An assortment of development containers for …   7
tiryoh/ros2                                     unofficial ROS2 image                           6
athackst/ros2                                   [Deprecated-> use althack/ros2]                 5
uobflightlabstarling/starling-mavros2           ROS2 version of MAVROS                          2
theosakamg7/ros2_java_docker                    Image base                                      1                    [OK]

# docker search The name of an image corresponds to the image in the DockerHub repository
# Optional
--filter=stars=50 : Lists images with a collection of no less than the specified value.

4、docker rmi delete the image

xxxxxxxxxx
# Delete the image
docker rmi -f image id # deletes a single
docker rmi -f image name: tag image name: tag # Delete multiple
docker rmi -f $(docker images -qa) # deletes all

2.4、container commands

To create a container with an image, we use the image of ubuntu here to test and download the image:

xxxxxxxxxx
docker pull ubuntu

1、docker run

xxxxxxxxxx
# command
docker run [OPTIONS] IMAGE [COMMAND][ARG...]
# Description of common parameters
--name="Name" # Specify a name for the container
-d # runs the container in background mode and returns the ID of the container!
-i # runs the container in interactive mode by using it with -t
-t # reassigns a terminal to the container, usually used with -i
-P # random port mapping (uppercase)
-p # specifies the port mapping (summary), which can generally be written in four ways
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort (commonly used)
containerPort

# test
jetson@ubuntu:~$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
yahboomtechnology/ros-foxy   3.4.0     49581aa78b6b   2 hours ago     24.3GB
yahboomtechnology/ros-foxy   3.3.9     cefb5ac2ca02   3 days ago      20.5GB
yahboomtechnology/ros-foxy   3.3.8     49996806c64a   4 days ago      20.5GB
yahboomtechnology/ros-foxy   3.3.7     8989b8860d17   4 days ago      17.1GB
yahboomtechnology/ros-foxy   3.3.6     326531363d6e   5 days ago      16.1GB
ubuntu                       latest    bab8ce5c00ca   6 weeks ago     69.2MB
hello-world                  latest    46331d942d63   13 months ago   9.14kB

# Use ubuntu to start the container in interactive mode and execute the /bin/bash command inside the container!
jetson@ubuntu:~$ docker run -it ubuntu:latest /bin/bash
root@c54bf9efae47:/# ls
bin  boot  dev  etc  home  lib  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@c54bf9efae47:/# exit       # Use exit to exit the container back to the host
exit
jetson@ubuntu:~$

2、docker ps

xxxxxxxxxx
# command
docker ps [OPTIONS]
# Description of common parameters
-a # lists all currently running containers + historically run containers
-l # displays the most recently created container
-n=? # Displays the last n created containers
-q # silent mode, only the container number is displayed.

#test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS                   PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 4 seconds                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown

3、Exit the container

xxxxxxxxxx
exit # The container stops exiting
ctrl+P+Q # container does not stop exiting

4、Multiple terminals enter a running container

xxxxxxxxxx
# Command 1
docker exec -it docker_id bashShell

# test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS                   PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 4 seconds                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker exec -it c5 /bin/bash   # The ID of the container can be abbreviated, as long as it uniquely identifies the container
root@c54bf9efae47:/# 

# Command 2
docker attach docker_id

# test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS                   PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 35 seconds                      funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker attach c5    # The ID of the container can be abbreviated, as long as it uniquely identifies the container
root@c54bf9efae47:/#

# Difference
# exec is to open a new terminal in the container and a new process can be started
# attach goes directly to the terminal of the container startup command and does not start a new process

5、Start and stop the container

xxxxxxxxxx
docker start (container ID or container name) # Start the container
docker restart (container id or container name) # Restart the container
docker stop (container id or container name) # Stop the container
docker kill (container ID or container name) # Forces the container to stop

6、Delete the container

xxxxxxxxxx
Docker rm docker_id # Deletes the specified container
docker rm -f $(docker ps -a -q) # Delete all containers
docker ps -a -q|xargs docker rm # Delete all containers

2.5、common other commands

  1. View the process information running in the container and support ps command parameters.

xxxxxxxxxx
# command
docker top docker_id

# Test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS                   PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 2 minutes                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker top c5
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9667                9647                0                   14:20               pts/0               00:00:00            /bin/bash

 

2、View the metadata of the container/image

xxxxxxxxxx
# Command
docker inspect docker_id

# Test viewing container metadata
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS                   PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 4 minutes                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker inspect c54bf9efae47
[
    {
        # The complete id, the container ID above here, is the first few digits of this ID that were intercepted
        "Id": "c54bf9efae471071391202a8718b346d9af76cb1ff17741e206280603d6f0056",
        "Created": "2023-04-24T04:19:46.232822024Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 9667,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-04-24T06:20:58.508213216Z",
            "FinishedAt": "2023-04-24T06:19:45.096483592Z"
        },


# Test viewing image metadata
jetson@ubuntu:~$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
ubuntu                       latest    bab8ce5c00ca   6 weeks ago     69.2MB
hello-world                  latest    46331d942d63   13 months ago   9.14kB
jetson@ubuntu:~$ docker inspect bab8ce5c00ca
[
    {
        "Id": "sha256:bab8ce5c00ca3ef91e0d3eb4c6e6d6ec7cffa9574c447fd8d54a8d96e7c1c80e",
        "RepoTags": [
            "ubuntu:latest"
        ],
        "RepoDigests": [
            "ubuntu@sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2023-03-08T04:32:41.063980445Z",
        "Container": "094fd0c521be8c84d81524e4a5e814e88a2839899c56f654484d32d171c7195b",
        "ContainerConfig": {
            "Hostname": "094fd0c521be",
            .............
            "Labels": {
                "org.opencontainers.image.ref.name": "ubuntu",
                "org.opencontainers.image.version": "22.04"
            }
        },
        "DockerVersion": "20.10.12",
        "Author": "",
        "Config": {
            "Hostname": "",
            .........
            "Labels": {
                "org.opencontainers.image.ref.name": "ubuntu",
                "org.opencontainers.image.version": "22.04"
            }
        },
        "Architecture": "arm64",
        "Variant": "v8",
        "Os": "linux",
        "Size": 69212233,
        "VirtualSize": 69212233,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/merged",
                "UpperDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/diff",
                "WorkDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:874b048c963ab55b06939c39d59303fb975d323822a4ea48a02ac8dc635ea371"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

2.6、Command Summary

image-20230424144541215

Overview and installation
Docker images deeply understand and publish images

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/中文