Welcome to the Robetarme WP5 Deliverable repository! This repository contains all the code necessary to create planners, dynamical systems, and controllers for shotcrete, surface finishing, and metal additive tasks. The codebase supports both torque and velocity control.
The repository comprises multiple packages written in C++. Currently, it is designed to work with ROS Noetic, but plans are underway to transition it to ROS2.
We do work on Ubuntu system using docker and its docker compose plugin, which is the environment we recommend. But if you want, you can have a look at our Dockerfile and the scripts in the root folder to have all the needed dependencies if you would like using an other way to install them.
Assuming working on a Ubuntu Linux distribution, follow these instructions to have a working environment using docker and docker compose plugin V2.
We utilize Docker Compose for managing the Docker container. Follow these steps to set up the environment at the roots of the folder:
# You need to defin a rosuser
export ROS_USER=COMPUTERNAME
# Initialize the submodules
git submodule update --init --recursive
git submodule update --recursive --remote
# Build the Docker containers
docker compose build
# Start the Docker containers in detached mode
docker compose up -d
# Access the Docker container's shell
# This will set up the necessary environment within Docker for running the codebase.
docker exec -it robetarme-deliverables-wp5-ros-1 bash
# Build code and source it
catkin build
source devel/setup.bash
The documentation has to be generated using the script inside doc folder. Please be sure to have the doxygen packet installed. On linux do :
sudo apt install doxygen
The documentation is readable opening the index.html file into your preferred browser.
Once the dependencies are installed, you can start using the codebase. Each package contains its own set of functionalities. Refer to the documentation within each package for detailed usage instructions.
To run a new task, use the launch file with the corresponding task, depending on the one to be done. If no task is specified, an error message will shows up and display the name of the taskType to be used. Here are some examples:
roslaunch wp5_tasks main_task.launch taskType:=shotcrete
roslaunch wp5_tasks main_task.launch taskType:=surface_finishing
Here's a brief overview of the library included in this repository.
Each package contributes to different aspects of the robotic workflow, enabling comprehensive control and operation of robotic tasks. Refer to the documentation within each package for detailed usage instructions.
Contains algorithms for path planning.
Implements dynamical systems for controlling robotic motions.
Provides controllers for shotcrete, surface finishing, and metal additive tasks.
Handles communication with ROS, providing an interface for interacting with the robotic system.
Implements safety mechanisms to ensure the safe operation of the robotic system.
Provides shared control algorithms for collaborative human-robot interaction.
Implements perception algorithms for environment sensing and object detection.
Finit state machine to use all the previous package to perform shotcrete or surface finishing.
As explain on top the best is to use Docker. Then, you just need to check the config file to be sure that everthing is set as you want (choose of the robot for the task, desired speed for dynamical system ...), for more detail please look in the folder config. Then you just need to build and run the docker. When inside the docker you can perform shotcrete with this one line: roslaunch wp5_tasks main_task.launch taskType:=shotcrete
You can perform surface finishing with taskType:=surface_finishing
We welcome contributions to this repository. If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.
If you have any questions or need further assistance, please contact either :
- Tristan Bonato - [email protected]
- Louis Munier - [email protected]
Thank you for using Robetarme WP5 Deliverable! We hope you find it useful in your robotic endeavors.
- Louis Munier - [email protected]
- Tristan Bonato - [email protected]
- Rui Wu - [email protected]
- Soheil Gholami - [email protected]