1. Objectives
1) To be familiar with Robot Operating System (ROS) and use it to do this assignment.
2) To program a simulated robot to implement a specific navigation task below.
3) To produce a report to explain your design, implementation, and results.
2. Navigation task
The Goal: You should use the data collected in the environment shown in Figure 1 to control the robot moving from home, going through two gaps, and finally reaching to the charger. Also, you should collect odometry and laser data for creating trajectory, velocity, and map graphs for your Assignment report.
The Software development:
Based on lab practices, you have gained knowledge on how to collect sensor data (Laser and Odometry) and how to control the robot motion.
You have been given most of software in lab notes, which you should read carefully and understand it. Also, you have added new code during your lab practice.
Now you should be able to optimize your control code to make it concise. Note that the shorter your code, the better your software.
You should run your control code in Gazebo simulator, and collect laser, odometry and velocity data for plotting graphs used in your report.
3. Deadline & submission requirements
The deadline for the electric submission of your report and code tutorial_pkg_node.cpp can be found in FASER. Your report should be 2000-3000 words long (no more than 23 pages), i.e.,
1) The cover page (1 page): Write your registration number, the code of the course module and the table of contents for easy to navigate.
2) Introduction (7 – 8 pages): You should briefly describe a variety of mobile robots, sensors, navigation, and path planning methods you have learnt in this course. More specifically,
➢ Describe and compare various mobile robots in terms of platforms and mobility.
➢ Describe and compare various internal and external sensors.
➢ Describe and compare various navigation approaches.
➢ Describe and compare various path planning methods.
3) Implementation of Odometry control strategy in Lab 4 (2 – 3 pages):
➢ Present flowcharts to describe the code that you have used in the Lab
4 implementation. Your flowcharts should be clear and concise.
➢ Print a graph showing the robot trajectory in X-Y coordinates and another graph showing the robot velocity in Velocity-Time coordinates that you obtained in Lab 4. Explain why they are in such shapes and how you selected 3 landmarks.
➢ Print a graph showing the environment map detected by laser in X-Y coordinates that you obtained in Lab 5. Explain why it is in such a shape.
4) Implementation of PID control strategy in Lab 6 (2 – 3 pages):
➢ Present flowcharts to describe the code that you have used in the Lab 6 implementation. Your flowcharts should be clear and concise.
➢ Print a graph showing both the robot trajectory and the environment map detected by laser in X-Y coordinates. Explain how you selected the desired values for 3 PID controllers.
➢ Print a graph showing the robot's velocity in Velocity-Time coordinates and explain why it is in such a shape.
5) Map improvement and optimizing code in Lab 6 (6 – 7 pages):
➢ Revising the laser code in Lab 6 to improve the quality of the environment map. Plotting an improved map with the robot trajectory. Explain your new laser code.
➢ Optimize your code used in the Lab 6 implementation. The shorter your code, the better your mark. You should make sure it runs correctly after optimization.
➢ Include your optimized code tutorial_pkg_node.cpp in the report, highlighting the sections you have optimized in yellow. Ensure that the code is fully functional before submission and explain the improvements you have made.
6) Summary or Conclusion (0.5 page): You should make a summary or brief conclusion about your achievements.