Skip to content

Tesis-ORION/orion_common

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

124 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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:

  • ๐Ÿ’ฌ orion_chat ๐Ÿค– Natural Language Processing interface for interacting with the robot and send commands (for example, specify arm movement or command a velocity to the robot).

  • ๐Ÿงฟ orion_gz ๐Ÿ™๏ธ Simulation of the robot in GZ Harmonic that integrates native plugins, bridges between ROS 2 and GZ with ros_gz_bridge, and the integration of ros2_control with gz_ros2_control.

  • ๐Ÿ“„ orion_tools ๐Ÿ”ง A collection of packages for using SLAM, Nav2 and teleoperation with the robot.

  • ๐ŸŒ orion_web_interface ๐Ÿ–ฅ๏ธ Tool that allows the control and visualization of the robot by using a Node.js and Astro Web interface.

  • ๐ŸŽฅ depth_orbbec_astra ๐Ÿ”ต Packages to use the ORBBEC Astra RGBD Cameras on ROS 2 Jazzy. In this project is used the ASTRA S model.

  • ๐ŸŽฅ depth_ydlidar_os30a ๐Ÿ”ด Package to use the YDLIDAR OS30A on ROS 2 Jazzy.

  • ๐ŸŽฅ depth_maixsense_a010 ๐ŸŸข Packages for the Maixsense A010 Depth Camera to work on ROS 2 Jazzy.

  • ๐Ÿ˜Š emotion_detector ๐Ÿง  Emotion recognition pipeline based on computer vision and facial analysis.


๐Ÿ“ฅ 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

 
 
 

Contributors

Languages