def init:

DrrT
gzdev
Published in
2 min readJun 1, 2018

This blog post is the first of a series of posts where I will share details about the internship I started recently with Open Robotics and thanks to the awesome folks from Outreachy as well as the Software Freedom Conservancy. However, I might occasionally touch upon relevant meta subjects I find interesting.

I am working on creating a tool that facilitates the development of the open source robotics simulator Gazebo. Our goal is to streamline many of the usual tasks that Gazebo developers face on a daily basis. Fortunately, Jose, their Build Engineer will be graciously providing much-appreciated guidance and mentorship along the process.

I have noticed most people I have talked to do not seem to be interested in tooling. They are happy as long as their tools work well enough to get the job done. I find tools particularly interesting because, in the words of Dijkstra: “The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities” - EWD498. So far my mentor and I have discussed tool features, design, and prototyping.

The possible features we are exploring include but are not limited to: simplifying the release process, displaying useful system information for bug reports, gathering and storing information about the graphics card, generating virtual environments ready for development, and use continuous integration commands readily available from the terminal.

As for the software design aspect of the project, we are going for a core + extensions type of approach. We have taken inspiration from a generic build, test, and package management tool called colcon, which is short for collective construction.

We now have a basic prototype which can be easily tested within an interactive sandbox thanks to the executable environment provided by Jupyter Binder.

--

--