Skip to content

ROS 2 packages for the AKROS mecanum-wheeled robot platform, inspired by Linorobot

License

Notifications You must be signed in to change notification settings

adityakamath/akros2

Repository files navigation

AKROS2

Project Status ROS 2 Repository Blog Ask DeepWiki (Experimental) Python C++ License

ROS 2 stack for the AKROS mecanum-wheeled mobile robot

Overview

AKROS2 is a comprehensive ROS 2 Humble-based system designed for the AKROS mecanum-wheeled mobile robot. It provides a complete software stack including robot description, sensor fusion, teleoperation, and system integration capabilities. The platform supports distributed deployment across multiple devices for remote control and visualization.

Features

  • Mecanum Drive Control - Full holonomic motion control for 4-wheeled mecanum platforms
  • Sensor Fusion - IMU and wheel odometry fusion using Extended Kalman Filter
  • Multi-Controller Support - PS4, Stadia, 8BitDo SN30 Pro, and Steam Deck controllers
  • micro-ROS Integration - Low-level control via serial communication with Teensy microcontroller
  • Modular Architecture - Independent packages for easy customization and extension

Packages

Package Description
akros2_description Robot URDF/Xacro descriptions, meshes, and kinematics
akros2_base Core drivers, sensors, filters, and sensor fusion
akros2_teleop Teleoperation nodes and command mixing
akros2_msgs Custom ROS 2 message definitions
akros2_bringup System-level launch files and integration
akros2_firmware micro-ROS firmware for Teensy microcontroller
setup System configuration, services, and development tools

Quick Start

Installation

  1. Clone the repository:

    cd ~/ros2_ws/src
    git clone https://github.com/adityakamath/akros2
  2. Install dependencies:

    cd ~/ros2_ws
    rosdep install --from-paths src --ignore-src -r -y
  3. Build the workspace:

    colcon build --symlink-install
  4. Source the workspace:

    source ~/ros2_ws/install/setup.bash

Basic Usage

Launch the robot (on robot device):

ros2 launch akros2_bringup bringup_launch.py

Launch with specific configuration:

ros2 launch akros2_bringup bringup_launch.py \
  joy_config:=steamdeck \
  laser:=true \
  camera:=false

Launch base station (on remote control/monitoring device):

ros2 launch akros2_bringup basestation_launch.py \
  joy_config:=steamdeck

System Configuration (EXPERIMENTAL)

Copy the bash configuration from setup:

cat src/akros2/setup/.bashrc >> ~/.bashrc
source ~/.bashrc

This provides convenient aliases:

  • bringup - Launch robot with minimal sensors
  • bringup_local - Launch robot with local control
  • basestation - Launch base station
  • control - Launch low-level control only

Documentation

📚 Complete Design Documentation - Detailed system design (including the micro-ROS firmware), data flow diagrams, and component descriptions

Hardware Requirements

Minimum Configuration

  • Computer: Raspberry Pi 4 (4GB) or equivalent
  • Microcontroller: Teensy 4.1 with expansion board running akros2_firmware
  • Wheels: 4x Mecanum wheels and DC motors with quadrature encoders
  • IMU: 9-DOF inertial measurement unit (accelerometer, gyroscope, magnetometer)
  • Motor Drivers: 2x Cytron MDD3A motor drivers
  • Power: Appropriate power system for motors and electronics

Recommended (but optional) Sensors

  • LIDAR: LDLidar LD06 or compatible
  • Camera: USB camera (v4l2 compatible)

Supported Controllers

  • Sony PS4 DualShock4
  • Google Stadia Controller
  • 8BitDo SN30 Pro
  • Valve Steam Deck

Platform Support

Tested On: Raspberry Pi 4 (4GB/8GB) Operating System: Ubuntu 22.04 LTS ROS 2 Distribution: Humble Hawksbill (recommended)

Architecture

System Architecture

See Design Documentation for detailed component descriptions and details (including firmware) and data flow diagrams.

Network Configuration

AKROS2 supports distributed deployment across multiple devices. Configure your ROS 2 network settings (DDS domain ID, RMW implementation, etc.) according to your deployment requirements.

Contributing

This project has been archived and is no longer actively maintained. If you wish to contribute, check out the Linorobot2 project which AKROS2 was based on, and consider submitting issues and PRs there.

License

Apache License 2.0

Contact

About

ROS 2 packages for the AKROS mecanum-wheeled robot platform, inspired by Linorobot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •