Google Summer of Code 2019
Project: Migrating Gazebo Plugins to ROS2
Organization: Open Source Robotics Foundation
Mentor: Louise Poubel
Student: Shivesh Khaitan (firstname.lastname@example.org)
Working for Open Source Robotics Foundation as a Google Summer of Code 2019 Student Developer was a wonderful learning experience. I would like to thank my mentor @chapulina for guiding me throughout the course of the project.
The project aimed to migrate the existing gazebo_ros_pkgs in ROS1 to ROS2 with proper documentation, testing and demos. Gazebo ROS packages include ROS packages which provide a ROS interface to Gazebo simulations, so developers can test their ROS code in a virtual simulation instead of a physical robot.
What has been done?
The migration is complete and most of the work has been merged and even released. The work targeted ROS2 distro Dashing Diademata. All of the plugins (apart from those deprecated) have been migrated.
I. Gazebo Plugins
Gazebo Plugins package provides plugins for common mechanical drives, sensors and other utilities to be used in Gazebo for to ease interfacing with ROS. Following is a list of the contributions to the package:
|gazebo_ros_tricycle_drive||ROS 2 Migration: Tricycle drive||#917||merged|
|gazebo_ros_ft_sensor||ROS 2 Migration: F3D ROS 2 Migration: FT Sensor||#921||merged|
|gazebo_ros_skid_steer_drive||ROS 2 Migration: Skid Steer drive||#927||merged|
|gazebo_ros_depth_camera (Eloquent)||ROS 2 Migration: Camera||#932||merged|
|gazebo_ros_multi_camera (Eloquent)||ROS 2 Migration: Camera||#939||merged|
|Dynamic Reconfigure||ROS 2 Migration: Camera||#940||merged|
|gazebo_ros_bumper||ROS 2 Migration: Bumper||#943||merged|
|gazebo_ros_harness||ROS 2 Migration: Harness||#944||merged|
|gazebo_ros_elevator||ROS 2 Migration: Elevator||#945||merged|
|gazebo_ros_joint_pose_trajectory||ROS 2 Migration: Joint Pose Trajectory||#955||merged|
|gazebo_ros_projector||ROS 2 Migration: Projector||#956||merged|
|gazebo_ros_hand_of_god||ROS 2 Migration: Hand of God||#957||merged|
|gazebo_ros_planar||ROS 2 Migration: Planar Move||#958||merged|
|gazebo_ros_vacuum_gripper||ROS 2 Migration: Vacuum Gripper||#960||merged|
|gazebo_ros_depth_camera (Dashing)||ROS 2 Migration: Camera||#967||merged|
|gazebo_ros_multi_camera (Dashing)||ROS 2 Migration: Camera||#984||merged|
Apart from the migration, some new functionalities were also added to ROS2.
An additional plugin for car-like robots. #945
II. CUDA accelerated Depth Camera
GPU accelerated computationally expensive processes of depth_camera_plugin for better performance. #981
Status: under discussion
II. Gazebo ROS
Gazebo ROS package provides implementation of Gazebo Node, Executor, common conversion utilities, World and System Gazebo plugins. Following is a list of the contributions to the package:
|gazebo_ros_paths_plugin||ROS 2 Migration: Gazebo ROS Paths||#925||merged|
|gazebo_ros_force_system||ROS 2 Migration: Body Wrench and Joint Effort||#941||merged|
|spawn_model||ROS 2 Migration: Spawn and delete||#948||merged|
|Launch Scripts||ROS 2 Migration: Launch Scripts||#962||merged|
|model_states (gazebo_ros_state)||ROS 2 Migration: Entity states||#968||merged|
|link_states (gazebo_ros_state)||ROS 2 Migration: Entity states||#969||merged|
|gazebo_ros_properties||ROS 2 Migration: gazebo_ros_api_plugin||#972||merged|
|physics_properties (gazebo_ros_properties)||ROS 2 Migration: gazebo_ros_api_plugin||#973||under discussion|
Apart from the planned migration of gazebo_ros_pkgs, some work has been done on a new package
ros2_ign which provides integration between
ROS2 and the new
ignition-gazebo. Following is a list of the contributions to it:
Though the planned milestones have been achieved, I would like to continue to contribute to OSRF in the future. As the packages have been recently released, I am waiting for the feedback from the users on the work and would like to address any bugs or reviews on it.
- Links to all PRs
- Issues tracking the progress
Again I would like to thank OSRF and my mentor @chapulina for providing me this wonderful opportunity. Thank you for reading.