The aim of this assignment is for you to familiarize yourself with the actuation, navigation, and localization of mobile robots. You will demonstrate the use of motion models, path generation, odometry, probabilistics, and the Monte-Carlo localization algorithm. This coursework is worth 40% of the double-module mark.
1.Design and construct a robotic system to satisfy a given set of requirements, taking commercial and economic considerations into account
2.Demonstrate an awareness of the application of specific engineering principles and relevant professional, legal, ethical, environmental and social issues to robotic systems
3.Use mathematics to analyse and reason about a robotic system design
4.Analyse real world problems and synthesise integrated hardware and software solutions
5.Manage a well defined small scale research project
6.Apply appropriate transferable skills to document, report, analyse and evaluate a research project
7.Select, justify and apply appropriate software engineering processes to robotic systems Work and study in a guided independent manner on a well defined research project
All source code must be submitted through git/bitbucket. A personal repository for this use will be provided.
A final report has to be submitted on moodle on Friday week 12.
An interim assessments is due on Friday week 5 (section 1 of report). It will assess intermediate progress of 30 marks. The final mark of these components will be capped to 2x the mark achieved in the interim assessment.
Submit your report only as a single PDF document.
1)Motion Model and Driving (Interim assessment 1, week 5, 3 page limit)
a)Determine and implement the robot’s driving motion model parameters based on the standard differential drive model (implement track_speed_to_pose_change function stub in cozmo_interface.py)
i.Experimentally determine the model’s wheel distance parameter
b)Experimentally demonstrate the model’s accuracy (e.g. by driving a full circle with track speed )
ii.Demonstrate the accuracy by comparing to robot’s physical position after motion
c)Implement track-motion’s inverse kinematics (implement velocity_to_track_speed in cozmo_interface.py)
d)Implement a turn-approach-turn maneuver to drive the robot onto a desired target position and orientation (implement target_pose_to_velocity_linear and complete loop in cozmo-run-linear-approach.py). Evaluate the effectiveness of this maneuver.
Implement a cubic spline interpolation based maneuver to drive the robot onto a desired target position and orientation (implement target_pose_to_velocity_spline and implement cozmo-run-spline-approach.py analogous to previous maneuver). Evaluate the effectiveness of this maneuver.
a)Write a program on the basis of run-mcl-sim.py that drive the robot onto the designated target on the map while avoiding obstacles (in particular the trench in the middle). You may use planning, but a crude via-point based decision making may be sufficient on this map.
b)Use MCL to determine the current position on the given map (determine best position to represent current particle population)
c)Successfully participate in timed challenge against other students by submitting your competition code on moodle.
? The robot may first have to perform exploratory action to get a good estimate of its position
? Cozmo’s cubes are placed on marked positions on map for orientation. Further, odometry and cliff-sensor information may be used.
? The best average time (best two out of three runs) wins. Maximum time is one minute per run.