Skip to content

Instantly share code, notes, and snippets.

@anindex
Last active December 2, 2020 18:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anindex/1e12edab64aedd6b4e7fb556c10e58de to your computer and use it in GitHub Desktop.
Save anindex/1e12edab64aedd6b4e7fb556c10e58de to your computer and use it in GitHub Desktop.

Google Summer of Docs 2020: Ignition Physics tutorial and API documentation

Organization: Ignition
Mentor: Claire Wang, Steven Peters
Student: An Thai Le (github.com/anindex)
Link to GSoD project: https://developers.google.com/season-of-docs/docs/participants/project-ignitionrobotics-anthaile

Hi everyone!

I was so excited to have the opportunity to work on the Ignition Physics tutorial and API documentation under the Google Season of Docs 2020 program with Ignition. I enjoyed working on the project and I have learned a lot about how to write comprehensive tutorials introducing new users/developers to the project. I would like to thank my mentors Claire and Steven for their support and guidance throughout the project. It has been a great experience for me.

Project Description

Ignition Physics library is an interface between physics engines and Ignition Gazebo simulation, offering flexibility and abstraction. Feature plugins for different physics engines can be created to power Ignition Gazebo simulation based on user needs.

The lack of tutorials and API documentation presents a significant barrier for users and developers to use and contribute to the Ignition Physics library. This motivates the project to achieve:

  • creating comprehensive tutorials on how to use and how to develop new physics plugins in Ignition Physics.
  • writing API documentation for the most important features/classes and functionalities of Ignition Physics.

Tutorial design

We divide the tutorials into the user section and developer section with an increasingly advanced level. The tutorial set consists of:

We expect this tutorial design makes it easier for the simulation community to incorporate Ignition Physics into their project while drawing an intuitive big picture of Ignition Physics for newcomers. This eases out starting points and enhances its visibility in the simulation community.

API documentation

The API documentation guides the new developers on how to use/include the most important and common features/classes of Ignition Physics in their downstream code developments. Of course, there is some API documentation that we leave behind due to time constraint, please feel free to contribute changes/new documentation to ign-physics.

The link to the API documentation: https://ignitionrobotics.org/api/physics/3.1/annotated.html#

Overall, I think most of the project goals are met and it does help me a lot in learning the proper documentation in engineering. I also feel fortunate that the project goes surprisingly smoothly for me. There is a saying that "nothing is more practical than good documentation" (maybe I make it up :) ), which I completely agree with in engineering because otherwise, we cannot work together in complex coordination scenarios. So I hope our work could benefit Ignition and the simulation community in general.

About me

My name is An Thai Le. I am currently a Master student at the University of Stuttgart. I am also a research intern at the Bosch Center of Artificial Intelligence in Germany. My research is mainly in robotics control and modeling. Before this year GSoD, I was a student taking part in GSoD 2019, GSoC 2018, and GSoC 2017. You can find my personal website here.

@claireyywang
Copy link

Ignition Physics library enables flexible usage of the physics engines porting to the back-end of the Ignition Gazebo simulation.

"Ignition Physics library is an interface between physics engines and Ignition Gazebo simulation, offering flexibility and abstraction."

Many external physics engines can be adapted to the library as plugins consisting of different sets of features according to their capabilities and application contexts, in order to power Ignition Gazebo simulation.

"[Feature plugins](link to how to write a feature plugin tutorial) for different physics engines can be created to power Ignition Gazebo simulation based on user needs."

Before this project, Ignition Physics lacks of general tutorial set and API documentation, which makes new users and new developers hard to use the this library in their projects or contribute to the repository.

"The lack of tutorials and API documentation presents a significant barrier for users and developers to use and contribute to Ignition Physics library."

The new tutorials ... the API documentation ...

About this part, it'd be nice to talk about how we design the tutorial, like how we decided to create different sections for users and developers, what content and depth are covered in the tutorial, and an index of tutorial titles with sections (a very brief version of this gazebosim/gz-physics#114), with each title link to the github source for now.

With the API documentation, we can just supply a link to the website page https://ignitionrobotics.org/api/physics/3.1/annotated.html# saying all important classes and member functions are now documented, and feel free to contribute changes/new documentation to (link to ign-physics repo)

Overall, this project helps to introduce new users and new developers to Ignition Physics, eases out starting points, and enhances its visibility in the simulation community.

Instead of this, maybe talk about your experience working on this project, like what are the challenges and how you overcome them and reflect in your work?

It'd also be helpful to link to issues that tracked your pull requests since those include important discussions about how you design the tutorials, see Google's requirements here https://developers.google.com/season-of-docs/docs/work-product

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment