Gazebo_mimic_joint_plugin

Mimic joint plugin is a simple (Model) plugin for Gazebo in order to add to Gazebo the mimic joint functionality that exists in URDF (ROS). Last week, the simulation wasn’t operational because of an error related to this plugin. The error shown in the terminal was:

[Err] [Plugin.hh:180] Failed to load plugin libroboticsgroup_gazebo_mimic_joint_plugin.so: libroboticsgroup_gazebo_mimic_joint_plugin.so: cannot open shared object file: No such file or directory
[Err] [Plugin.hh:180] Failed to load plugin libroboticsgroup_gazebo_mimic_joint_plugin.so: libroboticsgroup_gazebo_mimic_joint_plugin.so: cannot open shared object file: No such file or directory
[Err] [Plugin.hh:180] Failed to load plugin libroboticsgroup_gazebo_mimic_joint_plugin.so: libroboticsgroup_gazebo_mimic_joint_plugin.so: cannot open shared object file: No such file or directory
[Err] [Plugin.hh:180] Failed to load plugin libroboticsgroup_gazebo_mimic_joint_plugin.so: libroboticsgroup_gazebo_mimic_joint_plugin.so: cannot open shared object file: No such file or directory
[Err] [Plugin.hh:180] Failed to load plugin libroboticsgroup_gazebo_mimic_joint_plugin.so: libroboticsgroup_gazebo_mimic_joint_plugin.so: cannot open shared object file: No such file or directory
[Err] [Plugin.hh:180] Failed to load plugin libgazebo_grasp_fix.so: libgazebo_grasp_fix.so: cannot open shared object file: No such file or directory

As clear from the error message, the libroboticsgroup_gazebo_mimic_joint_plugin was missing but when I checked the IndustrialRobots repository, I found out that the plugin was already there. In addition, the simulation ran well on my system. After inspecting the env variables, I decided to explicitly define plugin path. So I updated the ‘GAZEBO_PLUGIN_PATH` and guess what, grippers were working now.

After resolving the issue with the plugins, I took the code from MyAlgorithm.py and modified it according to new HAL APIs. The final video simulation of pick & place of blue sphere is shown below:

Link to the video

Minutes of the meet

  • Fix the images in the blog
  • Create a branch in IndustrialRobots repo for packages specifically needed for web-templates
  • Update the Docker File and get the pick_place branch ready for testing
  • Fix the reset button

Images in the blog

I discovered that my mentors couldn’t see the photos in the blogs. The photographs were not available to others since they were saved in my personal album on Google Photos, which I discovered after checking the URLs. I just changed the photos from personal to shared images to remedy the problem.

Web-template branch in Industrial Robots

Web-template of Pick & Place exercise in Robotics Academy requires model_manager.py and joint_info.yaml to spawn the objects in Gazebo. This was previously done using rqt_kinematics package. And since we are not incluing this package, I decided to create another package inside industrial_robots directory. Yijia suggested me to create another branch named as web-template for addressing this issue. I creted the spawn_objects package and pushed it into web-template branch.

Pull Request: #18

Reset Button

While testing the exercise and making the video, I noticed that the arm starts behaving abnormally once I press the reset button. After checking through the exercise.py, I discovered that reset_world was causing this. Therefore, I decided to use manual functions to get the arm move back to HOME position and respawn the objects. Fortunetly, this worked!!

How to test

git clone -b pick_place https://github.com/predator4hack/RoboticsAcademy.git
cd RoboticsAcademy/scripts
chmod +x build-2.4.sh
./build-2.4.sh <tag> 
docker run --rm -it -p 8000:8000 -p 2303:2303 -p 1905:1905 -p 8765:8765 -p 6080:6080 -p 1108:1108 -p 6081:6081 jderobot/robotics-academy:<tag> /start.sh