Object Transportation System Using LEGO Mindstorms RCX

CSC 714: Term project

Team:

Vishnu Dasa Harish Babu		vdasaha[AT]ncsu[DOT]edu
 David Boyuka			 daboyuka[AT]ncsu[DOT]edu
			

Documents:

Project proposal
Intermediate report
Final presentation
Final report
Final code

Updates:

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

Final pictures

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
		

Project Overview

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:
		

Diagram of a sample configuration of this system

References

[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