Skip to content

Google Summer of Code 2022 project idea list

Olivier Michel edited this page Feb 25, 2022 · 5 revisions

This page lists all the project ideas for Google Summer of Code corresponding to important milestones in the Webots roadmap. Feel free to propose your own ideas.

Feature Developer

Improve the webots2urdf tool

The goal is to facilitate the conversion of URDF files into Webots PROTO files. It should include a wider compatibility with a large range of URDF files. Several URDF files will be tested to validate the result.

Expected outcome: a series of URDF robot model being successfully converted to Webots PROTO.

Skills required/preferred: Python programming, URDF/ROS experience

Possible mentors: @omichel, @ad-daniel

Expected size of project: 350 hour.

Difficulty: easy.

Implement the Ghost node in Webots.

It is often useful to represent a ghost of an object, such as a robot, to display a target position or several keyframe positions. Such ghosts should be visible from the main 3D view, but probably not from the robot cameras. In order to facilitate the display of such ghosts, we could introduce a new node in Webots: the Ghost node which would inherit from Transform, adding a transparency field and maybe a visibility field to enable/disable the visibility from robot cameras.

Expected outcome: a new node implemented in Webots.

Skills required/preferred: C++ programming

Possible mentors: @BenjaminDeleze, @omichel

Expected size of project: 175 hour.

Difficulty: medium.

Implement a better Python programming interface.

The new Python interface should be designed in a pythonic way with both a clean design and a good performance. New capabilities should be introduced, such as numpy support. Only Python 3.x should be supported (no Python 2.7).

Expected outcome: a new Python interface to program robot controller.

Skills required/preferred: Python, C, numpy

Possible mentors: @stefaniapedrazzi, @ad-daniel

Expected size of project: 350 hour.

Difficulty: medium.

Develop a bridge between Autoware.Auto and Webots.

As a part of an effort to bring Webots closer to the automotive and ROS 2 community, we want to develop Autoware.Auto integration based on vehicle_interface (see example). Besides the integration, the student should develop a few simple examples of autonomous cars utilizing the Autoware.Auto bridge. The package will be integrated into the webots_ros2 package and published as a part of Foxy, Galactic, and Rolling ROS 2 distributions.

Expected outcome: a new demo showing the integration of Autoware.Auto with Webots

Skills required/preferred: Python, C, C++, ROS 2, Autoware

Possible mentors: @ygoumaz, @ad-daniel

Expected size of project: 350 hour.

Difficulty: medium.

Implement a walking library and demos for the simulated Boston Dynamics Spot robot in Webots

There are some open-source libraries available to make the Spot walk on flat surfaces and even climb-up stairs: A nice blog article describes various possibilities. It seems the MIT Cheetah control algorithm with champ can be used to make the robot walk on flat surface while towr will allow the robot to walk on uneven surfaces, climb-up stairs, jump, etc.

Expected outcome: a new demo showing a Boston Dynamics robot walking on flat surface and climbing-up stats.

Skills required/preferred: C, C++ or Python

Possible mentors: @omichel, @stefaniapedrazzi

Expected size of project: 175 hour.

Difficulty: medium.

Implement a new model of a robot, a sensor or an actuator to the added to the Webots library.

The chosen device should be a very popular one, so that it will benefit to a large number of users. It should rely on open-source material, so that it can distributed in Webots. Examples include a temperature sensor, a sucker gripper, etc.

Expected outcome: a new demo showing a Boston Dynamics robot walking on flat surface and climbing-up stats.

Skills required/preferred: C, C++

Possible mentors: @omichel, @BenjaminDeleze

Expected size of project: 175 or 350 hour.

Difficulty: medium.

Implement a new series of nice 3D object models.

Such object should be useful in robotics scenarios. They should rely on open-source material, so that they can be distributed in Webots. They should include not only the 3D modeling aspects, but also the bounding objects, physics properties, etc. Each object expose a number of parameters that could be modified by the user: color, size, number of items, etc.

Expected outcome: a series of 3D model PROTO to be added to Webots.

Skills required/preferred: 3D modelling, Blender, JavaScript

Possible mentors: @omichel, @BenjaminDeleze

Expected size of project: 175 or 350 hour.

Difficulty: easy.

Optimizer

Optimize the performance of webots.cloud

You should first conduct a profiling analysis to identify the bottlenecks of the Webots web interface. Performance may be improved at the server level (python and C++) or client level (Javascript, webassembly).

Expected outcome: a series of benchmark showing performance improvement on a number of web simulation examples.

Skills required/preferred: C++, python, javascript, webassembly

Possible mentors: @omichel, @BenjaminDeleze

Expected size of project: 175 or 350 hour.

Difficulty: hard.

Optimize the performance of Webots

Choose one or several optimizations to implement and/or propose your own. Please identify one or several optimizations in your proposal, that you plan to address. Depending on the optimizations, they may be easy to achieve (and hence you can have a list of optimizations) or difficult to achieve (in that case, you may want to address only a single optimization).

Expected outcome: a series of benchmark showing performance improvement on a number of local simulation examples.

Skills required/preferred: C++

Possible mentors: @omichel, @ad-daniel

Expected size of project: 175 or 350 hour.

Difficulty: medium.

Enhancer

Implement a series of desired enhancements.

Enhancements are low hanging fruit that should be fairly easy to implement. Please identify a precise list of enhancements in your proposal, that you plan to address. Depending on the enhancements, they may be easy to achieve (and hence you can have a long list of enhancements) or difficult to achieve (in that case, your list of enhancements should not be too long and could even include a single item).

Expected outcome: a list of enhancements, including documentation and usage examples.

Skills required/preferred: C++, python

Possible mentors: @omichel, @stefaniapedrazzi

Expected size of project: 175 or 350 hour.

Difficulty: easy.

Bug Hunter

Fix a series of known bugs.

Please identify a precise list of bugs in your proposal, that you plan to address and hopefully fix. Depending on the bugs, they may be easy to fix (and hence you can have a long list of easy bugs) or difficult to fix (in that case, your list of bugs should not be too long and could even include a single item).

Expected outcome: a list of bug fixes, with corresponding CI tests in the Webots test suite, and entries in the change log.

Skills required/preferred: C++, C

Possible mentors: @ygoumaz, @ad-daniel

Expected size of project: 175 or 350 hour.

Difficulty: medium.

Clone this wiki locally