Autonomy S26

Autonomy S26

Title: WARG - Autonomous Systems Co-op - Software Engineering

Positions: This posting will hire a single co-op student, to be managed by the following:

Compensation and Benefits Information: This position is unpaid.

Location & Time Commitment:

This position is hybrid in Waterloo. You will need to be in person ~2-3 days per week, as you see fit, to test your code with the drones. You will have flexible hours as you desire and are free to set your own schedule, provided CEE requirements are met (at least 30 hours per week). We will expect you to be available for our team meetings, which tend to take place in the evenings, occasional flight tests, which primarily occur over the weekends (you don’t have to attend if your project isn’t being tested, but it’s highly encouraged and really fun), and a daily 1:1 with your manager. Our equipment, hardware, and aerial vehicles are in our bay (E5 1006), which will be required for job responsibilities.

Team Summary:

Waterloo Aerial Robotics Group (WARG) is a student design team at the University of Waterloo competing annually in the Aerial Evolution Association of Canada's Student Competition. We are a passionate group of students focused on innovating the Unmanned Aerial Vehicle industry. We have successfully won our national competition two years in a row and intend on continuing the streak in the future. We take pride in building custom systems for our UAVs, including developing an in-house autopilot, frames, computer vision software, and electronics.

The autonomy subteam is responsible for developing and implementing custom software solutions for autonomous UAV operations. This includes geolocating targets, localizing in GPS-denied environments, and executing paths autonomously. As the AEAC competition and drone technology at large shift towards autonomous operations, autonomy’s role becomes increasingly significant.

Project Description:

As a co-op student, you will have two primary projects to work on in parallel. The first will be implementing a Python module that allows our drones to precisely land on arbitrary targets. The targets will be detected and tracked via classical CV, YOLO models, etc. This module will be designed in a way that integrates with our future competition architecture, should the need arise, directly contributing to the success of the team. The second project will be integrating a Software-in-the-Loop (SiL) system into our architecture, giving us the ability to test our code in a fully simulated environment before deploying it to real hardware. This SiL will also be used by you as you work on the precision landing module. Finally, the SiL will integrate with our Hardware-in-the-Loop (HiL) project, greatly expanding its capabilities.

Job Responsibilities:

  • Own a Python project that allows our drones to autonomously precision-land based on arbitrary targets

  • Concurrently work on a Software-in-the-Loop (SIL) architecture to test this and other autonomy projects

  • Interact with various hardware, such as flight controllers (running ArduPilot), Raspberry Pis, and ArduCams

  • Actively test work via simulation and on real hardware

  • Write and maintain documentation for all projects

Desired Skills:

  • Understanding of Python and Object-Oriented Programming

  • Some experience with Git or other version control systems

  • Experience writing software, reading/writing documentation, and testing/debugging code

  • Strong communication skills; capable of staying in contact with various stakeholders, contributing to technical discussions, and asking thoughtful questions

  • A drive to learn and contribute; design teams are all about growth and passion, and we want someone serious about achieving something they can be proud of, at WARG, and even possibly stay on after their co-op ends

Nice To Have:

  • Experience with computer vision (notably YOLO), embedded software, Raspberry Pi

  • Experience with autopilot software (notably ArduPilot) and MAVLink

  • Past design team experience

  • Interest in UAVs, aviation, etc.