Lab 12: Path Planning and Execution

Objective

The goal of this lab was to demonstrate autonomous path execution by integrating robot motion control with pre-defined waypoint navigation. Building upon the functionality developed in previous labs, this final exercise aimed to create a complete system capable of reliably following a multi-point path across a mapped environment.

Strategy

My approach centered around writing BLE command functions in Python that could be easily edited, tuned, and executed without needing to re-upload code to the Artemis board. The strategy was intentionally simple: rely on open-loop timed control to move the robot forward or execute turns.

Two basic commands were used:

. .

Execution Path

The robot followed these waypoints:

(-4, -3) → (-2, -1) → (1, -1) → (2, -3) → (5, -3) 
       → (5, -2) → (5, 3) → (0, 3) → (0, 0)

Implementation

I manually calibrated each segment by iterating trial runs, adjusting time durations in seconds through using the python commands. I found that even the same command could behave differently across trials due to minor inconsistencies in the battery level, so frequent re-tuning was necessary.

My Control Script:

.

My Control Script Used to Test & Iterate:

.

This control logic proved effective for quickly testing variations in path timing. All planning and command sequencing happened offboard on the host computer. My test script allowed me to isolate and calibrate one segemnt. The enrite script allowed all the segments to run without the user having to click thorugh. 150 PWM was chosen as the robot traveled a more reliable distance at this speed vs max speed.

Performance and Observations

The robot completed the full waypoint path reliably in multiple trials. While open-loop control lacks the precision of feedback-based methods, the combination of BLE commands and time-based execution was sufficient to complete the task.

The largest sources of error were due to:

Conclusion

This lab showcased a functional end-to-end navigation pipeline built from modular BLE commands. While feedback control could offer improved precision, my open-loop method was a fast, testable, and robust solution for waypoint navigation using calibrated motion segments.

Video of Robot Executing the Route:

Back to Main Page