Skip to content

Collection of packages to use the ORION robot, a low-cost HRI robot for ROS 2 Jazzy. It includes the CAD files, embedded codes, descriptions and controllers.

License

Notifications You must be signed in to change notification settings

Tesis-ORION/orion_common

Repository files navigation

🤖 ORION Commons

🌟 Overview

orion_welcome

This repository contains essential packages for the Open-source Robot for Interaction Objectives and Navigation, also known as ORION Project, a ROS 2-based differential mobile robot designed for Human-Robot Interaction (HRI) applications.

Keywords: ROS 2, Differential Robot, HRI, ROS 2 Jazzy, Low-Cost Robotics.


📝 License

The source code is released under a BSD 3-Clause license.

Team: Daniel Felipe López Escobar, Miguel Ángel Gonzalez Rodriguez, and Alejandro Bermúdez Fajardo.

The ORION Commons packages have been tested under ROS Jazzy distribution.


📚 Table of Contents


📦 Repository Summary

The repository is organized into modular ROS 2 packages:

  • 🌌 orion 🛰️ Meta-package grouping all main components dependencies.
  • 📦 orion_assets 🗂️ CAD files for design, assembly, and construction of the robot.
  • 🎮 orion_control 🧠 Configuration for controllers and hardware interfaces plugins for ROS 2 controllers.
  • 🧩 orion_description 📐 URDF/Xacro description of the robot’s structure.
  • 🏗️ orion_base 📦 Core logic and embedded codes of the ESP32s (mobile base and interaction) of the robot.
  • 🚀 orion_bringup 🟢 Launch and startup configuration for the usage of the real robot.
  • 🐳 orion_docker 📦 Docker support for containerized development and deployment of the robot.
  • 🧰 orion_utils_py 🐍 Utility scripts in Python 3 to common applications like laser filter or simple actions.

To build you robot, review the hardware changes and learn about the versions of the robot, do not forget to check the 📖 ORION Wiki 📔


🧩 Other Functionalities

These components provide extended capabilities for sensors, simulation, perception, and interaction:


📥 Installation

Let's prepare us to use the robot, this installation is required for both your PC and the robot's Raspberry Pi. However, there would be additional steps you will need to follow on the robot, more info on orion_bringup

For now, follow these steps to install and build the project on ROS 2 Jazzy:

  1. Create your workspace:

    mkdir -p ~/ros2_ws/src
    cd ~/ros2_ws
    colcon build
  2. Install the repository of ORION common in the source directory

    cd ~/ros2_ws/src
    git clone https://github.com/Tesis-ORION/orion_common.git
  3. Install the drivers packages for the cameras.

    cd ~/ros2_ws/src
    git clone https://github.com/Tesis-ORION/depth_maixsense_a010.git
    git clone https://github.com/Tesis-ORION/Depth_ydlidar_os30a.git
    git clone https://github.com/Tesis-ORION/depth_orbbec_astra.git
  4. Install the orion_chat package:

    git clone -b teatro https://github.com/Tesis-ORION/orion_chat.git
    git clone https://github.com/Tesis-ORION/audio_messages.git
    cd orion_chat
    ./install_apt.sh
    pip install -r requirements.txt --break-system-packages
  5. Implement the additional installs recommended on the cameras READMEs, for more info check Maixsense A010, YDLidar OS30A and ORBBEC ASTRA S packages.

    # --------- General
    sudo usermod -a -G dialout $USER
    
    # -------- OS30A
    sudo ln -sf /lib/x86_64-linux-gnu/libdc1394.so /usr/lib/libdc1394.so.22
    
    # Edit file
    sudo nano /opt/ros/humble/include/tf2_geometry_msgs/tf2_geometry_msgs/tf2_geometry_msgs.hpp
    # Change the following lines
    # From ".hpp" to ".h" in:
    #include "tf2/convert.h"
    #include "tf2/LinearMath/Quaternion.hpp"
    #include "tf2/LinearMath/Transform.hpp"
    #include "tf2/LinearMath/Vector3.hpp"
    
    # --------- ASTRA S
    sudo apt install libgflags-dev nlohmann-json3-dev  \
    ros-$ROS_DISTRO-image-transport  ros-${ROS_DISTRO}-image-transport-plugins ros-${ROS_DISTRO}-compressed-image-transport \
    ros-$ROS_DISTRO-image-publisher ros-$ROS_DISTRO-camera-info-manager \
    ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs ros-$ROS_DISTRO-statistics-msgs \
    ros-$ROS_DISTRO-backward-ros libdw-dev
  6. Install external packages dependencies for the G-Mov package (pi cam and servo) in the source

    cd ~/ros2_ws/src
    git clone https://github.com/DanielFLopez1620/G-Mov_Project.git
  7. Install all the dependencies:

    sudo apt update
    sudo apt install python3-rosdep -y
    cd ~/ros2_ws
    sudo rosdep init
    rosdep update
    rosdep install --from-paths src --ignore-src -r -y
  8. After the installation is complete, build the package with the provided options to avoid errors with other packages in development:

    cd ~/ros2_ws
    colcon build --symlink-install --packages-select g_mov_description orion orion_description orion_control
    source install/setup.bash
  9. You are ready to explore the usage of the robot on this PC, now proceed with the robot bringup


⚠️ Troubleshooting

Explore the different packages to check solutions to common problems found during the development of the project, considering the next:

  • orion_base: Cases in terms of the embedded codes of the ESP32, µ-ROS, electronic connections and hardware specifications.
  • orion_bringup: In terms of the startup application of the robot and the bringup of the robot.
  • orion_control: For problems related with the plugins for the hardware interfaces of the controllers and general params of the controllers.
  • orion_description: Cases related with the description model, changes of macros and params of actuators/controllers.

If you present another problem, propose it on the Issues of this repository.


About

Collection of packages to use the ORION robot, a low-cost HRI robot for ROS 2 Jazzy. It includes the CAD files, embedded codes, descriptions and controllers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages