Vishnu Dasa Harish Babu vdasaha[AT]ncsu[DOT]edu David Boyuka daboyuka[AT]ncsu[DOT]edu
11/01/2011 | Learn brickOS. | Common | Completed |
11/04/2011 | Physical construction. | ||
Setup the tracks and the layout. | Vishnu | Completed | |
Build input/output bins. | Common | Completed | |
11/05/11 | Continued lego construction. | ||
Build input/output bins. | Common | Completed | |
Construct the basic delivery vehicle (with pickup/dropoff mechanisms) | Vishnu | Completed | |
Add bin station sensor to vehicle (for sensing when we arrive) | David | Completed | |
11/06/11 | Programming tasks:. | ||
Example codes. | Common | Completed | |
Testing and coding the sensor. | David | Completed | |
Come up with some strategies for meeting deadlines more efficiently than an extreme-worst-case bound approach (factoring in current position, etc.). |
Common | Completed | |
Code the loading/unloading routines for moving objects. | Vishnu | Completed | |
Code the real-time scheduler to control the above two modules. | David | Completed | |
11/16/11 | Add bin station sensor to vehicle (for sensing when we arrive). | Common | Completed |
Code the motion routines (vehicle movement, detecting current position). | Common | Completed | |
Add object pickup sensor (for sensing if objects are present in a bin). | Common | Completed | |
11/20/11 | Add bin station sensor to vehicle (for sensing when we arrive). | Common | Completed |
11/22/11 | Code the real-time scheduler to control the above two modules. | David | Completed |
12/2/11 | Code the real-time scheduler to control the above two modules. | David | Completed |
12/4/11 | Come up with (physical) test cases, both feasible and infeasible. | David | Completed |
Run the tests . | Common | Completed | |
Wrap up and start the write up. | Common | Completed |
Pic-1: Top view Pic-2: Gear assembly for the object sensing arm Pic-3: Sensor assembly and arm for object retrieval Pic-4: Touch sensor to detect arrival at bins Pic-5: Train engine motor and touch sensor Pic-6: The train, output bin and two input bins
Pic-1: Pic-2: Pic-3:
Pic-4: Pic-5: Pic-6:
Test scenarios:
Test-1 Test-2
Test-3 Test-4
Test-5 Test-6
In this project we have constructed an object transportation system using the LEGO Mindstorms RCX. The objects (AA batteries) will be input to the system by hand, being placed into “input bins” which are located around the track. The aim is to deliver these objects to a common “output bin” with a given delivery guarantees. The input bins and output bin are collectively place at regular intervals around the track. The objects to be delivered are divided into “classes” based on their input bin. The number and order of input/output bins is known a priori. The system features an RCX-powered vehicle capable of moving in either direction around this ring, picking up objects at input bins and storing them for transport, and dropping off all stored objects at the output bin. It incorporates sensors to perform these tasks effectively. We have used brickOS [1,2,3,5] as our software platform and used C as our coding language. In order to meet the real-time constraints we impose, we use an algorithm based on non-preemptive EDF with TBS. The application of this algorithm to our system has some nuance, described subsequently. Additionally, we present two new techniques, “TBS WCET reduction” and “preemptive EDF emulation” to improve the performance and feasibility bounds of the basic algorithm.ing language. Below is a diagram of the configuration of this system:
[1] http://brickos.sourceforge.net/documents.htm [2] http://freshmeat.net/projects/brickos/ [3] http://did.mat.uni-bayreuth.de/~matthias/veranstaltungen/ws2004/mindstorms/doc/brickos-howto.html [4] http://shop.lego.com/en-US/Cargo-Train-7939 [5] Introduction to the legOS kernel