Skip to content

GSoD24‐exploration

Steven! Ragnarök edited this page Apr 1, 2024 · 10 revisions

Overview

This document describes a list of potential ideas created for the 2024 Google Season of Docs. However, the ideas are open to everyone with interest on collaborating, and Open Robotics is open to new ideas. If you would like to suggest new projects please email gsod AT openrobotics.org.

Gazebo Robotics project ideas list

  1. Create a Gazebo Book -- Consolidate all the existing documentation, tutorials and examples into a cohesive and structured single document that can be read from beginning to end.

ROS project ideas list

  1. Migrate ROS 2 Design Docs -- The Robot Operating System (ROS) is currently in the process of transitioning from its first major version, ROS 1, to its second major version ROS 2. This transition process started in earnest in 2017 and should be completed by 2025. As part of the early development of ROS 2 we created a series of community design documents. These design documents were used to drive community discussion and educate the broader ROS community about the ROS 2 effort. As ROS 2 has matured the bulk of our documentation efforts have moved to developing the ROS 2 documentation. As such, the ROS 2 design documents have languished and become partially out dated. The design documents have also become a point of confusion for the broader ROS community, and current ROS 2 implementations may differ from the original design documents. However, many of these design documents still contain information that remains relevant to the ROS community. The ROS team has made the decision to update these documents and move them into existing ROS documentation. We are seeking a GSoD student to assist us with transitioning content from these design documents into the more widely used ROS 2 documentation.
  2. Translations -- Translation of (docs.ros.org)[https://docs.ros.org] - there have been several people asking how to create translated versions of the documentation. We need to figure out how translation would work with our documentation build tool (Sphinx), and come up with a process for contributors and reviewers of the translated pages (since the core team likely won't be able to read/review them).
  3. CLI Examples -- Examples are a critical part of learning how to use new tools, and most high-quality API documentation includes example code along with documentation of of parameters, invariants, and return values. As it stands, most of ROS's CLI tools do not list examples of the CLI used in the wild. A fantastic project would be to add examples to the built-in help file for the ROS 2 CLI and then add similar documentation to docs.ros.org. This project would walk through every ROS 2 command and provide multiple examples of the CLI in action along with detailed description of parameters with examples.
  4. ROS 2 Launch Cook Book -- ROS Launch is the scripting tool used by ROS developers to configure and start their robot. ROS Launch allows users to create these "launch" files using XML, YAML, or Python, and then execute them to start their robot. While we currently provide a number of introductory examples of how to use ROS 2 Launch, we do not provide specific examples for common tasks like testing, teleoperation, and toggling between simulated and actual robots. Working with a qualified mentor, the student will produce a detailed "cook book" for creating ROS 2 launch files for common tasks completed by ROS and Gazebo users. This cookbook will provide these common recipes in each of three common formats for specifying ROS 2 Launch files.
  5. Awesome ROS Community Contributions -- Our developer advocate has five years worth of community contributed blogs, forum posts, Github repositories, and videos. For this project the student will vet these community contributions, organize them by topic areas, and create an index of community contributed resources on docs.ros.org. The student will be responsible for creating the information architecture for these contributions and providing short descriptions that contextualize the contributions.

Infrastructure project ideas list

  1. Bloom User Manual -- Bloom is the ROS infrastructure tool for release automation. Bloom allows package developers to release their package code as platform-specific build artifacts. As it stands the existing Bloom documentation is minimal and our existing documentation and tutorials from the ROS Wiki needs to be moved into the Bloom project's repository. The port of the Bloom documentation should focus on converting our existing "How To" tutorials into a new user guide that explains common Bloom related tasks (like running a pre-release test, and submitting a package for indexing) and provides reference information for less common features such as bloom's release-time patching.

  2. ROS Infrastructure for Beginners -- Many new ROS users find the ROS infrastructure intimidating, and we would like to create a series of high level guides on docs.ros.org that explain the history and structure of the ROS infrastructure, the shared resources that are available, and how you can use the ROS infrastructure to share your package. Topics covered would include ROS Index, Bloom, the ROS Build Farm and how it works, the ROS Distro release process, and some of the available resources for ROS Docker users.

Shared Projects

  1. Improved ROS / Gazebo Integration Guide -- As of ROS Jazzy, Gazebo now ships with ROS as a pre-built binary. Despite this, users still have difficulty switching between simulated and real robots and creating their own simulated robots. Working with one of our core developers, the student will write a series of tutorials that explain the different simulation assets, how to create them, and how to set up your robot to use Gazebo for simulation. This project will touch on both ROS and Gazebo, and work through common integration examples, with a focus on creating simulation assets, configuring ROS launch files to switch between real and simulated robots, and testing using Gazebo.