yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Transbot SE📖
01.Introduction to Transbot SE
  • 01. Introduction to Transbot SE
  • 02. Precautions for use and battery safety
  • 03. First Trial
02.First Trial
  • 2.1.APP control
  • 2.2.USB wireless handle control(Optional)
  • 2.3.Handle video control Transbot(Optional)
  • 2.4.Network configuration tutorial in hotspot mode
03.Hardware control course
  • 3.1About expansion board and update firmware
  • 3.2.Close self-starting process
  • 3.3.Install Transbot library
  • 3.4.Control buzzer and button
  • 3.5.Control PWM servo
  • 3.6.Control bus servo
  • 3.7.Control motor
  • 3.8.Control robot movement
04.Linux operating system
  • 1. Virtual machine installation and use
  • 2. Linux basics
  • 3. Remote control
  • 4. Multi-machine communication configuration
  • 5. Static IP and hotspot mode
  • 6. Web page real-time monitoring
  • 7. Expansion tutorial
  • 8. Write system images
05.Docker couse(For 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.Start the transbot se container
06.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
07.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. MediaPipe development
08.ROS robot course
  • 1.PID algorithm
  • 2.Basic communication
  • 3.Keyboard control
  • 4.Handle control(Optional)
  • 5.Robot state estimation
  • 6.Data calibration
09.ROS simple camera course
  • 1.HD camera calibration
  • 2.HD camera color tracking
  • 3.HD camera color tracking (robotic arm)
  • 4.HD camera object tracking
  • 5. KCF target tracking
  • 6.HD camera face tracking
  • 7.HD camera robotic arm carrying
  • 8.HD camera Autopilot
10.ROS robotic arm control tutorial
  • 1.MoveIt configuration
  • 2.MoveIt control the real machine
  • 3.MoveIt moves randomly
  • 4.MoveIt kinematics design
  • 5.MoveIt cartesian path
  • 6.MoveIt avoiding
  • 7.MoveIt scene design
  • 8.MoveIt trajectory planning
  • 9.Mediapipe palm control car
  • 10.Mediapipe gesture control robotic arm
  • 11.Mediapipe gesture control car
  • 12.Mediapipe arm attitude control robotic arm
11.ROS multi-robot control(Optional)
  • 1. Multi-robot control(Optional)
  • 2. Multi-robot queue performance(Optional)
  • 3. Multi-robot robot arm dancing(Optional)
12.Deep learning courses
  • 1.KNN recognizes handwritten digits
  • 2.Basic use of TensorFlow
  • 3.Basic use of PyTorch(jetson)
  • 4.yolov5 model training(jetson)
  • 5.yolov5+tensorrt acceleration(jetson)
  • 6.yolov4-tiny
13.Installation Video
  • Part18
  • Part1-6
  • Part7-12
  • Part13.1-13.3.3
  • Part13.4.1-17
14.FAQnew
  • 1.Using your own Jetson board,Transbot-SE cannot start normally
Download
  • APP(iOS/Android)
  • System_File-Pi5
  • System_File-Pi4
  • System_File-Jetson
  • VM_File
  • Appendix
  • Code
  • InstructionManual
  • Jetson_Boot_USB.tar.gz
  • Hardware_Info
Download ZIP

Welcome to Transbot SE repository

3.8.Control robot movement

Control robot movement

Control robot movement1. Experimental goals2. Experiment preparation3. Experimental results3.1jetson motherboard/Raspberry Pi 4B3.2 Raspberry Pi 54. Program source code

1. Experimental goals

Control the forward and backward movement of Transbot-SE, turn left and right, and set the relevant parameters of the car.

2. Experiment preparation

The position of the red box in the picture below is the interface of motor MOTOR A on the left and motor B on the right. The motor interface has an anti-reverse connection function and can be connected to the motor using the Transbot SE motor cable.

The interface line sequence corresponding to the left and right motors is as shown in the figure below:

image-20210903114433917image-20210903115207402

Transbot_Lib library function needed to control the motor of Transbot SE:

set_car_motion(velocity, angular)

Parameter explanation: Car motion control, this function will read the pulse data of the encoder to calculate the speed of the car movement. Velocity represents the speed of the car, the unit is m/s, the positive number is forward, the negative number is backward, the angular control represents the rotation speed of the car, the unit is rad/s, the positive number is left rotation, and the negative number is right rotation.

velocity=[-0.45, 0.45]

angular=[-2.00, 2.00]

Return value: None.

xxxxxxxxxx
set_pid_param(kp, ki, kd, forever=False)

Parameter explanation: PID parameter control will affect the change of the car's movement speed controlled by the set_car_motion function. By default, no adjustment is required.

kp ki kd = [0, 10.00], decimals can be entered.

forever=True is permanently saved, =False is temporarily used.

Permanent storage is to write the data into the Flash of the microcontroller chip. The data will not be lost after restarting, and the writing time is long, so a delay time is added to avoid the problem of packet loss caused by the microcontroller. The temporary effect responds quickly and is effective once, and the data is no longer retained after restarting the single chip.

Return value: None.

xxxxxxxxxx
set_speed_limit(line_limit, angular_limit, forever=False)

Parameter explanation: Set the minimum speed limit value (minimum value) of the car movement. It is not set by default.

For example: when the line speed limit value is set to 0.1, the next time the set_car_motion(0.05, 0) function is called, the microcontroller determines that 0.05 is less than 0.1, and automatically sets the input 0.05 to 0.1. If it is set_car_motion(-0.05, 0) , then -0.05 will be set to -0.1. The angular velocity limit value also has the same function.

line_limit=[0, 0.20], angular_limit=[0, 1.00]

forever=True is permanently saved, =False is temporarily used.

Return value: None.

xxxxxxxxxx
set_imu_adjust(enable, forever=False)

Parameter explanation: Set the gyroscope to assist in adjusting the direction of the car's movement. After the setting is turned on, the set_car_motion function takes effect when the angular velocity is set to 0. When the car moves forward, due to the external force causing its direction of movement to deviate from the starting point, the gyroscope will adjust the car's forward direction to the original forward direction by adjusting the left and right speed of the motor. This function is only an auxiliary function and cannot guarantee that the car will move completely in a straight line. The same principle applies to retreating.

Due to the vibration of the car and the drift of the gyroscope itself, after turning on the gyroscope to adjust the direction, it cannot keep moving for a long time, otherwise the gyroscope will interfere with the movement of the car, causing one wheel to be faster and the other to be slower. Please turn this function off when testing for a long time.

enable=True turns on, =False turns off.

forever=True is permanently saved, =False is temporarily used.

Return value: None.

xxxxxxxxxx
set_auto_report_state(enable, forever=False)

Parameter explanation: The microcontroller automatically returns the data status bit. The default is on. If set to off, it will affect the data reading function.

enable=True, the underlying expansion board will send data every 40 milliseconds. If enable=False, it will not be sent.

forever=True is permanently saved, =False is temporarily used.

Return value: None.

xxxxxxxxxx
clear_auto_report_data()

Parameter explanation: Clear the cache data automatically sent by the microcontroller.

Return value: None.

xxxxxxxxxx
reset_flash_value()

Parameter explanation: Reset the data saved in the car's flash and restore to factory default values. This function can also be achieved by pressing and holding the K2 key on the expansion board for about 10 seconds.

Return value: None.

The following functions all return data, and the data needs to be read after create_receive_threading() is started normally:

xxxxxxxxxx
get_accelerometer_data()

Parameter explanation: Obtain three-axis accelerometer data

Return value: a_x, a_y, a_z

xxxxxxxxxx
get_gyroscope_data()

Parameter explanation: Obtain gyroscope three-axis data

Return value: g_x, g_y, g_z

xxxxxxxxxx
get_motion_data()

Parameter explanation: Get the car speed, return linear speed v, angular speed a

Return value: v, a

xxxxxxxxxx
get_motion_pid()

Parameter explanation: Get the motion PID parameters of the car, and read error returns [-1, -1, -1]

Return value: kp, ki, kd

xxxxxxxxxx
get_imu_state()

Parameter explanation: Get the status of gyroscope-assisted car movement. Returning True means turning it on, returning False means turning it off. If the reading fails, it returns -1.

Return value: Gyroscope adjustment status

3. Experimental results

Note: If you modify part of the configuration in this course and set it to be permanently saved, it will cause abnormal situations in the future (for example, set the automatic return data status enable=False and permanently save it to True, resulting in the inability to read the data normally). Please call the reset_flash_value() function, or press and hold the K2 key on the expansion board for about 10 seconds to restore the factory configuration.

3.1jetson motherboard/Raspberry Pi 4B

Please view the course video.

3.2 Raspberry Pi 5

Enter docker

Note: If you have a terminal that automatically starts docker, you can directly enter the temp directory in docker to view it. There is no need to manually start docker

Start docker manually

xxxxxxxxxx
./run_docker.sh

Run jupyter lab program

xxxxxxxxxx
cd
xxxxxxxxxx
jupyter lab --allow-root

 

Taking the current IP address 192.168.2.118 as an example, open the browser of Raspberry Pi 5 or enter in the browser of your computer

xxxxxxxxxx
192.168.2.118:8889

Enter the jupyter lab login interface after pressing Enter, enter the password yahboom, and then click login

Enter the Transbot/Samples directory

Double-click the code you want to run

Restart the kernel and clear all output before running

Click on the first code block, then click the run button to start running one by one

 

4. Program source code

Turn on the power of the Transbot SE robot, and open Jetson Nano or the browser of the remote computer to enter the Jupyter lab editor.

Reference code path: Transbot/Samples/6.car_motion.ipynb

Control motor
Virtual machine installation and use

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