Migrate the Industrial Robotics repo to Ubuntu 18.04 and ROS Melodic

Previous repo has been tested in Ubuntu 16.04 and ROS kinetic. Except for getting familiar with Jderobot Academy, the first task of my Community Boning period is to migrate it to Ubuntu 18.04 and ROS Melodic. There are mainly three kinds of problems need to be solved: warning, error and behavior problem.

Warning and Error

Most warnings and errors are because of the upgradation of ROS Gazebo and MoveIt. The others are the problem of the srdf file combining manipulator and gripper which are usually generated by MoveIt! Setup Assistant.

One sepcial error I want to mention here is “no p gain sepecified for pid”. This error can be removed by providing pid gains to gazebo_ros_controller, but it will cause some errors in the future. If pid gains are not properly tuned, even if MoveIt can plan the path to our desired position, the robot can execute because the action will exceed tolerance. Some ROS users also found this problem and disscussed here. In fact, this is not a true ERROR, and the robot can still work properly without these gains. Gazebo_ros_controller will probably just change to use another non-PID controller.

Behavior Problem

Behavior problems are mainly related to the inconsistent definition and connection of manipulator and gripper:
The gripper will bring the manipulator drop to the ground because the gravity of manipulator joints are turned off, but the gravity of gripper joints are on.
Gripper is assembled to the manipulator with 90 degree rotation error because in the abb irb120 robot description file, the orientation between tool and last link is set to be 90 degree around y axis.
The last joints always rotate more than necessary when we use inverse kinermatic method to make the robot move to a specific position. In fact, MoveIt planning is correct because we only tell it to get to that position, but this behavior is not what we want when taking gripper into consideration. I finally choose to reduce the rotation angle range of joint 6 from ±600° to ±360°. There must be some better solutions for this problem, but this one also make the behavior much better.

These errors come from both two denpendency packages(irb120, robotiq85) we are using and our main repo, so I forked and modified them, then made them as submodules in my IndustrialRobotics repo. I will discuss with my mentor to decide what else need to be modified and try to update them into official repo in next week.

Details of what has been changed can be found in this document. Current Industrial Robotics package can be seen in my IndustrialRobotics repo which contains all necessary parts. The video of it running in Ubuntu 18.04 and ROS Melodic can be seen by clicking below image:

example of new repo

How to use it

Go to the src folder in your ROS workspace, clone my repo, build the workspace and source setup file:

cd ~/catkin_ws/src
git clone https://github.com/sixer51/IndustrialRobotics.git
cd ..
catkin_make #or catkin build
source devel/setup.bash

Play with it with the example usage.