Skip to content

Developing HERO

Rodrigo Martín Núñez edited this page Apr 9, 2024 · 8 revisions

Table of Contents

To develop HERO you will need to know some useful commands to move around the filesystem and develop on all the repositories.

Managing the filesystem

For devloping our robots, we use Git version control. There are many tutorials in the internet on how to use Git and how it works.

If installed correctly, all the repositories from tue-robotics will be located at: ~/ros/noetic/system/src/<repo>

To quickly go to a repository, you can run the command roscd:

roscd <repo>    # Example: roscd robot_skills
                # This will bring you to ~/ros/noetic/system/src/robot_skills

As you will probably create and work with many branches possibly in many repositories you have to checkout (change to) those branches individually for every repository that needs it. For this

You will also have tue-custom commands to keep eveything up to date and managing the branches, here is a quick overview:

tue-get update          # Updates all the repositories
tue-make                # Builds and installs all the packages

tue-status              # Useful to see what branches is each repository using, or to see local changes
tue-checkout <branch>   # Checkout all repositories to <branch>

Working with branches

When working with HERO, you first want to create a branch to push your changes to.

Branch naming

Try to follow this branch naming pattern to keep eveything organized:

feat      # New feature
fix       # Bug fix or improving code
challenge # For specific challenges
rwcYYYY   # Branches used for robocup (YYYY is the year)

So, for example you can have a branch named feat/grasping-cutlery.

If you create a PR early, make sure to mark it as a Draft.

PR Checklist

When a branch is ready to be merged, this is a general checklist you can follow to help you make sure you have developed everything correctly:

  • CI/CD passes
  • Code follows PEP-8 standard (you can use tools like black)
  • Has type hinting and function docstrings
  • PR description/commits are descriptive
  • Mentions other PR's that also have to be merged along this one
Clone this wiki locally