All lab and the final project should be done at maximum pairs of 2 (or individually). You are free to set up pairs (although not recommended, you are permitted to switch your partner before the Module 2 due day).
The lab package is now available on this Github page.
Module 1.0 (3.75%): "A controller" for start, Due Spet 24, 2025
Module 1.5 (11.25%): Proportional control for point tracking, Due Oct 1, 2025
Module 2 (15%): Brush fire algorithm, Due Oct 15, 2025
Module 3 (20%): A* search, Due Nov 03
Module 4 (15%): Lumped Probabilistic Road Mapping, Due Nov 19
Final Project (20%): CPP Truck Simulator, Presentation Due Dec 03, Report Due Dec 12
Please update E160_environment.py, E160_robot.py, and E160_state.py from out code Github repo.
A. Send waypoints to the controller for robot execution
To send your waypoint list to your controller, first, In controller.py, Remove all lines about waypoint setting (typically in set_goal_points() method), something like:
self.robot.state_des.add_destination(x = 10, y = 30, theta = 42)
Then, add the following sentences in your planner's __init__(self) function (either path_planner.py or prm_planner.py)
self.controller = self.graphics.environment.robots[0].controller
self.robot = self.graphics.environment.robots[0]
Then, add your waypoints in your planner python file after you determined a list of way points. The controller will execute the waypoints automatically when self.robot.state_des.add_destination()is excuted:
For instance:
self.robot.state_des.add_destination(x = path[0].x,y = path[0].y,theta = ...)
self.robot.state_des.add_destination(x = path[i].x,y = path[i].y,theta = ...)
...
A separated method is recommended to send waypoints on your path to the controller.
B. Switch vehicle mode:
In E160_environment.py:
At line 45 - 49:
Comment out line 46:
r = E160_robot(self, '\x00\x0C', i, deltaT, vehicle = "d")
Instead, uncomment line 49:
r = E160_robot(self, '\x00\x0C', i, deltaT, vehicle = "v")
C. Change vehicle image:
You can replace the given robot.png with any image to reflect your vehicle. You must set the background to be transparent.
D. Monday Demonstration Maps (Click here)
E. Wednesday Demonstration Maps (Click here)
F. Finalist Demonstration Maps (Click here)
All homework should be done individually, with open book/note/internet. For HW, collectively learning material is permitted.
Tentative weight (15%)
HW0: Python and OOD Python (files you need for submission), Due Sept 03, 2025
HW1: Homogeneous transformation and differential driving, Due Sept 10, Sept 15, 2025
HW2: Proof of differential driving kinematics, Due Oct 8
HW3: Search! Due
HW4: Markov Chain, Due Nov 10, 2025