University of Manitoba Robotics Team
The University of Manitoba Robotics Team (UMRT) is a design team of undergraduate students, primarily from Computer, Electrical, and Mechanical Engineering as well as Computer Science, who design a mars-style rover for the Canadian International Rover Challenge.
The team is divided into 6 sections:
- Embedded, which deals with the software running on the rover and drive-by-wire system.
- Communications-Operations, which deals with the communication link between the rover and base station, as well as base station design and operation.
- Electrical, which deals with the electrical architecture of the rover and the battery system.
- Chassis, which deals with the mechanical design of the rover body.
- Robotic Arm, which deals with the design of the robotic arm system used for manipulating the environment.
- Mission Control, which deals with mission strategy, planning, and simulation.
The rover software system is split into many different Git repositories, each responsible for a particular portion of the system.
Generally, each repository is "owned" by one of the above sections. Some repositories listed are important for all sections. Repositories not currently in use are listed at the bottom.
Out of this set, umrt-build is the most important repository. The ros2_j1939_babbler, or just "the babbler" is also a very important package for our workflow, but it is complete and mostly just needs to be maintained.
| Repository |
Description |
Status |
| umrt-build |
Docker image containing all dependencies needed to build UMRT software packages |
Current |
| umrt-template-ros |
Template for UMRT ROS project repositories |
Current |
| umrt-template |
Template for general UMRT Git repositories |
Current |
| umrt-ci-cd |
Continuous integration/development workflows for the UMRT build system and PR management |
Current |
| umrt-apt-image |
Docker image containing tools for managing UMRT's internal debian repository |
Current |
| umrt-project-perry-config |
Configuration files specific to a specific rover revision. |
Current |
| ros2_j1939_babbler |
A bidirectional ROS-based J1939-to-ROS converter that can transform any CAN message from a DBC file. |
Maintenance |
| umrt-rover |
The docker container that runs on the rover |
Current |
Out of this set, umrt-arm-ros-firmware is the most important repository.
| Repository |
Description |
Status |
| umrt-arm-ros-firmware |
ROS software for controlling the arm via ros2_control |
Current |
| umrt-arm-firmware-lib |
C++ library for controlling the arm's stepper motors from the high-level computer |
Current |
| umrt-arm-encoder-driver |
C++ library for interpreting the CAN messages published by the arm's rotary encoders |
Current |
| umrt-arm-encoder-ros |
ROS software for publishing the data received from the arm's rotary encoders. Not implemented. |
Current |
| umrt-arm-joystick-operator |
ROS node for using a joystick with the arm. Including realtime control. |
Current |
Most of electrical's other files are stored in RapidHarness or Onshape.
| Repository |
Description |
Status |
umrt-can-ppm-gateway (hardware branch) |
KiCad files for our custom CAN-PPM gateway PCB. |
Current |
Defunct / Not in use repositories
These are kept separate to not clutter the above list.
| Repository |
Description |
Status |
| umrt-design-documents |
Internal LaTeX documentation covering general system topics |
Not in use |
| ros_buildfarm |
Fork of ros-infrastructure/ros_buildfarm that has been modified to support running in a Docker container. Was developed as part of an investigation into the CI/CD system, but was abandoned due to poor build performance and inconvenient configuration requirements |
Not in use |
| ros2_j1939_babbler_msgs |
A defunct interface package for ros2_j1939_babbler's messages. Was used during the development process before the message building was combined into the main babbler repo |
Not in use |
| Repository |
Description |
Status |
| umrt-foxglove-collection |
Collection of custom Foxglove UI extensions used on base station |
Not in use |