yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
ROS Robot Expansion Board📖
1.Expansion board STM32 driver
  • 0. Precautions
  • 1.1 Expansion Board Introduction_V3.0
  • 1.1 Expansion Board Introduction_V1.0
  • 1.2 STM32 Development environment
  • 1.3 Button to control the buzzer to whistle
  • 1.4 FreeRTOS application
  • 1.5 Serial communication
  • 1.6 SBUS model aircraft remote control
  • 1.7 CAN bus communication
  • 1.8 RGB colorful light bar
  • 1.9 Timer interrupt to control PWM servo
  • 1.10 Control serial port servos
  • 1.11 Nine-axis attitude sensor to obtain data
  • 1.12 Control the forward and reverse rotation of the motor
  • 1.13 The timer captures the encoder data
  • 1.14.1 Robot kinematics analysis theory
  • 1.14.2 Mecanum wheel kinematics analysis
  • 1.15 PID control robot movement
  • 1.16 OLED character display
2.Python basic control
  • 2.0 Bind PCB port devices
  • 2.1 Update the firmware of the expansion board
  • 2.2 Turn off the self-starting large program at startup
  • 2.3 Install the Rosmaster driver library
  • 2.4 Buzzer whistle
  • 2.5 Control PWM servo
  • 2.6 RGB colorful light bar special effects display
  • 2.7 Control the forward and reverse rotation of the motor
  • 2.8 Control the movement of the robot
  • 2.9 Control Serial Servo
3.ROS1 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
4.ROS1 robot control
  • 0. Bind PCB port devices
  • 1. Package Use the tutorial
  • 2. Package Description
  • 3. Robot keyboard control
  • 4. Robot state estimation
  • 5. Robot imu calibration
  • 6. Robot URDF Model
5.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
6.ROS2 robot control
  • 0. Bind PCB port devices
  • 1. Package Use the tutorial
  • 2. Robot information release
  • 3. Robot keyboard control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. URDF model
7.RDK X3 course
  • 1. Update the firmware of the expansion board
  • 2. Turn off the self-starting large program at startup
  • 3. Install the Rosmaster driver library
  • 4. Buzzer whistle
  • 5. Control PWM servo
  • 6. RGB colorful light bar special effects
  • 7. Control motor forward reverse
  • 8. Control robot movement
  • 9. Control Serial Servo
Download
  • Rules_File
  • Hardware Info
  • Code
  • 3D Model File
  • RDK Code
  • ROS2_Basic_VM
Download ZIP

Welcome to ROS Robot Expansion Board repository

2.8 Control the movement of the robot

8. Control the movement of the robot

8. Control the movement of the robot 8.1. Experimental objectives 8.2. Experiment preparation 8.3. Experimental effect 8.4. Program source code

8.1. Experimental objectives

Control the forward and backward on the Rosmaster, left and right, and set the relevant parameters of the car.

8.2. Experiment preparation

The motor interface has an anti-reverse connection function, which can be connected to the motor using Rosmaster's motor cable.

The interface line sequence corresponding to the motor is shown in the following figure:

image-20210903114433917

Rosmaster_Lib library functions required to control the Rosmaster motor:

set_car_motion ( v_x ,  v_y ,  v_z ) 

Parameter explanation: trolley motion control, this function will read the pulse data of the encoder to calculate the speed of the trolley motion. There may be differences according to different trolleys. Here is an example of a Mecanum wheel trolley: v_x represents the longitudinal speed of the trolley, in m/s, positive forward, negative backward; v_y control represents the lateral speed of the trolley, in m/s , positive numbers are left, negative numbers are right; v_z represents the rotation speed of the car, the unit is rad/s, positive numbers are left rotation, negative numbers are right rotation.

v_x=[-1.0, 1.0], v_y=[-1.0, 1.0], v_z=[-5.0, 5.0]

Return value: None.

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

Parameter explanation: PID parameter control will affect the change of the movement speed of the car controlled by the set_car_motion function. By default it can be left unadjusted.

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

forever=True save forever, =False temporary effect.

Permanent storage is to write the data into the Flash of the MCU chip, the data will not be lost after restarting, and the writing time is long, so the delay time is added to avoid the problem of packet loss caused by the MCU. Temporary action has fast response and is effective once, and the data is no longer maintained after restarting the single chip.

Return value: None.

xxxxxxxxxx
set_auto_report_state ( enable ,  forever = False ) 

Parameter explanation: The MCU automatically returns the data status bit, which is enabled by default. If it is set to be disabled, it will affect the function of reading data.

enable=True, the underlying expansion board will send data every 40 milliseconds. enable=False, do not send.

forever=True save forever, =False temporary effect.

Return value: None.

xxxxxxxxxx
clear_auto_report_data () 

Parameter explanation: Clear the cached 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 the factory default value. This function can also be achieved by long pressing the K2 key on the expansion board for about 10 seconds.

Return value: None.

The following functions all return data, which can only be read when create_receive_threading() is started normally:

xxxxxxxxxx
get_accelerometer_data () 

Parameter Explanation: Get the three-axis data of the accelerometer

Return statement: a_x, a_y, a_z

xxxxxxxxxx
get_gyroscope_data () 

Parameter explanation: Get the three-axis data of the gyroscope

Return value: g_x, g_y, g_z

xxxxxxxxxx
get_motion_data () 

Parameter explanation: Get the speed of the car, return val_vx, val_vy, val_vz

Return value: val_vx, val_vy, val_vz

xxxxxxxxxx
get_motion_pid () 

Parameter explanation: Get the motion PID parameters of the car, and return [-1, -1, -1] if the error is read.

Return value: kp, ki, kd

8.3. Experimental effect

Check out the course accompanying video.

Note: If you modify a part of the configuration in this course and set it to be permanently saved, it will cause an abnormal situation later (for example, set the automatic return data status enable=False, and permanently save it as True, so that the data cannot be read normally). Please call the reset_flash_value() function, or press and hold the KEY1 key on the expansion board for about 10 seconds to restore the factory configuration.

8.4. Program source code

Power on the Rosmaster robot, and open the browser of the Jetson Nano or remote computer to enter the Jupyter lab editor.

Reference code path: Rosmaster/Samples/8.car_motion.ipynb

Control the forward and reverse rotation of the motor
Control Serial Servo

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