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.
Visualize as Transparent
Visualize an entity as 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.
Visualize Joints
Visualize revolute, prismatic, universal joints, and more.
Demos
Ignition Gazebo
Here’s an example using the Explorer SubT robot:
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 | |
Wireframe mode | Gazebo | |
Transparent mode | Gazebo | |
Inertia visual | Rendering | |
Visualize inertia | Gazebo | |
Center of mass visual | Rendering | |
Visualize center of mass | Gazebo | |
Joint visual | Rendering | |
Visualize joints | Gazebo | |
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