ivanpauno / andino

Open-source diff drive robot ROS 2 compatible

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo White

Logo Black

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.

Note: For videos go to Media section.

πŸ“š Package Summary

πŸ–‡οΈ Related projects

Other projects built upon Andino! πŸš€

⛏️ Robot Assembly

Visit andino_hardware for assembly instructions.

🦾 Installation

Platforms

  • ROS 2: Humble Hawksbill
  • OS:
    • Ubuntu 22.04 Jammy Jellyfish
    • Ubuntu Mate 22.04 (On real robot (e.g: Raspberry Pi 4B))

Build from Source

Dependencies

  1. Install ROS 2
  2. Install colcon

colcon workspace

Packages here provided are colcon packages. As such a colcon workspace is expected:

  1. Create colcon workspace
mkdir -p ~/ws/src
  1. Clone this repository in the src folder
cd ~/ws/src
git clone https://github.com/Ekumen-OS/andino.git
  1. Install dependencies via rosdep
cd ~/ws
rosdep install --from-paths src --ignore-src -i -y
  1. Build the packages
colcon build
  1. 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.

πŸš€ 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: true as default.
  • include_camera: true as default.

After the robot is launched, use ROS 2 CLI for inspecting environment. E.g: By doing ros2 topic list the available topics can be displayed.

Teleoperation

Launch files for using the keyboard or a joystick for teleoperating the robot are provided.

twist_mux is used to at the same time accept command velocities from different topics using certain priority for each one of them (See twist_mux config). Available topics are (ordering by priority):

  • cmd_vel
  • cmd_vel_keyboard
  • cmd_vel_joy

RViz

Use:

ros2 launch andino_bringup rviz.launch.py

For starting rviz2 visualization with a provided configuration.

πŸ’» Simulation

The andino_gz_classic package provides a Gazebo simulation fo the Andino robot.

🧭 Navigation

The andino_navigation package provides a navigation stack based on the great Nav2 package.

andino_sim_nav.mp4

Important!: At the moment this package is only working with the simulation. The support for the real robot is forthcoming.

🀳 Media

RVIZ Visualization

andino_wheel_tf.mp4

Slam

Using the robot for mapping.

andino_slam_office.mp4
slam_cam_house.mp4

See andino_slam for more information.

πŸ€– Share your Andino!

Have you built your Andino already? Please go to Show & Tell Discussion and share with us your own version of it.

🌟 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 these repositories for further inspiration and learning.

πŸ™Œ Contributing

Issues or PRs are always welcome! Please refer to CONTRIBUTING doc.

Code development

Note that a Docker folder is provided for easy setting up the workspace.

About

Open-source diff drive robot ROS 2 compatible


Languages

Language:C++ 45.8%Language:Python 39.8%Language:Shell 6.2%Language:C 3.9%Language:CMake 3.4%Language:Dockerfile 0.9%