Skip to content

Ideas page for MRPT Google Summer of Code 2022

Jose Luis Blanco-Claraco edited this page Dec 7, 2021 · 4 revisions

Table of contents

Important information for Students

  • GSoC website. It is fundamental to read all rules and documents from Google before writing a proposal.
  • GSoC mailing list: You can ask general questions here.
  • GSoC timeline
  • TBD: Students can apply in this period only!

Being accepted as a GSoC student is a quite competitive process. Please, if you wish to submit a proposal, consider becoming familiar with the involved technologies first. Simply copying and pasting from this page will not be accepted.

How you will be evaluated if you are an accepted student

Student projects will be paid only if:

  • 1st phase (TBD): A pull request is requested that...
    • Builds, ideally in CI
    • Has, at least, stubbed out new functionality
  • 2nd phase (TBD): A pull request is requested that...
    • Same as above, plus:
    • Code has appropriate Doxygen documentation
    • Has a stubbed out example/tutorial/ROS launch file that builds/runs without errors
    • It observes the recommendations in "How to contribute", which include C++ style suggestions.
  • Final phase (TBD):
    • A complete pull request that builds, full Doxygen documentation, unit test if applicable, complete functionality.
    • A video (e.g. on YouTube) demonstrating your code.

Students interested in applying

  • You must already be proficient in the main language of the corresponding project (C++, JavaScript, ...).
  • Take your time to learn about MRPT. Try watching some YouTube videos, reading tutorials, downloading it and launching demo applications, for example. Getting familiar with ROS and MRPT ROS packages would be a plus.
  • Take a look at the projects in the "GSoC ideas page". Discuss those of your interest, or your own ideas, in the MRPT forum/mailing list.
  • Read carefully about Google's student eligibility rules.
  • Sign up in GSoC and post your project proposal to the MRPT Organization. Your proposal should include:
    • A coding portfolio of past/current projects.
    • Your GitHub/GitLab/... username.
    • A detailed description of your project proposal, including initial plans for research directions and a list of key and optional features to be coded as time permits.
    • Will you be working full-time on the project during the summer? Will you have other commitments too (a second job, classes, etc)?
    • Why do you feel motivated to undertake this particular project? :-)

Rules say that all communications between students and mentors should happen in public: please, use the MRPT mailing list or GitHub comments in pull-requests or commits whenever possible, before and during GSoC.

We have created a slack channel for answering questions and providing feedback during the GSoC period. You can sign up using https://mrpt-gsoc.herokuapp.com/


Ideas list for GSoC

MRPT provides developers with portable and well-tested applications and C++ libraries covering data structures and algorithms employed in common robotics research areas. ROS (Robot Operating System), supported by the OSRF, provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more.

List of potential mentors (pairing of projects to mentors will be done when Google decides the number of slots assigned to MRPT):


Project #1: MRPT sensor nodes for ROS2

Goal: efficient application design without serialization of objects, just passing shared pointers. This was possible in ROS1 with nodelets, but their API is different than those of regular nodes.

Project #2: Implement SOFT features in mrpt-vision

See: https://github.com/MRPT/mrpt/issues/514

Project #3: New Python3 wrappers for MRPT

The current version of python wrappers for MRPT are written using boost-python, and special wrapping code is required to expose each class. This project consists of proposing an alternative method to automate exposing the largest part of C++ MRPT libraries as possible. Examples of potential tools that may be used in a student's proposal:

Project #4: Extend existing MATLAB wrappers

Write me.

Project #5: Integrate a 3D Physics Engine to MVSim

Write me.

Project #6: Implement a reference importer/exporter for IEEE 1873-2015

See https://github.com/MRPT/mrpt/issues/677.

Project #7: Add octomap and 3D grid maps to robot-map-gui

XXX.