Laboratory 3 - Navigation control (assigned on Sep 16)

Objective

Implement point-to-point navigation control as explained in lecture 3

Steps

  1. Implement one of the two "GoTo()" procedures.

  2. Tune the GAIN parameters to obtain a good behavior.
    Make sure to test your tuned GoTo() with many different goal points.
    Print the actual trajectory followed by the robot: (x,y) coordinates at each cycle.

    The next step relies on the second part of lecture 3, given on Sep 22.

  3. Implement the "Track()" procedure.
    It is probably better to use GoTo2() for this one.
    Make sure to test your Track() with many different paths.
    Print the actual trajectory followed by the robot: (x,y) coordinates at each cycle, and compare it with the given path.

Optional parts

  1. Change the sampling time to be 20 times slower or 20 times faster, and re-tune the gains: are they different? Why?

  2. Implement the other "GoTo()" procedure.
    Tune it and test is as above.

  3. Change your "GoTo()" procedure to include also an Integral term and/or a Derivative term. Can you observe an improvement in the behavior of the robot when going to a target point?

  4. Write a more general procedure that also accepts an orientation for the target position. Try to implement it using either the "divide et impera" approach or the MIMO one.

  5. Describe in your report how you would realize a proportional controller to solve the "osbtacle avoidance" problem, using input from the IR sensors. You may even try to implement it.

  6. Describe in your report how you would realize a proportional controller to solve the combined "go-to-goal" and "osbtacle avoidance" problem. You may even try to implement it.

    The options below rely on the second part of lecture 3, given on Sep 22.

  7. Include some obstacles in your playground, and write by hand a few paths to go from some point A to some point B, going around your obstacles. Try to lay down the waypoints in different ways: e.g., use just a few waypoints at the important turning points, or use many waypoints to mark precisely the path. Can you observe any difference? Why? Try to use look-ahead points. Try with a very cluttered obstalce course.

  8. Implement the GoTo rule-based controller, and test it with different start and goal positions.

  9. Implement the AvoidObstacles rule-based controller, and test it with different configurations of obstacles and obstacles of different colors

  10. Tune the parameters used to set the FPreds until you obtain a good behavior
    (for AvoidObstacles you also need to tune the value of DangerThreshold)

  11. Try to modify the rules in the behavior: can you find a simpler set of rules?
    Can you find a better set of rules? Explain your findings, in all cases.

  12. Implement a FollowObstacle behavior as hinted at at the lecture, and test it

Report due: September 29

Discuss how the tuning of the parameters have been done, and show the values adopted

Specify which sampling time you have used.

Tell which goal points you have used, and show the trajectories made by the robot. Do that in a graphical format if you can, that is, put the (x,y) points generated by your robot in some program to make a plot (Matlab, Gnuplot, etc). You may also include a series of photos shot while your robot moves.

Describe the optional parts, if you did any.