Skip to content

Wiki

Hardware platform

About 4 min read

The choice of hardware platform is diverse, for example: wheeled chassis, bipedal or quadruped robots, drones, and so on. At present, technologies related to hardware platforms have developed relatively maturely, and they can be self-made or directly purchased. Assuming the latter is chosen, then after purchase, regarding specific use, the accompanying user manual can be referred to. Generally, the supplier will provide the corresponding driver package, and it can be directly downloaded and compiled for execution to drive the hardware platform. Of course, if it is a complete robot solution integrated with a host computer, then the driver program is generally already preinstalled, and it can be run directly at that time.

Common development boards used for the robot's lower-level controller include STM32, ESP32, GD32, Arduino, 51 MCU, and so on. (If you are unsure, ask the control group and the circuit group.)

Common methods for communicating with the robot's lower-level controller development board include serial communication, MicroROS, and others; refer to the tutorial above.

The data that the lower-level controller can transmit to the upper-level controller include odometry ODOM data, inertial measurement unit IMU data, global navigation satellite system GNSS data, and so on. Of course, these devices can also communicate directly with the industrial control computer, allowing the industrial control computer to process the robot's positioning information and then transmit it together to the lower-level controller.

Next, it is necessary to explain how these data are transmitted.

Most of the source code I wrote myself is for reference only; if you have a better approach, feel free to share:

I use the Jazzy version more often, and the Jazzy version is the final reference for everything. In fact, the biggest difference between Humble and Jazzy is Gazebo. For Gazebo-related code, you can look at the Humble repository.

https://github.com/CyberNaviRobot/CyberRobot_ROS2_Humble_WS

https://github.com/CyberNaviRobot/CyberRobot_ROS2_Jazzy_WS