Google Summer of Code 2021: New GUI Widgets in Ignition Gazebo

Project: New GUI Widgets in Ignition Gazebo
Mentor: Alejandro Hernández Cordero
Student: Atharva Pusalkar
Link to GSoC project: Google Summer of Code
LinkedIn | Github

Hi, community!

This summer I had the opportunity to work at Open Robotics as a Google Summer of Code (GSoC) student developer. I worked on the Ignition Gazebo simulator and the Ignition Rendering library to add new visualization capabilities for use in robotic applications.

I thank my mentor Alejandro Hernández Cordero, and the Open Robotics team for the constant guidance and for providing me with this opportunity.

About the Project

The project involves adding new GUI features to visualize values coming from the physics engine of Ignition Gazebo. These features are particularly helpful while building new simulation worlds or tweaking robot properties. Visualization capabilities for robot inertia, the center of mass, and joints are included as well as rendering entities in transparent and wireframe modes.

Pull requests are created across two Ignition libraries - Gazebo and Rendering. New visual classes are first added to the Rendering library which is then consumed by the downstream Gazebo simulator. These classes can also be used by developers in their own independent projects and work for OGRE 1 and 2 rendering engines.

I hope that these features will further reduce the feature gap between Ignition Gazebo and Gazebo Classic, and help bring more people to the Ignition Robotics project.

Visualize as Wireframe

Visualize an entity as a wireframe to debug 3D models.
wireframe

Visualize as Transparent

Visualize an entity as transparent.
transparent

Visualize Inertia

Get visual feedback on the inertial properties fed to the physics engine. Inertia is visualized as a purple box with unit mass with the same inertial behavior as the corresponding robot link.

Visualize Center of Mass

Visualize the center of mass of a robot using its inertial properties. The CoM sphere represents a uniform ball of lead with the same mass as that of the robot link.
com

Visualize Joints

Visualize revolute, prismatic, universal joints, and more.
joints

Demos

Ignition Gazebo

Here’s an example using the Explorer SubT robot:
Gazebo

Ignition Rendering

A small demo is included with the source code of Ignition Rendering from Fortress.

Pull Requests

I created a total of 9 main pull requests for the project.

Pull Request Repository Merged
Visualize wireframes Rendering :white_check_mark:
Wireframe mode Gazebo :white_check_mark:
Transparent mode Gazebo :white_check_mark:
Inertia visual Rendering :white_check_mark:
Visualize inertia Gazebo :white_check_mark:
Center of mass visual Rendering :white_check_mark:
Visualize center of mass Gazebo :white_check_mark:
Joint visual Rendering :white_check_mark:
Visualize joints Gazebo :white_check_mark:
These features will be included in the next major release of Ignition that is Fortress.

Conclusion and Future Plans

I was able to achieve all the proposed goals during the summer. Currently, I am working on integrating the ability to visualize contacts in the entity-context-menu.

The visualization capabilities added to Fortress will be used for developing new features such as model editor, interactive mode, and more. I plan to continue contributing to the Ignition Robotics project as well as ROS packages. I once again thank my mentor and the entire simulations team at Open Robotics for guiding me and reviewing my work.

I am excited to see my work being used by people in their simulations.

About Me

I am a final year undergraduate engineering student from DJ Sanghvi College of Engineering, University of Mumbai. Currently, I lead the driverless project at DJS Racing, the Formula Student team of my institute, where we are building an autonomous race car prototype. This was the beginning of my journey in robotics. Apart from this, I have also worked at a startup to develop autonomous navigation software for use in warehouse environments.

Lately, I have been exploring the domain of human-robot interaction. The idea of making robotics more accessible to people excites me a lot and was one of the contributing factors towards my motivation to work at Open Robotics this summer.

Regards
Atharva Pusalkar

6 Likes