Repository navigation
Software Requirements Introduction
This document outlines guidelines, requirements, and design considerations for developing the Rover software system for CIRC 2026. It is a central reference for software architecture, subsystem responsibilities, assumptions, dependencies, and design constraints. It will evolve with development and testing.
Team experience ranges from beginner to intermediate. The initial framework references Daniel Snider’s ROS Rover architecture as a starting point.
Reference repo: https://github.com/danielsnider/ros-rover
As the system matures, a custom software architecture diagram specific to the UVic Rover will be produced.
A rudimentary, high level diagram is as follows:
Subsystems:
- Arm Control System — 6-DOF arm control for manipulation tasks.
- Drive System — Movement/maneuverability across terrain.
- Perception System — Visual awareness, depth sensing, marker localization.
- Odometry System — Pose estimation via fused sensor data.
- Antenna (Communication System) — Rover ↔ Base Station connectivity.
- Autonomous System — Autonomous navigation/decision-making.
- User Interface (Base Station) — Operator control, feedback, situational awareness.
Key terms: ArUco Marker, Autonomous, CAN, CIRC, CI/CD, End-Effector, EKF, E-Stop, Gazebo, IK, Microcontrollers, Odometry, PWM, ROS, rostest, ROS Service, ROS Topic, RTAB-Map, RViz, Simulation Readiness Gate, Tank-Steering, Teleoperation, Ubuntu, Watchdog, ZED2i, *.yaml.