1. Installation - GitSRealpe/abb_irb140_ros_sim GitHub Wiki
This page will guide you trough the installation of the various components needed for a correct execution of all the functionalities that the packages of this repository can offer. Some of this are other packages from the ROS community, which have their own installation instructions, as some others are of our own, like the gazebo_pick_plugin
.
Installation index |
---|
It may be obvious but in case you are not familiar, this project works under the ROS framework, software specially designed for robotics implementation and integration, both in academic and industrial environments.
So before you can do anything, you need ROS (Noetic distro), follow the instructions in their official site ROS Noetic installation. (ros-desktop-full
is the recommended installation).
After that, configure a catkin workspace and you are ready to continue.
The next are the required ROS packages for a proper execution of all the packages contained in this project. Just execute the command sudo apt install <name_of_package>
and it will be automatically installed.
ros-noetic-gazebo-ros-control # needed for controller simulation in Gazebo
ros-noetic-joint-state-controller # required for proper robot simulation
ros-noetic-joint-state-publisher-gui # plugin for publishing joint state values
ros-noetic-controller-manager # package that implements virtual controllers for the simulated robot
ros-noetic-joint-trajectory-controller # controller in charge of joint trajectory manipulation
ros-noetic-rqt-joint-trajectory-controller # rqt plugin for publishing joint trajectory messages to the simulation controllers
ros-noetic-moveit # package for motion planning used both in simulated and real robot
ros-noetic-moveit-visual-tools # moveit addon used for drawing the planned trajectories in RViz
Then, run the following commands in your Ubuntu 20.04
terminal, assuming you already have a Catkin workspace.
cd ~/catkin_ws/src/
git clone -b noetic https://github.com/GitSRealpe/abb_irb140_ros_sim.git
cd ..
catkin_make
The main Pick and Place simulation takes place in a Gazebo sim world. It comes with the ros-desktop-full
installation, but in case it doesn't, it can be installed executing sudo apt install gazebo11
in a terminal.
The gripper design uses a parallel mechanism for the gripping action, so for a correct simulation in Gazebo a joint mimic plugin is needed, mostly because it enables an easy emulation of the joint mimic property native to ROS in the URDF description.
Currently this is the plugin used roboticsgroup_upatras_gazebo_plugins, it can be installed cloning the repo plugin in your catkin workspace with the folllowing command lines:
cd ~/catkin_ws/src/
git clone https://github.com/roboticsgroup/roboticsgroup_upatras_gazebo_plugins.git
cd ..
catkin_make
The plugin is already configured to the gripper description used in this project, for more indepth information you can access the plugin repo directly.
Now the last step is downloading and installing the props or objects used in the Gazebo simulation for this specific project. The 3D models come from the YCB Object and Model Set project, where their objective is to have 3D models of real life objects for research in grasping and robotics.
- Download the modified model files from here: modified model-set (modified in the sense of SDF setup for Gazebo integration).
- Its a compressed file (.7z format), Extract the folder
props
it in the following path~/.gazebo
(assuming you have a default Gazebo installation). - Add this new model folder to the gazebo path execution by doing the following:
-
In a terminal run the command
gedit ~/.bashrc
. -
At the very end of this file, copy and paste this:
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/.gazebo/props
-
Save the changes to the file.
With this you should have all that is needed for a correct simulation, to verify this, run Gazebo with the command gazebo
in any terminal, and try to add the models you have installed to the world.
With the help from:
https://github.com/FreddyMartinez/abb_irb140_support as a good starting point, helped to reduce initial setup work.