Synchronous MOC Robots
Using the synchronous-reactive model of computation, students will build various controllers for the Lego Mindstorm robots.
May 30, 2006:
GME Tutorial Sessions
May 31, 2006:
Worked on GME Lab 1. Building models with combinational logic.
June 1, 2006:
Worked on GME Lab2. Building a system using components and operators. Latex software configuration and introduction.
June 2, 2006:
- Continued GME tutorials, and had a lecture on graphs with Ethan
- Discussed the different models of computation.
- Developed a UML model of a Bicycle.
- Viewed a presentation on "Improving Robot Control" with humans.
June 5, 2006:
Met with Dr. Karsai for a weekly progress meeting. Installed and configured the Signal programming language and began working on tutorials. After finishing the tutorial, we worked on coding a simple up counter and achieved successful results. Finally, we began work on expanding the counter to an up/down counter with asynchronous reset and also were given a brief introduction of the smoles software by Ethan.
June 6, 2006:
Continued working on the up/down counter with the Signal programming language, and achieved successful results. Began work on three other problems to program.
- Write a signal program using a subprocess
- Write a signal program which has a causality violation
- Write a singnal program with a synchrony violation
Program one was completed, however the results were not as expected and needs to be debugged. Program two was started.
June 7, 2006:
Continued working on the assigned programs. The causality violation program was completed with expected results. Attempted debugging the subprocess program but were unsuccessful. Continued working on the synchrony violation program but were not able to get it working. Began practicing with the Latex environment.
June 8, 2006:
Met with Ethan to discuss accomplished work. Worked on debugging the subprocess program, and were successful in acheiving desired outputs. The problem lied within the actual generated java code which called one of two functions to read in from the file and was feeding in erroneous inputs. Ethan was able to fix the bug. Discussed the synchrony problem further with Ethan and began rewriting the code. Initial approach was incorrect. Began looking over the "The Synchronous Languages Twelve Years Later" paper. Worked on presentation material for Monday's meeting.
June 9, 2006:
Met with ethan and began working with a robot. The goal is to be able to generate code in C, and use that to give directional instructions to the robot. In order to execute anything, we had to familiarize ourselves with manuevering in Unix. Also, worked on the presentation that will be given Monday on the Signal language.
June 12, 2006:
Met with Dr. Karsai for weekly progress meeting. Gave a presentation on the SIGNAL programming language. Continued working with the lego mindstorm robot. Implemented movement, collision avoidance, and are currently working on fixing the forward movement so that the robot does not stray from its path.
June 13, 2006:
Continued working with the lego mindstorm robots. Implemented logic that allowed the robot to move in a straight line. Began working with the rotation sensors to optimize the robots movement. Code written for the rotation sensors needs to be debugged. The robot displayed erratic behavior.
June 14, 2006:
Continued working on moving the lego mindstorm robot in a straight line. Implemented a rudimentary fix. Met with Ethan and began discussing PID controllers. Using a PID approach, we will build a controller which should manipulate the plant by changing the speeds of the motors when lateral movement is detected, regulating the robot and keeping it in a straight line.
June 15, 2006:
Worked on understanding the theory behind PID controllers and began to look for the error coefficients to make the robot adjust itself. Began to write the code after obtaining coefficients.
June 16, 2006:
Watched the presentation on Detecting Sniper Rifles, and in the afternoon Ethan helped us work out the coefficients in our code so that the robot rolls in a relatively straight path. At the end of the day we were mildly successfull in getting this accomplished.
June 19, 2006:
Continued working with the coefficients, also we began learning about Ziegler-Nichols Method for PID control tuning. We believe that this will allow us to perfectly control how straight the robot vehicle will roll.
June 20, 2006:
After working with the Ziegler-Nichols model for fine tunnig, we realized that it should be appliled to a system without an integrator and our system has an integrator, so the method could not be applied. We were able to get the robot going as straight as possible with the PID controller could not fine tune it because we have no way of gathering data to monitor the systems behavior. Currently we are putting the PID controller on hold until we can get a bluetooth interface to communicate data back to the PC for fine tunning.
June 21, 2006:
Met with Ethan to brief him on current results. Began using the light sensors to get the robot to move in a straight line. With these light sensors the robot will emit a light and based on the reflection, it will respond to orient the robot's direction. Reconstructed the robot and added a light sensor to it. Began looking over the API commands for light sensors to begin writing code.
June 22, 2006:
Wrote a program for the robot to follow a straight line path specified by a strip of colored tape. Collected all sensor values for the different colors on the specified path. Ran into a problem where the code for the robot got stock in an infinite loop preventing program termination. The program was continuously switching between three function calls and make it imposible for the control structure to accept a termination request.
June 23, 2006:
Began debugging the infinite loop problem. Attended a presentation by Ethan Jackson on Adavances toward a Formal Foundation for Domain Specific Modeling Languages. Continued debugging the infinite loop problem.
June 26, 2006:
Continued working on the infinite loop problem; started over since code was messy and hard to debugg. Began writing specific functions to complete the challenge problem and create a better structure within the code. Made sure that the program could be terminated at all times upon user request.
June 27, 2006:
Continues working fuxing the problem of the different states of movement along the Chutes and Latters board. Met with Ethan to discuss the new challenge that we will work on during the second half of the summer. The new problem is to utilize both the light and rotation censors so that we can follow strips of tape positioned considerable distances apart, down a hallway and around corners.
June 28-29, 2006:
We spent both of these days writing the Midterm paper and preparing for out midterm presentation.
June 30, 2006:
Gave the presentation at an extended pizza lecture.
July 5, 2006:
Ethan sent us two publications of papers dealing with S.M.O.L.E.S. in order to be prepared for working with this language. Also met with Ryan to discuss ways to tweak the PID controllers.
July 6, 2006:
Met with Ryan to discuss the communication aspect of the bluetooth serial device.