Project 0 -- Sensing and Movement

Q. I have a question about unspoken project constraints. If you don't tell us explicitly that we can't do something, does that mean it's fair game? Technically, stringing the legos together to form a 10 foot chain satisfies the project specifications, and saves money on handyboards too!

A. As long as the project meets the criteria given, you'll get credit for it. In fact, I really like creative solutions to problems, so you may want to consider if there are ways of approaching the problem that may not be "standard" but get the job done. However, there are two points I should make:

  1. While creative solutions to the projects are great, you need to be very careful about misreading the criteria. Note, for example, that both the description of the project given in class and the one on the web pages make it clear that the robot is to MOVE between the two objects. So, a 10 foot Lego construction that did not move relative to the objects would not meet the criteria (and you would lose points). On the other hand, you could construct a 9 foot, 10 inch robot, start it half an inch from one object, and have it move forward one inch, back one inch, etc., ten times. If you are unsure about how to interpret the criteria, you are better off asking, rather than hoping your creative interpretation is acceptable.
  2. Creating a robot that accomplishes the task is only a part of the assignment. In project 0, this will be a relatively small part; much more of your grade on this assignment will be on working out how your team will function. This project is also intended to help you learn about the hardware and software environment that you have available to you. Rather than trying to construct a robot that simply accomplishes the task but teaches you very little about how to work as a team and how to make use of the hardware and software environment, you might want to consider going the other way -- trying to learn about working as a group to create robots from Lego and programming them in IC on a HandyBoard while constructing a robot that, by the way, accomplishes this task.

Q. Can we use POSIX system calls like fork() and exec()?

A. No. However, if you want to have something akin to multiple processes running on the HandyBoard at once, you can! See the section entitled "Multi-Tasking" in the Interactive C manual. The hypertext version is at http://www.newtonlabs.com/ic/ic_11.html#SEC76