Webots: Getting Started

Read

Getting used to Webots

  1. Create a world:
    1. Create the world kiki.wbt from Section 4.1 in the User's Guide
    2. Using default.wbt as a template, create a maze in which you have a single Khepera robot without any extension turrets. If you have troubles, consult the User Guide. Save your environment as myobstacle.wbt.
  2. Create a controller print.c that reads sensor values and prints them to the screen.
  3. Create an open-loop controller openloop.c, that does the following
    1. Has a function that given a certain distance d, has the robot move straight for d meters
    2. Has a function that given a radius, makes the robot drive clockwise around in a circle of radius r meters from the current position. If the argument is negative, the robot should drive counter clockwise around the circle.
    3. Has a function that given a length l and an integer n moves the robot around in a square with side length l meters n times.
    4. Includes code that demonstartes out each of the above functions.
  4. In the last problem, the square trajectory was not perfect. Using sensors and PID control, make a robot controller (squares.c) follow the square trajectory.
  5. Implement a Braitenberg type 2 vehicle in braiten2.c that exhibits obstacle avoidance behavior using only two sensors and excitatory connections.

Submit all of the following individually using assignment name webots0.

Subsumption

In this section which will be completed as a group, you should implement a controller for the following problem from the midterm: Design a reactive wall-following agent that follows the perimeter of a room, starting from some interior point in the room. You robot should find the nearest wall and start following it. Your robot should also avoid open space, and not bump into any obstacles. We also would like our robot to follow a light source.

Your solution should have layers that do the following, in order of priority from lowest to highest:

  1. Follow closest wall at a distance of d meters: using PD control
  2. Navigate through corners: by calculating the trajectory using the kinematics of the robot
  3. Avoid obstacles and open space (i.e. be attracted to the walls): using potential fields
  4. Follow light source of at least intensity i: using Braitenberg Vehicle 4 type architecture
Each group member should write one of the layers individually. Remember that each level may need different inputs.

After each individual layer is finished, as a group you should

  1. Write the arbitration layer
  2. Develop a world and demo of your robot solving the task described

Writeup

Describe the architecture of your robot, submit your code files, and include a pointer to the video of your wall-following robot. Submit using assignment name webots1.
Jeffrey R.N. Forbes
Last modified: Fri Oct 18 10:14:44 EDT 2002