Shopping security
The RDK X5 is a powerful Edge AI development board built around the high-performance Sunrise 5 SoC, delivering up to 10 TOPS for AI inference tasks. Designed for developers, educators, and robotics enthusiasts, the RDK X5 offers a compact yet robust platform for real-time computer vision, smart robotics, and edge computing applications.
With 8GB LPDDR4 memory, Wi-Fi 6, and Bluetooth 5.4, it ensures seamless wireless connectivity, while interfaces like MIPI CSI (stereo camera support), CAN-FD, and UART make it ideal for robot control, autonomous navigation, and industrial IoT solutions.
| Specification | Details |
|---|---|
| Processor | Sunrise 5 AI SoC (up to 10 TOPS) |
| Memory | 8GB LPDDR4 |
| Wireless | Wi-Fi 6 + Bluetooth 5.4 |
| Camera Interface | MIPI CSI x2 (stereo vision) |
| Audio | 3.5mm headphone jack |
| Debug | UART serial port |
| Interfaces | CAN-FD, USB 3.0/2.0, GPIO headers |
| Storage | microSD card slot, USB drives |
| Power Supply | USB-C / header pins / optional PoE |
| Board Version | v1.0 (8GB model) |
Compatible with popular frameworks such as TensorFlow Lite, ONNX, and custom AI models.
Compared to RDK X3, RDK X5 offers stronger performance from CPU to BPU, boosting computing power and speeding up AI algorithm execution.
Automatically acquire the latest RDK OS — a single data cable is all you need for a quick and easy upgrade.
Over 200 open-source algorithms and solutions to accelerate application development.
Covers everything needed for robotics development—from sensors and algorithms to application samples.
The Visual Line Tracking Demo implements the movement of a racing car within the track based purely on visual methods, with guiding lines assisting the car to stay centered.
To achieve this functionality, three main modules are needed: visual input, environment perception, and motion control.
These modules can be refined and implemented using NodeHub — Horizon’s “Intelligent Robot Application Center” that offers open-source Nodes for rapid robot development. By connecting different Nodes, you can complete the implementation of these three modules.
Under the “Peripheral Adaptation” category in NodeHub, select the “MIPI Camera Driver” Node to implement the visual input module. This Node supports the GC4663 wide-angle camera, providing a larger field of view suitable for racing car line tracking.
Features:
/hbmem_image, /image_raw, /camera_info.ros2 launch files.For optimal performance, use the configuration file mipi_cam_640x480_nv12_hbmem.launch.py, which publishes 640x480 NV12 images through shared memory.
Deployment Steps:
sudo apt update sudo apt install -y tros-mipi-cam
Run Command:
source /opt/tros/setup.bash ros2 launch mipi_cam mipi_cam_640x480_nv12_hbmem.launch.py
The Track Detection Node (in “Competition Zone”) detects the guiding lines’ position relative to the car using deep learning and publishes the midpoint of the track.
Features:
/hbmem_image (hbm_img_msgs/msg/HbmMsg1080P), consistent with the visual input module’s output./racing_track_center_detection (geometry_msgs/msg/PointStamped)./opt/nodehub_model/race_detection/race_track_detection.bin (replaceable).Deployment Steps:
sudo apt update sudo apt install -y tros-racing-track-detection-resnet
Run Command:
source /opt/tros/setup.bash ros2 launch racing_track_detection_resnet racing_track_detection_resnet.launch.py
For training methods, refer to “Track Detection Model Training and Deployment Complete Explanation.”
The Car Line Following Control Node (under “Competition Zone”) receives messages from the Track Detection Node to control the car’s line-following behavior.
Features:
/racing_track_center_detection (geometry_msgs/msg/PointStamped)./cmd_vel (geometry_msgs/msg/Twist).Deployment Steps:
sudo apt update sudo apt install -y tros-racing-control
Run Command:
source /opt/tros/local_setup.bash ros2 launch racing_control racing_control.launch.py \ avoid_angular_ratio:=0.2 avoid_linear_speed:=0.1 \ follow_angular_ratio:=-1.0 follow_linear_speed:=0.1
Under “Peripheral Adaptation,” select the Originbot Chassis Driver Node to receive control messages and manage motor movement.
Features:
/cmd_vel (geometry_msgs/msg/Twist), consistent with the Motion Control Node.Deployment Steps:
sudo apt update sudo apt install -y tros-originbot-base tros-serial tros-originbot-msgs
Run Command:
source /opt/tros/setup.bash ros2 launch originbot_base robot.launch.py
At this point, the visual line tracking demo setup is complete. The system integrates visual input, environment perception, and motion control modules to achieve full autonomous track following.
Source: D-Robotics NodeHub · Horizon Robotics · Published 2025-11-12 · License: Apache 2.0
VIO integrates camera and IMU data to achieve robot localization. It is low-cost, widely applicable, and can compensate for failures in satellite positioning (e.g., occlusion or multipath interference), enabling high-precision outdoor navigation.
Code Repository: GitHub Link
VIO subscribes to image and IMU data from the Realsense camera, calculates the camera trajectory, and publishes motion paths via ROS2 topics. Visualization can be done with rviz2 on a PC.
| Robot Name | Manufacturer | Reference Link |
|---|---|---|
| RDK X3 | See reference link | Click to jump |
| Realsense | Intel RealSense D435i |
The VIO algorithm subscribes to image and IMU data, computes camera trajectory, and publishes it via ROS2 topics. Use rviz2 on a PC for visualization.
Connect Realsense to RDK as per the diagram (realsense-x3).
# For tros foxy
sudo apt update
sudo apt install -y tros-hobot-vio
# For tros humble
sudo apt update
sudo apt install -y tros-humble-hobot-vio
Use the launch file to start Realsense and VIO:
# tros foxy
source /opt/ros/foxy/setup.bash
source /opt/tros/local_setup.bash
ros2 launch hobot_vio hobot_vio.launch.py
# tros humble
source /opt/tros/humble/local_setup.bash
ros2 launch hobot_vio hobot_vio.launch.py
During initialization, keep the camera stationary, then translate it forward to complete initialization. Afterward, camera movement initiates visual-inertial localization.
Use rviz2 with ROS2 installed on a PC on the same network. Configure subscription topics as per “Interface Explanation.”
| Parameter Name | Type | Description | Mandatory | Default Value |
|---|---|---|---|---|
| path_config | std::string | Path to VIO config file | Yes | /opt/tros/${tros_distro}/lib/hobot_vio/config/realsenseD435i.yaml |
| image_topic | std::string | ROS2 image topic | Yes | /camera/infra1/image_rect_raw |
| imu_topic | std::string | ROS2 IMU topic | Yes | /camera/imu |
| sample_gap | std::string | Processing frequency (1=every frame) | Yes | 2 |
| Topic Name | Type | Description |
|---|---|---|
| horizon_vio/horizon_vio_path | nav_msgs::msg::Path | Robot's motion trajectory output |
ros2 commands gives "-bash: ros2: command not found", configure the terminal environment:
# tros foxy
source /opt/tros/local_setup.bash
# tros humble
source /opt/tros/humble/local_setup.bash
# ROS2 Foxy example
sudo apt-get install ros-foxy-librealsense2* ros-foxy-realsense2-camera ros-foxy-realsense2-description -y
# ROS2 Humble example
sudo apt-get install ros-humble-librealsense2* ros-humble-realsense2-camera ros-humble-realsense2-description -y
trans_quat_camera_xx.txt with columns: timestamp, x, y, z, quaternion w, x, y, z.Source: D-Robotics Hobot VIO GitHub
This demo shows a single RGB human body detection algorithm using the hobot_dnn package on the RDK X3. It detects human body, head, face, hands, and keypoints using a Faster R-CNN model on the BPU processor.
The demo subscribes to image messages and publishes perception results through hobot_msgs/ai_msgs/msg/PerceptionTargets. Users can subscribe to these AI messages for their applications.
| Material Name | Manufacturer | Reference Link |
|---|---|---|
| RDK X3 / RDK Ultra | Multiple Manufacturers | RDK X3 / RDK Ultra |
| Camera | Multiple Manufacturers | MIPI Camera / USB Camera |
# tros foxy
sudo apt update
sudo apt install -y tros-mono2d-body-detection
# tros humble
sudo apt update
sudo apt install -y tros-humble-mono2d-body-detection
# tros foxy
source /opt/tros/setup.bash
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
export CAM_TYPE=mipi
ros2 launch mono2d_body_detection mono2d_body_detection.launch.py
# tros humble
source /opt/tros/humble/setup.bash
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
export CAM_TYPE=mipi
ros2 launch mono2d_body_detection mono2d_body_detection.launch.py
Using USB Camera:
# tros foxy
source /opt/tros/setup.bash
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
export CAM_TYPE=usb
ros2 launch mono2d_body_detection mono2d_body_detection.launch.py
# tros humble
source /opt/tros/humble/setup.bash
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
export CAM_TYPE=usb
ros2 launch mono2d_body_detection mono2d_body_detection.launch.py
Using Local Replay Images (Humble Only):
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
export CAM_TYPE=fb
ros2 launch mono2d_body_detection mono2d_body_detection.launch.py publish_image_source:=config/person_body.jpg publish_image_format:=jpg publish_output_image_w:=960 publish_output_image_h:=544
Open a browser on a computer in the same network, visit http://IP:8000 to view real-time detection (replace IP with the RDK’s IP address).
| Name | Message Type | Description |
|---|---|---|
| /hobot_mono2d_body_detection | hobot_msgs/ai_msgs/msg/PerceptionTargets | Human body recognition results |
| /hbmem_img | hobot_msgs/hbm_img_msgs/msg/HbmMsg1080P | Subscribe to shared memory image data (is_shared_mem_sub == 1) |
| /image_raw | hsensor_msgs/msg/Image | Subscribe to image data via standard ROS (is_shared_mem_sub == 0) |
| Parameter Name | Type | Description | Required | Default Value |
|---|---|---|---|---|
| is_sync_mode | int | Synchronous/asynchronous inference mode (0=async,1=sync) | No | 0 |
| model_file_name | std::string | Path to inference model | No | config/multitask_body_head_face_hand_kps_960x544.hbm |
| is_shared_mem_sub | int | Subscribe via shared memory? 0=no,1=yes | No | 1 |
| ai_msg_pub_topic_name | std::string | Topic for publishing perception results | No | /hobot_mono2d_body_detection |
| ros_img_topic_name | std::string | ROS image topic name | No | /image_raw |
| image_gap | int | Frame skip interval (1=every frame) | No | 1 |
Ships within 48 hours · Estimated delivery Jul 23 - Jul 28
US$40
Get nowSign up to your membership to get coupons up to
15%
Get nowOpportunity to enjoy order discount up to 15% off
Top-Converting Item to Boost Your Average Order