Design Reviews

Conceptual Design Review (CoDR)Preliminary Design Review (PDR)Critical Design Review (CDR)System Development Review (SDR)Final Report
PresentationPresentation RecordingPresentation

Presentations – Individual Lab Reports (ILRs)

Standards and Regulations Presentation



ISO 22646:2005

PCB Layout

For our project, we designed a custom power distribution system (PDS) for our mobility subsystem. This would take in 25-30 Volts as input, and then provide that same voltage to 3 RoboClaw motor controllers. The core design requirements were overvoltage protection, reverse voltage protection, input voltage filtering, and power-on indication. An addition since the conceptual design stage of this system is a Voltage Clamp, which diverts excess energy away from control circuitry and dissipates it away as heat. This is expected to come into use when our drive motors are quickly stopped or slowed down, allowing opposing current flow to be dissipated safely. 

Other elements of the system have stayed the same, as we are still using a TVS voltage for reverse voltage protection as well as a quick-blow automotive fuse for over voltage protection. Finally, LED indicators are used to visually determine if the main PDS is receiving voltage as well as if each RoboClaw motor controller is receiving power. All Roboclaws will have input voltage filtering using electrolytic, ceramic, and tantalum capacitors to reduce forms of noise in power transmission.

Figure 1. Schematic of how PDS board Integrates Between Power Supply and Roboclaw Subsystems
Figure 2. Power Distribution System Schematic
Figure 3. Power Distribution System Layout
Figure 4. Power Distribution System Components

Design Brainstorming

Early in the design process with preliminary CAD (prior to replacing the box enclosure with a sheet), we prototyped the sensor tower’s sensor configurations as well as possible wiring configurations in the box enclosure through sketches to determine their feasibility.

Figure 5. Sensor Tower Sketch
Figure 6. Preliminary Enclosure Wiring Sketch

Drawings, Schematics, and Datasheets

Software Architecture Diagram

The software architecture diagram captures the overall structure for the software subsystems. This architecture was generated by further refining the cyberphysical architecture. The content is not necessarily a strict guideline, though is the starting point for implementation. The architecture is regularly updated and accompanied by short design docs written by team members as new software changes are merged into the main branch of the GitHub repository. The architecture in Figure 7 captures the current architecture plans as of the spring semester.

Figure 7. Software architecture diagram.

Electrical Architecture Diagram

The electrical component layout is captured in schematic form with physical realization that includes wiring. The entire electronics board is enclosed by a wire frame enclosure wrapped in Amerstat for dust ingress protection.

Figure 8. Electrical component layout.
Figure 9. Physical component mounting and wiring on the robot. Picture taken before integration of the custom PCB, which replaced the Power Distribution Board.

PCB Datasheets

Component Testing & Experiment Results

All sensors and other system/subsystem components were unit tested prior to integration with the overall robot. Two examples include quantifying the transformation between measured encoder counts on the vehicle drive motors and verifying IMU sensor bias and noise levels. Unit tests such as these ensured that the performance and working state of sensors and other components were well understood by the team in order to make integration a smoother process.

Figure 10. Component test to experimentally determine transformation between drive motor encoder counts and longitudinal vehicle motion.
Figure 11. Component test with IMU to measure bias (mean) and noise along each axis at two different tilt orientations and with gyroscope tests.


All code has been developed under version control using GitHub. The software stack is in large part a ROS2 workspace written predominantly in C++. The code is deployed with a custom Docker container so the stack can be run on team developer laptops the same as it runs on the robot (except for the peripheral connections). The Docker images are also version controlled to maintain a stable development environment even with open source code. Additional GitHub work includes a repository with scripts for post-processing topography LiDAR data to extract worksite metrics.

Figure 12. Example code snippet from a ROS2 node managing the motion control subsystem interface between the Xavier and Arduino Due.