The project consists of the implementation of a system to recognise the position of blocks placed on a table, and move them using an anthropomorphic arm manipulator.
Here a video of our robot working:
Robotics_Project.mp4
If you are interested in how we developed the project, have a look at the report.
This package requires to be inside the same ROS workspace as the project of Locosim. Once Locosim is installed and this repo has been cloned, you may have to change the 5th line in the Makefile so that the path to the workspace matches. By default, we set
WORKSPACE_PATH=~/ros_ws
Disclaimer: The Locosim repository has been updated since we installed it. We developed the project based on this version (commit 1bb4e0702ee3a260c74d750cfad8f09de96a6087).
We have three ROS nodes:
client
: This node interacts with the UR5 and the other modulesmovement_handler
: This node provides a service that computes the movements that the UR5 should dovision
: This node provides a service that detects the blocks' pose on the table and returns their informations to the client module
Before starting to build the project, you need to include the Eigen submodule in the git repo
git submodule update --init --recursive
To build the project simply run the Makefile (do not worry about sourcing the project since we already integrated this step inside the Makefile).
make
Run this command to install all the dependencies needed by the vision module
python3 -m pip install -r requirements.txt
The following steps are sequential and need to be executed in different terminals.
In order to run the simulation of the robot, execute
make run-robot
Running the robot closes every instance of rosmaster and opens a new one, so it is not necessary to run the roscore in a seperate terminal.
Execute
make run-movement
This starts a module on the current console, given that the following command has to be executed in a different one.
When the robot has completed his homing procedure and the blocks are spawned on the table, execute
make run-vision
This starts the vision module on the current console.
Execute
make run-client
If every module is started correctly, the robot will begin to move when the vision module has computed the blocks' positions and the movement module has returned the path that the robot has to follow.
To generate Doxygen documentation, you need to have Doxygen installed on your computer. If you haven’t installed it yet, you can do so with:
sudo apt install -y doxygen
Then run this command to generate the documentation of the project
make documentation
You will have to launch the html file in /docs/html/index.html
to explore the documentation of the project.