Skip to content

UbiquityRobotics/gen6_mini_vision_simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 

Repository files navigation

Gen6mini Vision System & Simulation

Overview

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).

Packages

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.

Prerequisites

  • OS: Windows (WSL2) or Ubuntu 24.04 (Noble Numbat)
  • ROS 2: Jazzy Jalisco
  • Dependencies:
    • tesseract-ocr
    • libtesseract-dev

Installation

  1. Install System Dependencies

    sudo apt update
    sudo apt install tesseract-ocr libtesseract-dev
  2. 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

Usage

1. Run the Robot Simulation

Launch the robot in Gazebo and RViz to see the physical model.

ros2 launch test_diff_robot test_diff_robot.launch.py

Note: If the robot model is missing, check the xacro properties in urdf/robots/test_diff_robot.urdf.xacro.

2. Run the Vision/OCR Pipeline (Test Mode)

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.py

Publishes a static image to /imu/data.

Terminal 2: Run OCR Node

ros2 run gen6s_character_detection char_recognition_node

Subscribes to /imu/data and interprets the text.

3. Run the Image Process Visualization

To see how the computer "sees" the image (Binary Thresholding):

ros2 launch gen6s_bnw gen6s_bnw_launch.py

Architecture Notes

  • Topic Misnomer: The vision nodes currently communicate over the topic /imu/data instead 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.

About

Implementing an instance segmentation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors