Skip to content

Netfluxx/BasicsMobileRobotics2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thymio Robot Navigation System

Autonomous navigation system for Thymio robot using ArUco marker-based localization, Extended Kalman Filter sensor fusion, and A* path planning with obstacle avoidance.

Overview

This project implements a complete autonomous navigation pipeline for the Thymio mobile robot. The robot navigates from a start position to a goal while avoiding obstacles, using visual localization from overhead camera ArUco markers and wheel odometry fused through an Extended Kalman Filter.

Key Features

  • ArUco-based Global Localization: Camera-based pose estimation using ArUco markers
  • Extended Kalman Filter: Sensor fusion combining vision and odometry for robust pose estimation
  • A Path Planning*: Grid-based path planning with obstacle inflation and cost decay
  • Pure Pursuit Path Following: Smooth trajectory tracking with lookahead distance
  • ANN Obstacle Avoidance: Neural network-based reactive obstacle avoidance integrated into path following
  • Finite State Machine: FSM state management (initialization, path following, goal reached)
  • Real-time Visualization: Live view of map, planned path, and actual robot trajectory

System Architecture

Core Components

  • main.py - Entry point for the navigation system
  • robot_fsm.py - Finite state machine orchestrating robot behavior
  • global_navigation.py - ArUco detection, localization, and A* path planning
  • global_localization.py - Pose calculation from ArUco markers using pixel position & trilateration
  • local_ekf.py - Extended Kalman Filter for sensor fusion
  • path_follower.py - Pure pursuit controller with integrated obstacle avoidance
  • thymio_helper.py - High-level Thymio interface
  • thymio.py - Low-level Aseba protocol implementation
  • detect_aruco.py - ArUco marker detection utilities
  • math_thymio.py - Mathematical utilities for pose transformations

Supporting Files

  • camera_calibrator.py - Camera calibration utility
  • test_global_nav.py - Standalone testing for navigation components
  • environment.yml - Conda environment specification

Hardware Requirements

  • Thymio robot
  • Overhead camera (tested with 1920x1080 resolution)
  • Printed ArUco markers (5x5 100 tag dictionary):
    • Tags 1-4: Map corner markers
    • Tag 0: Robot marker (mounted on robot)
    • Tag 11: Start position marker
    • Tag 12: Goal position marker
    • Tag 10: Obstacle markers (multiple instances)

Installation

1. Create Conda Environment

conda env create -f environment.yml
conda activate bomr_env

2. Camera Calibration

Generate calibration images:

python camera_calibrator.py

Usage

python main.py

About

Basics of Mobile Robotics MICRO-452 2025, RO MA1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors