This repository contains the ROS 2 (Jazzy) packages for the Gen6s robot platform. It focuses on differential drive simulation (Gazebo) and visual perception, specifically Optical Character Recognition (OCR).
| Package | Description |
|---|---|
test_diff_robot |
Contains the URDF description and Gazebo simulation launch files for the Gen6s differential drive robot. |
gen6s_character_detection |
Performs OCR using Tesseract and custom template matching to read text (e.g., "STOP") from image streams. |
gen6s_color |
A testing utility that publishes static images (like a Stop Sign) to a ROS topic to mock a camera feed. |
gen6s_bnw |
Visualizes the image processing pipeline by converting color inputs to binary/black-and-white. |
gen6s_description |
Basic robot description package. |
- OS: Windows (WSL2) or Ubuntu 24.04 (Noble Numbat)
- ROS 2: Jazzy Jalisco
- Dependencies:
tesseract-ocrlibtesseract-dev
-
Install System Dependencies
sudo apt update sudo apt install tesseract-ocr libtesseract-dev
-
Build the Workspace
# From your workspace root (e.g., ~/ros2_ws) rosdep install --from-paths src -y --ignore-src colcon build --symlink-install source install/setup.bash # or .ps1 for PowerShell
Launch the robot in Gazebo and RViz to see the physical model.
ros2 launch test_diff_robot test_diff_robot.launch.pyNote: If the robot model is missing, check the xacro properties in urdf/robots/test_diff_robot.urdf.xacro.
Since the simulation camera is not yet linked to the OCR node, use the mock publisher to test text recognition.
Terminal 1: Publish the Test Image
ros2 launch gen6s_color gen6s_color_launch.pyPublishes a static image to /imu/data.
Terminal 2: Run OCR Node
ros2 run gen6s_character_detection char_recognition_nodeSubscribes to /imu/data and interprets the text.
To see how the computer "sees" the image (Binary Thresholding):
ros2 launch gen6s_bnw gen6s_bnw_launch.py- Topic Misnomer: The vision nodes currently communicate over the topic
/imu/datainstead of standard camera topics effectively treating it as a raw image stream. - OCR Method: The system uses a hybrid approach of Tesseract (LSTM) for full phrases and Template Matching (OpenCV contours) for individual characters.