Software Requirements Introduction - Uvic-Robotics-Club/uvic-rover-2027 GitHub Wiki
1. Introduction
1.1 Purpose
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.
1.2 Background
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:
1.3 System Overview
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.
1.4 Glossary and Acronyms (to be filled out)
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.