📚 Module Reference

Browse our complete library of 57 documentation modules. Each module is a reusable piece of documentation that can be combined into procedures and custom guides.

Showing 57 modules

Build the `obj_detect` Package

Build the `obj_detect` package in your ROS 2 workspace so you can run the object detection node.

object-detection build

Compile and flash the Teensy firmware

Build and upload the microcontroller firmware for closed‑loop control.

build firmware teensy

Compile the YOLOv11n Model to a Hailo HEF

Use the Hailo Model Zoo compiler to convert your fine‑tuned ONNX model into a Hailo Executable File (.hef) for deployment on the Raspberry Pi AI Kit.

compilation hailo

Configure network settings on the Raspberry Pi

Define a static IP address and Wi‑Fi credentials using Netplan.

setup network

Configure Raspberry Pi host settings

Set the hostname and ensure hostname preservation on reboot.

setup system

Configure the ROS 2 Discovery Server

Start a Fast DDS discovery server on the host, configure the micro‑ROS agent to connect to it and verify discovery connectivity.

networking fastdds

Connect to the Raspberry Pi

Discover the robot’s IP address and connect via SSH.

setup ssh raspberrypi

Convert Label Studio Annotations to YOLO Format

Convert exported Label Studio JSON annotations into YOLO‑style text files and create train/validation splits.

yolo finetuning data-prep

Create Hailo YOLO Configuration Files

Define the Hailo compiler configuration, post‑processing script and NMS settings required to compile your YOLOv11n model.

hailo configuration

Deploy the Compiled HEF to the Raspberry Pi

Copy the compiled Hailo Executable File (.hef) to your Raspberry Pi and verify it on the Hailo‑8 accelerator.

hailo deployment

Diagnose and calibrate the LiDAR

Perform hardware checks, run the standalone node and control the motor.

diagnostics lidar

Diagnose the camera

Verify USB connectivity, test the generic usb_cam node and inspect hardware.

diagnostics camera

Edit the `data.yaml` File

Update the generated `data.yaml` to reflect the correct class names for your dataset.

yolo finetuning data-prep

Emergency Shutdown

Safely stop the robot in emergency situations by halting software and cutting power if necessary.

emergency operations

Export the Fine‑Tuned Model to ONNX

Convert the best YOLOv11n weights into an ONNX file for Hailo compilation and copy it to another machine if needed.

yolo finetuning export

Fine‑Tune the YOLOv11n Model

Train a YOLOv11n model on your custom dataset using Ultralytics. This step performs the actual fine‑tuning and requires significant compute resour...

yolo finetuning training

Hailo Environment and Compilation Troubleshooting

Resolve common issues when installing the Hailo SDK and compiling models.

hailo troubleshooting

Hardware Assembly Guide

Reference resources for assembling the Common Robotics Platform hardware and locating the interactive bill of materials (BOM).

assembly hardware

Image Data Annotation with Label Studio

Set up the teleoperation image directory, configure environment variables and launch Label Studio to annotate your teleop image data, then copy ann...

annotation label-studio

Launch keyboard teleoperation node

Use your keyboard to manually control the robot via evdev_teleop.

teleop ros keyboard

Launch robot state publisher and Cartographer

Start the robot state publisher, Cartographer SLAM and occupancy grid nodes.

SLAM cartographer

Launch the camera node

Start the RGB camera driver and publish image data.

camera sensors

Launch the LiDAR node

Start the RPLIDAR driver and publish LaserScan data.

lidar sensors

Launch the Object Detection Node

Use the provided launch file to start the object detection node with default parameters. This node runs a YOLOv11n model on your Hailo hardware and...

object-detection detection

Launch the Object Detection Node with Custom Parameters

Override the default parameters when launching the object detection node to use a different model file or adjust inference settings.

object-detection detection custom

Monitor SLAM constraint topics

Inspect constraint list and trajectory topics to diagnose SLAM performance.

SLAM diagnostics

Monitor Teensy debug output

Connect to the Teensy serial port to view debug information.

teensy serial debugging

Prepare Calibration Images for Hailo

Copy a set of unlabeled images to your Hailo development machine for use during quantization calibration.

hailo calibration

Prepare Cartographer launch file

Copy the cartographer_simple.launch.py file into the cartographer_ros package and rebuild.

SLAM setup cartographer

Prepare the Fine‑Tuning Environment

Set up a Python virtual environment, copy necessary scripts and data, and install Ultralytics to fine‑tune the YOLOv11n model.

yolo finetuning ultralytics

Prune the Dataset

Remove images without bounding boxes from the dataset to ensure training only uses labeled data.

yolo finetuning data-prep

Pull the latest common_platform repository updates

Update your local clone of the common_platform repository before building or running any code.

Git setup

Reboot Procedure

Restart the Raspberry Pi to apply configuration changes or reset the system.

operations reboot

Record images to RAM disk

Build the data_recorder package and record still images.

recording camera

Record video from the camera

Use the image_view utility to record a video file from the camera topic.

recording camera

Robot Startup Procedure

Launch the robot’s core systems and verify that topics and nodes are running correctly.

operations startup

Routine Maintenance

Perform regular checks on sensors, motors and software to ensure reliable operation of the robot.

operations maintenance

Run the Object Detection Node Directly

Execute the object detection node directly using `ros2 run` when you want to launch the node without a launch file. You will need to configure par...

object-detection detection direct

RViz Sensor Visualization

Launch RViz 2 to visualize sensor data and configure displays for LiDAR and camera streams.

visualization rviz

Save and convert the SLAM map

Finish the current Cartographer trajectory, write the state to disk and convert to a ROS map.

SLAM mapping saving

Set ROS 2 name and namespace

Configure the robot’s ROS node namespace to avoid topic collisions.

setup ros namespace

Set Up the Hailo Development Environment

Install dependencies and the Hailo toolchain in a clean Python environment on an Ubuntu x86_64 machine.

hailo setup

Shutdown Procedure

Properly shut down the robot by stopping all running ROS processes and powering off the Raspberry Pi.

operations shutdown

Start autonomous navigation and send a goal

Launch the Nav2 stack, verify planner topics, send a goal and inspect planning outputs.

nav2 navigation planning

Start localization using AMCL

Launch the localization stack to estimate the robot’s pose in a known map.

nav2 localization amcl

Start the micro‑ROS agent

Run the micro‑ROS serial agent in a Docker container to bridge the Teensy with ROS 2.

teensy agent microros

Tune Cartographer parameters

Adjust SLAM parameters such as resolution and update rate to improve mapping quality.

SLAM cartographer tuning

Use a Bluetooth Gamepad for Teleoperation

Install the ROS2 joy and teleop packages, create a custom package and launch file to read a Bluetooth gamepad, build the workspace and verify that ...

gamepad teleop

Verify camera topics

Check that the camera node is streaming images and at the expected frame rate.

camera verification

Verify LiDAR topics

Check that the LiDAR node is publishing data on the expected topics.

lidar verification

Verify Object Detection Results

Check that the object detection node is running and publishing detection messages, and ensure that the camera input is available.

object-detection verification

Verify SLAM topics

Check that Cartographer publishes the expected topics and visualize the TF tree.

SLAM cartographer verification

Verify Ultralytics Installation

Run a quick training on a toy dataset to confirm that the Ultralytics YOLO toolkit is installed correctly.

yolo finetuning

View the live camera feed

Use rqt_image_view to display images from the camera topic.

camera visualization

View the robot SLAM visualization

Launch a combined RViz session to inspect the live map and robot state.

SLAM visualization rviz

Virtual Machine Setup

Prepare a development virtual machine with Ubuntu, ROS 2 and VS Code for coding and testing without physical hardware.

vm development

Visualize camera transforms

Use TF tools to inspect the camera’s position relative to the robot base.

tf camera calibration

Subscribe to our newsletter

The latest educational robotics news and articles, sent to your inbox weekly.