Andino
Open-source diff drive robot ROS 2 compatible
Install / Use
/learn @Ekumen-OS/AndinoREADME
Andino is a fully open-source diff drive robot designed for educational purposes and low-cost applications. It is fully integrated with ROS 2 and it is a great base platform to improve skills over the robotics field. With its open-source design, anyone can modify and customize the robot to suit their specific needs.
<p align="center"> <img src="docs/real_robot.png" width=500 /> </p>Note: For videos go to Media section.
:books: Package Summary
- :rocket:
andino_bringup: Contains mainly launch files in order to launch all related driver and nodes to be used in the real robot. - :robot:
andino_hardware: Contains information about the Andino assembly and hardware parts. - :ledger:
andino_description: Contains the URDF description of the robot. - :hammer_and_pick:
andino_firmware: Contains the code be run in the microcontroller for interfacing low level hardware with the SBC. - :gear:
andino_base: ROS Control hardware interface is implemented. - :control_knobs:
andino_control: It launches thecontroller_manageralong with the ros2 controllers: diff_drive_controller and the joint_state_broadcaster. - :world_map:
andino_slam: Provides support for SLAM with yourandinorobot. - :compass:
andino_navigation: Navigation stack based onnav2.
:paperclips: Related projects
Projects built upon Andino! :rocket:
- :rocket:
andino_ansible_config: (Thanks @garyservin !): Ansible configuration to easily setup an Andino robot. - :computer:
andino_gz: Gazebo(non-classic)-based simulation of theandinorobot. - :lady_beetle:
andino_webots: Webots-based simulation of the Andino robot fully integrated with ROS 2. - :joystick:
andino_o3de: O3DE-based simulation of the Andino robot. - :green_circle:
andino_isaac: Isaac Sim-based simulation of the Andino robot. - :m:
andino_mujoco: MuJoCo-based simulation of the Andino robot. - :robot:
andino_rmf: OpenRMF integration of Andino simulation. - :test_tube:
andino_integration_tests: Extension to the Andino robot showing how to build integration tests. - :framed_picture:
andino_lichtblick: Lichtblick integration with Andino for web-based visualization. - :crab:
andino-rs: Rustacean version of andino robot. It also provides integration with dora framework for both real and simulated andino. - :nerd_face:
robotics_essentials_ros2: ROS 2 Essentials material for robotic course at University of Eastern Finland.
:busts_in_silhouette: Community
<img src="docs/discord-mark-blue.png" width=30 hspace="20"/> Join our Discord and contribute to the community!
:pick: Robot Assembly
Visit andino_hardware for assembly instructions.
:mechanical_arm: Installation
Remember to first go over the assembly instructions at andino_hardware!
Platforms
- ROS 2:
- Humble Hawksbill
- Jazzy Jalisco
- OS:
- Ubuntu 22.04 Jammy Jellyfish (Humble)
- Ubuntu 24.04 Noble Numbat (Jazzy)
- Ubuntu Mate 22.04 / Ubuntu Server 24.04 (On real robot e.g: Raspberry Pi 4B)
Via ansible
See andino_ansible_config: This repository contains Ansible configurations for managing and automating the setup and configuration of an Andino robot.
Build from Source
Dependencies
colcon workspace
Packages here provided are colcon packages. As such a colcon workspace is expected:
- Create colcon workspace
mkdir -p ~/ws/src
- Clone this repository in the
srcfolder
cd ~/ws/src
git clone https://github.com/Ekumen-OS/andino.git
- Install dependencies via
rosdep
cd ~/ws
rosdep install --from-paths src --ignore-src -i -y
- Build the packages
colcon build
- Finally, source the built packages
If using
bash:
source install/setup.bash
Note: Whether your are installing the packages in your dev machine or in your robot the procedure is the same. Remember to go over the assembly instructions first.
Install the binaries
The packages have been also released via ROS package manager system for the Humble and Jazzy distros. You can check them here (Humble) and here (Jazzy).
These packages can be installed using apt (e.g: sudo apt install ros-humble-andino-description or sudo apt install ros-jazzy-andino-description) or using rosdep.
:rocket: Usage
Robot bringup
andino_bringup contains launch files that concentrates the process that brings up the robot.
After installing and sourcing the andino's packages simply run.
ros2 launch andino_bringup andino_robot.launch.py
This launch files initializes the differential drive controller and brings ups the system to interface with ROS.
By default sensors like the camera and the lidar are initialized. This can be disabled via arguments and manage each initialization separately. See ros2 launch andino_bringup andino_robot.launch.py -s for checking out the arguments.
- include_rplidar:
trueas default. - include_camera:
trueas default.
After the robot is launched, use ROS 2 CLI for inspecting environment.
For example, by doing ros2 topic list the available topics can be displayed:
/camera_info
/cmd_vel
/image_raw
/odom
/robot_description
/scan
/tf
/tf_static
Note: Showing just some of them
Teleoperation
Launch files for using the keyboard or a joystick for teleoperating the robot are provided.
Keyboard
ros2 launch andino_bringup teleop_keyboard.launch.py
This is similarly to just executing ros2 run teleop_twist_keyboard teleop_twist_keyboard.
Joystick
Using a joystick for teleoperating is notably better. You need the joystick configured as explained here.
ros2 launch andino_bringup teleop_joystick.launch.py
RViz
Use:
ros2 launch andino_bringup rviz.launch.py
For starting rviz2 visualization with a provided configuration.
:compass: Navigation
The andino_navigation package provides a navigation stack based on the great Nav2 package.
https://github.com/Ekumen-OS/andino/assets/53065142/29951e74-e604-4a6e-80fc-421c0c6d8fee
Follow the andino_navigation's README instructions for bringing up the Navigation stack in the real robot or in the simulation.
:computer: Simulation
<img src="https://github.com/Ekumen-OS/andino_gz/blob/humble/docs/media/andino_gz.png" width=600/>Within the Andino ecosystem simulations on several platforms are provided:
andino_gz- Recommendedandino_webotsandino_o3deandino_isaacandino_mujoco
:selfie: Media
RVIZ Visualization
https://github.com/Ekumen-OS/andino/assets/53065142/c9878894-1785-4b81-b1ce-80e07a27effd
Slam
Using the robot for mapping.
https://github.com/Ekumen-OS/andino/assets/53065142/283f4afd-0f9a-4d37-b71f-c9d7b2f3e453
https://github.com/Ekumen-OS/andino/assets/53065142/d73f6053-b422-4334-8f62-029a38799e66
See andino_slam for more information.
:robot: Share your Andino!
Have you built your Andino already? Please go to Show & Tell Discussion and share with us your own version of it.
:star2: Inspirational sources
This section is dedicated to recognizing and expressing gratitude to the open-source repositories that have served as a source of inspiration for this project. We highly recommend exploring
Related Skills
node-connect
331.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
331.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.5kCommit, push, and open a PR
