Week 3 - Motion control

This week, implement a simple path-following algorithm using motion capture-based localization data. Your submitted solution should be able to lead the robot to the goal along a defined path.

Task 1 – Creating maps

Look into examples located in the maps folder and try to identify meaning of individual parameters by the means of reverse engineering. If you with to create a custom map to test your algorithms, you need to define a GNSS-denied region to simulate indoor environment where the motion capture works.

No output is required in this step.

Task 2 – Create a path

Define a path in indoor_1 map, leading from point (2, 8.5) to the goal position. The path must not consist of straight lines only, incorporate also curves (e. g., a circular arc or a sine wave). Maintain safe distance between path segments and the walls.

A path is defined as a sequence of (x, y) waypoints. Note that waypoints stored in the public_vars.path variable are visualized by the simulator. Utilization of this variable is recommended.

Task 3 – Motion control

Set your robot‘s starting position to match the beginning of the defined path – (2, 8.5). Choose any path-following algorithm and implement it to make the robot follow the path defined in the previous task. Use the variable read_only_vars.mocap_pose to get nearly true pose of the robot. Discuss how parameters of the chosen method affect the quality of the motion control.

Put your solution into the plan_motion function. By default, the code structure is prepared for target point-based algorithms; you are, however, free to alter the function and use, e.g., the cross track error instead. The choice depends on your preferences, you can even implement multiple algorithms and compare them.

Mind the fact that the MoCap data will not be available for the final project!

Submission

To implement the tasks, use only the algorithms directory; do not modify the rest of the simulator. The solution must run without errors in a fresh instance of the simulator and must generate the graphical outputs included in the report.

Create a single A4 report to the provided template that briefly describes your solution, with a few sentences for each task and an image where applicable.

Send the report and a zip archive containing the algorithms directory to the lecturer's e-mail by Wednesday at 23:59 next week.

For those using Git for version control, you can send a link to your public GitHub repository instead of the zip file. The repository must contain the simulator with the algorithms directory with your solution. Please tag the final version with week_3 tag to ensure easy identification.