How Do Coding Challenges Work?

For Phase II teams will be encouraged to participate in two coding challenges.

Challenge 1 will be to leverage the AprilTags that will be placed throughout the competition court in order to identify which of the three rescue paths are open for the Rover to rescue the stranded hikers. Check out more about this challenge at the link below:

Challenge 2 will be to leverage the AprilTags and other data from onboard sensors to autonomously drop supplies to various buildings on the court. Check out more about this challenge at the link below:

How do we perform the coding challenge?

In the GitHub for Phase II we've provided an area for you to write Python in order to accomplish your goals. The software stack for VRC is made up of a series of modules, which are actually independent Docker Containers. Below is a graphic that shows the individual containers:

All of these modules communicate with each other over a message bus called MQTT. You could loosely think of MQTT like a social media feed. You can publish posts and your friends can subscribe to your feed to see them. Similarly, you can subscribe to your friends' feeds and see their posts too.

Below is a non-exhaustive list of the kinds of data some of the modules publish:

  • Flight Control Module

    • Drone Position

    • Drone Orientation

    • Drone Velocity

    • Drone Flight Mode

    • Drone Battery Level

  • AprilTag Module

    • Visible AprilTag IDs

    • Their relative Positions

  • VIO Module

    • T265 Position

    • T265 Velocity

    • T265 Confidence

  • PCC

    • Actuator States (Coming Soon)

    • LED Halo States (Coming Soon)

  • Fusion Module

    • Coordinate Transformed Drone Position

Your job for the coding challenge will be to subscribe to the necessary topics above and write your own logic to produce the desired output (setting of the LED Halo and actuator positions) based on given input.

Last updated