Days(& Nights) of Our Lives

Day 1: Parts Sorting

Time: 2-3pm, 1/3/00
Place: Bld38 6th floor lab
Um. Self-explanatory.

Day 2: First Lecture

Time: 10am-1pm, 1/4/00
Place: 34-101
The lecture covered administrivia, contest theme and rules,
and each team received the box of Lego parts and electronic
devices, from which, hopefully, a robot will emerge by the end
of January. We checked the package for missing components,
and called it a day. It looks like a full-speed race ahead,
and we are looking forward to the fun and excitement. Wish us luck!

Day 3: Second Lecture

Time: 2-4pm, 1/5/00
Place: 34-101
Jovrnal Entree Fvr Jan. 5th:

A most exciting day for the jvbilant contestants, for it was time
for the second 6.270 lectvre. It was the best day yet! It was on this
fateful day that Zhenye started taking his 6.270 notes. "Mmmm, yummy",
he declared. The day's menu was filled with appetizing choices of beams
and bricks, with just a hint of tangy pegs to add a more exotic taste to
the mundane mixture of Aramark Dacta produced Ara-Lego (c) parts. Caution:
Small parts not for consumption by children under 12.

During actual lecture, the first chef started out by demonstrating the
evils of false advertising, and was punished by the Dactium god for assault
and battery with deadly and delicious weapons such as the left arm and
steel-reinforced chalkboard, not necessarily in that order. The apprentices
learned that: Thou shall use pegs. They also were hammered with the ancient
Confucius idea that: Thou shall not trade gray for black. The apprentices'
senses were overloaded with sensory info regarding sensors, analog and dialog
alike. Excuse me. Digital. Defenseless students were infused with the
ideas that Vcc = Power and Thou shall castrate 1 pin for every three other
pins.

We took notes of the proper sensor to pin wiring configurations and
learned the magic word is V3L-163D8. Zhenye noted that one of the important
points during today's lecture was that shielding is just as important as
the Geiger counter itself, or, something to that magnitude and direction.

After the lecture the team had a brief huddle and was granted a full
timeout by the team members themselves. The assembly agreed to itself to
reassemble at approximately 6pm inside the Twin Incredible TowerS, also
known as "that Mc something building that is way too nice to be coed",
specific GPS coordinates to be determined.

Under Zhenye's spiritual and locational guidance, Victor went all out and
purchased a locomotion device that somewhat resembles a "Buy-Psy-Kall", an
exotic Iapetusian fabrication that somewhat resembles a bicycle. Seeking
grand master Locke's guidance, Victor also tried to obtain a U-lock from
the locomotion device shop, but was unsuccessful. Attempts at usurping a
copy of ME-lock from Sears was also thwarted viciously by vacuum salespersons.
Finally Victor obtained a super Kryptonite-lock from a hobby shop specializing
in Iapetusian fashions: counter-Superman-Intelligence Agency, also known as
the shop formerly known as counter-Seinfeld-Sup-Int Agency (co-S-Sup-IntAg
(cSSIA)).

On the way to reassembly Victor and Zhenye learned that freezing one's ass off
is not good for one's health. Nor is the same act done to hands good for one's
mental health.

At the secret meeting within a dark and well-lit seminar room inside
Kcormicom the team members discussed whether to take the generalization
approach to labor division, or to take the specialization approach to labor
division, or to take over the world. We decided that Victor shall do more
hardware shmidt than Xixi and Zhenye, and Xixi and Zhenye would divide most
of the software shvidt amongst them two.

Afterwards, we came up with actual combat strategies. Besides discussing
the impossibility of using bulletproof armour and firearms, and the validity
of the nth amendment regarding the right to arm bears when applied to
autonomous robots, two main strategies were reviewed upon reviewal. The first
was extremely defensive: The robot would deploy two gigantic flexible
flexiwings (c), to sweep all the student blocks on our side of campus towards
our robot's main body to be prepared for sorting, and possibly chucking off
the contest table -- as many would like to do to Vest -- and hope to hell
that Hermes R.I.P.

The second strategy, which we are going actively pursueing after, is to
focus on three professor blocks and ditching them in the enemy's jail. In
order for this to transform from dream to reality, we need a robot that's
mobile and agile and fast and quick and not slow. On our way to Harvard the
robot can also pick up some student blocks and process them on the way, to
further ensure our place in the stars. As time ran out, our hard efforts
were rewarded with joyful laughter and music-making nextdoor from one of
the 6.270 organizers. The reassembly was formally dissolved in their own
laughter right then.

Zhenye does not know what his teammates did for the rest of the night.
Zhenye notices that referring to himself in third person is quite addictive.

Disclaimer: The previous log may not accurately reflect the views of your
local TV station. Please consult Angstromsoft on issues of removing this
channel from your brainwave.

Day 4: First Recitation

Time: 2-3pm, 1/6/00
Place: 34-301
Today is the first day of recitation, and under Anthony's instruction,
our team shared some ideas with the other teams in our recitation.
We also planned the agenda for the rest of the weekend, and transferred
the lego parts to Victor, who has read the course notes and started to
build simple lego units.

Day 5: Third (and Last) Lecture

Time: 2-4pm, 1/7/00
Place: 34-101
Zhenye and Xixi went to the optional Java crash course in the
morning. We decided to let Victor to keep the Box of Legos
since he'll do most of the work on the hardware.
Victor also attended the soldering demonstration at lab that
evening and consulted the TA (and later his father) about our
strategy; browsed through the course notes and read the
chapters on rules, sensors, and lego building carefully; built
a gear box; drop tested several braced structures, and
discovered the minimium bracing pieces needed for a lego
"box" to survive a baseball-pitch-type throw against the wall.
Both Victor and Xixi subscribed to the 6.270 zephyr list.

Day 6: 1/8/00

Journal Entree fur Elise jan. 8th:

A most exciting day for the jvbilant contestants, for it was time for
the first weekendday during the torturous weeks of 6.270. It was the best
day yet! It was on this fateful day that Zhenye picked up 6.003 notes and
then dropped them almost instantly. "public String mmmmm = "yummy";", he
declared. Zhenye did not do jack shmidt except play around with Java and
drown in his own nose blood, not necessarily in that order. He also came up
with cool names for the robot such as "Ride the Lightning", "Placebophilia",
and "chuck West". "'chuck West' is a f---ing killer!", Zhenye exclaimed.
...

Day 7: 1/9/00

Zhenye printed out all the 6.270 emails and documents. He also
planned the next meeting. We decided to meet at the lounge at
Next House. Zhenye and Victor talked about more strategies.
Xixi continued her work on java, and 6.270 tactics. She reread
her notes from 6.004 that are relevant for this contest (robot ant).
She also developed the possible round-shaped robot tactics.
Victor continued playing with lego. More progress is made.

Day 8: 1/10/00

We had a discussion about general strategies and actual design
at Next House around 12:30. Victor brought the lego units he's
built so far including the arm and mouth piece. Zhenye suggested
some turning and rotation structures and Xixi mentioned possible
unexpected situations. We also finished the first problem set,
which is due the next day.
At two we set off for lab to check out the contest table and to
solder the motors and sensors. The video of last year's competition
was shown in the lab and gave us a few more ideas of how the arm
mechanism would work, especially those of the Robots "Absolut"
and "Free Willy". "Hermes", the winner, inspired us to try for strength
and speed. Victor suggested more motors and a low gear. After a couple
of hours of more soldering we left the lab for good at about 8pm.

Day 9: 1/11/00

A most exciting day for the jvbilant contestants, for it was time for
the second 6.270 recitation and it was on the second Tuesday of the
year! It was the best day yet! It was on this fateful day that Zhenye
picked up a capacitor-infested Sound Blaster 16 board from Fenway Haus
off reuse, and commented that //a bike serves damn well.

In recitation we discussed each team's plans and afterwards we went up
to The Lead Vapor Hell (makes you wonder WHERE we came UP FROM), where
the Soldering Team, consisted of all three members of Team 8, melted at
the sight of the soldering irons, then carefully adhered to the rules
of glueing, and sadly shrunk at the sight of heat guns, a.k.a. hair blow
dryers.

Day 10: 1/12/00

Zhenye and Xixi worked in the lab today to fix the battery packs to work
with the robot, and were later joined by Victor. Zhenye and Victor went to
Radioshack and bought 3 8200 rpm motors to make a faster and more agile
robot. Victor built two more wheels and the small cart.

Day 11: Snowstorm! 1/13/00

Today the team braved the cold for Recitation, which ended after
20 minutes due to lack of Lego participation and pure ennui. Thus we
trekked upstairs to lab, put together the serial cable, dissected the
baseplate, legolized some motors, and had a discussion about
arragement of the wheels. Back out in the snow we went and made
plans for Victor and Xixi to meet at Next House the next day.

Day 12: 1/14/00

Victor and Xixi met in Next House 2nd Floor east lounge at about 1:30pm
and the meeting lasted for about 30 minutes.
We briefly discussed usage of the sensors and looked over Victor's
design, then moved on and listed the software modules we need to write.
We came up with 14 smaller parts, tentatively splitting up the work into
a ratio of 6:6:2. Victor gets the 2 because he would have to both finish
the robot construction and proofread the code written by others.

Part of the module standards was also decided--specifically, the
numbering of the sensors and the motors, so that we could name the
variables in a way that wouldn't confuse the Dacta out of us.

The mock competition would be on 8 days from now, so in order to
finish up the work, we planned to do one module/person/day and the whole
robot structure (w/o the sensors mounted) this weekend. This, hopefully,
will make the robot runable on Thursday, leaving 2 days to debug it.

The details of the 14 modules and the standards are as follows:

  • overall structure
  • initialization (orient the robot, shoot out the 2 long arms
    and the little cart)
  • line following procedure (assuming we have 3 sensors to sense the
    color of the ground, and 2 sets of 2 motors to control the speed and
    direction)
  • block sorting (2 light sensors will be used to distinguish the color,
    and a motor will rotate a rotating door either clockwise or counterclockwise
    to move the blocks to the correct place)
  • first half rush (orient, position, and go for the pyramid professors)
  • going into the jail (move down the pyramid, get a third prof, line
    follow to the opponent's jail)
  • release prof and students (check prof/student chamber is in jail area
    fully, but the other wheel is not (4 sensors on the 4 corners of the
    chamber, and a fifth one near the other wheel), check time is close to 55
    seconds, open the door to depossess)
  • internal navigation mapping and time line (to help the robot to keep
    track of what it is doing and when)
  • defense strategy against ramming (back up, turn, move away)
  • def. strat. for getting stuck
  • def. strat. for no prof. blocks on pyramid (move around the pyramid
    to sweep whatever blocks that are possible)
  • can't get into jail A (time permitting, move back to own territory)
  • can't release profs. (go back)

motor numberings:
  • 0: left wheel 1
  • 1: left wheel 2
  • 2: right wheel 1
  • 3: right wheel 2
  • 4: sorting mechanism
  • 5: back door (releasing the profs)
  • 6: left big arm
  • 7: right big arm
  • 8: small arms (may be dropped if Lego runs out
  • 9: little cart
  • 10: Chuck WEST!
  • 11: Small cart releasing mechanism

sensor numberings
  • 0: (body sensors--to orient) back left (touch)
  • 1: (body sensors--to orient) back right (touch)
  • 2: (body sensors--to orient) left corner (touch)
  • 3: (body sensors--to orient) right corner (touch)
  • 4: Line Following sensors--left (light)
  • 5: Line Following sensors--center (light)
  • 6: Line Following sensors--right (light)
  • 7: sorting sensors (reflective)
  • 8: sorting sensor (reflective)
  • 9: Orientation sensors (light....find the polarized light)-north
  • 10: Orientation sensors (light....find the polarized light)-east
  • 11: Orientation sensors (light....find the polarized light)-south
  • 12: Orientation sensors (light....find the polarized light)-west
  • 13: IR sensors to find the other robot-north
  • 14: IR sensors to find the other robot-east
  • 15: IR sensors to find the other robot-south
  • 16: IR sensors to find the other robot-west
  • 17: Small cart sensor to make sure it passed the pyramid
  • 18: big arm sensors (to know that it's fully extended) left (lever)
  • 19: big arm sensors (to know that it's fully extended) right (lever)

Day 13: 1/15/00

A weekend day with the members all working on other things.
Zhenye was involved full time with the Mystery Hunt and Xixi went
home for the day. Therefore, Victor decided to take the day off.
In short, nothing was done today.

Day 14: 1/16/00

Victor did what he could building the whole body of the robot
without the Controller Board that Will Be Here Soon(tm), while
checking out zepher messages to and from the instance list,
finding out about methods of calibration, people using
rubberbands on pully systems to create a trackmill ro get
blocks, and teams having trouble with Virtualbot, among other
things. Xixi came back from home, re-read the coursenotes again,
flipped through the Java tutorials, and printed out the 6.270 API.
The rest of her time was mainly occupied with attempts at fixing,
i.e. wrestling with, her computer. She later tried to do some
espionage on-line but didn't get much other than news of the boards
being delayed again and teams trying to use rubber bands on the
wheels instead of the tires. Zhenye acccomplished Mission Mistery
Hunt and went home for the night.

Day 15: "I have a dream" 1/17/00

I am happy to join with you today in what will go down in history as
the least significant piece of shit written in the history of our
nation.

Go back to East Campus, go back to Burton-Conner, go back to pika,
go back to Phi Gamma Delta, go back to Senior Haus, go back to whichever
inner city slum housing project you may call home, knowing that somehow
this situation can and will not be changed.
Let us not wallow in the beaver appendix of depressants. I say to you
today my fellow sufferers - so even though we face the difficulties of
yesterday and the day before yesterday, I still have a dream. It is a
dream somewhat, but not really, rooted in the Canadian dream. Actually,
I lied: I was having R.E.M. sleep. But just pretend you didn't hear that,
you hear, yo?

I have a dream that the 6.270 contestants shall all acquire working
controller boards, regardless of race.
I have a dream that the 6.270 contestants shall all acquire working
controller boards, regardless of class.
I have a dream that the 6.270 contestants shall all acquire working
controller boards, regardless of intelligence.
I have a dream that the 6.270 contestants shall all acquire working
controller boards, regardless of sex.
I have had a wet dream today.
I have a dream that the 6.270 contestants shall all acquire working
controller boards, regardless of nationality.
I have had a nightmare today.
I have a dream that the 6.270 contestants shall all acquire working
controller boards.

Day 17: 1/19/00

Zhenye worked on our 270 team locker, and created a suitable file
structure, including directories. He also worked on more java.
Xixi started to write java codes, but didn't go too far because Victor
has not specified the hardware specifics enough for her to write.
Victor worked on his lego (still >_<). The three of us held telephone
conferences and discussed the universal issue of which controller board
to take, i.e., Skiff or Handy? We tried to downsize the motors, but in
order to accomplish everything in the scheme, at least 6 motors (2 for
wheels, 1 for sorting, 1 for long arms, 1 for little cart, 1 for mouth
piece) and two servos (back door and moving the long arms) are necessary.
Thus, we decided on the Skiff board, its the potential to break down
acknowledged and much feared. We agreed to think of a back-up plan, i.e.
what functions should be dropped if we need to simplify the robot (and this
will be good if we end up not able to implement everything).

Day 18: 1/20/00

After recitation, the teammates printed out instructions for assembling
the battery charger and IR beacon, and acquired the components of the
two aforementioned devices. Zhenye tried to carry out the soldering in
the lab while Victor and Xixi attended pistol practice, but couldn't find
a free soldering iron so he snagged some lead from the lab and went back
to his dorm to do the soldering. He got as far as finishing the IR Beacon,
minus a couple of missing resistors that were resisting discovery.
5th and last recitation. check.
went to lab and picked up the skiff board. check.

Day 19: 1/21/00

More soldering.
Victor is nearly completing assembling the main robot body.

Day 20: 1/22/00

The three of us again conspired at Next House this morning around 10
and beheld the mostly completed robot (the boards and IR are not on it
yet). Because of the recent emails of Deep-fried Skiffs, we came to the
decision of switching to the Handyboard. We modified our design so that
now only 4 motors and 2 servos will suffice: motors for the small cart,
left and right wheel, chuck West; servos for the sorter and the small cart
when it opens 2 arms and push the 2 profs on the pyramid onto our campus.
All this and the fact that the Handy board not only has more powerful motor
ports and is lighter in weight, we believe our life will be easier with the
Handy.
We dispersed at noon. Victor continued with robot building and
modifications, Zhenye prepared to start coding, Xixi went to the lab
hardware shop, obtaining soldering equipment, more sensors, and exchanged.
the untouched Skiff for the Handy and battery rechargers. We all started
to read the Interactive C documentations for the Handy board.

Day 21-22: 1/23-24/00

None stop coding.
The overall structure would be as follows:

I. Main controller
A. Background threads
1. Shaft Encoder Counter
a. Use global variable SHAFT_READINGS to record movement
2. Global Map
a. Keep a copy of a structure of three variables (campus,
orientation, and line number (or two jails)
b. changes should be made by calling this
c. give other functions the value upon request
3. Time Counter
a. count from 0 to 60
4. Blocksorting()
a. a touch sensor will sense if a block has arrived
b. the two light sensors will check color of the block
c. one of the two doors to the chambers will be opened.

B. exexcutables
1. Time line, Part I (aka initialization)
a. orient() (primitive)
i. get light sensor readings to determine side
ii. call turn(1, 1) 0 to 3 times to turn
iii. register the orientation in map
b. littlecart()
i. run for its life
ii. sense that it has passed two yellow lights
ii. open the peacock fan
iii. run back
c. get to the middle of the board
i. call turn(1, 1) (prim)
ii. call linefollow() (prim)
iii. update map (our campus, face south, line number x)
iv. call turn (1, 0) (prim)
v. (call linefollow() (prim)
vi. update map (our campus, face east, line number y)
d. call defense1 (untangle from wall/enemy) if any function
return error 2
e. call defense3 (NEWLY INVENTED) if any function reuten error 1
purpose: to find our way if got lost
i. using light sensors and map, find which bright light
source belongs to us.
ii. use run() to go back to our jail
iii. loop back to 1c.

2. Time line Part II
a. get the two profs
i. call turn(0,1) (prim)
ii. call linefollow() (prim)
iii. update map
b. cross mass-avenue
i call turn
ii. call run() (prim)
c. Defense strategy is similar to 1

3. Time line Part III
a. get to other guys jail
i....(similar to 1c or 2a)
b. call jailrelease() (prim)
i. Check sensors to make sure we are in teh correct place
ii. Check time == 55
iii. open the door
c. for 3a, defense strategy is similar to 1 and 2.
d. for 3b, if map shows we should be in enemy's jail, yet
sensors failed to confirm us for 10 seconds, then call
defense2 to go back to our campus, and release after that.

C. Sub functions
1. int turn(int d, int flag)
parameters: d (direction to turn), flag ( whether to preform line
check)
return: 0 for succes, 1 for failed (only if flag is on)
description: turn the robot to the left or right, for flag is on,
use line on ground to guide, for flag is off, use light sensors
reading to orient.

2. int run(int destination)
parameters: destination (number of the place we wanna go)
return: 0 for success, 2 for stuck
description: use map info to find the color of the place we are
go to find, and just run both motors at 80 until sensors read the
correct terrain characteristics

3. int linefollow(void)
parameters: void
r: 0 for success, 1 for lost direction, 2 for stuck
d: line follow

4. int got_stuck(void)
parameters: void
r: 0 for stuck, 1 for not
d: check shaft values to determine if cart is really moving

5. int read_analog(int sensor)
parameter: sensor (number of sensor)
r: 0 = white, 1 =black, 2 = violet, 3 = yellow, 4 =red

D. Global/psuedo-global variables
1. SHAFT-READINGS
a. number of shaft movements observed
2. map
a. structure of three variables
3. access through the global map function
3. time
a. access through the background time function
4. calibrations
a. SENSOR_RED, SENSOR_YELLOW, SENSOR_BLACK, SENSOR_VIOLET

In the evening Victor finally finished the construction of the robot
and we decided to test it early the next morning.

Day 23: 1/25/00

Round one of the contest. We were disqualified because our robot was
too big. After that, we stayed in the lab and tried to fix it. In the
beginning, nothing seemed to working. Both the hardware and software
were not working.

Day 24: 1/26/00

We spent all day until impounding to try to fix the robot. First, we
found out that the sensors and the motors are not hooked up to the
controller board correctly, and then we found out that some sensors are
not behaving as well as we would like them to be. After some resoldering
and regluing of the robot, the sensors and the motors work well. Then we
found out that the codes we have were not functioning properly.
Especially to turning function does not work, and this was not fully
solved before impounding. The most tragic thing, however, was that our
robot's battery ran out shortly before impunding, and so we did not even
have a chance to be qualified.


-->home