To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.org.us.smartOpen lugnet.org.us.smart in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Organizations / United States / SMART / 211
210  |  212
Subject: 
Cooperative Cybernetic Crate Contraption
Newsgroups: 
lugnet.org.us.smart, lugnet.robotics
Date: 
Wed, 21 Jan 2004 08:23:15 GMT
Highlighted: 
! (details)
Viewed: 
5475 times
  
Cooperative Cybernetic Crate Contraption

In June of 2003 SMART put on a massive display of robots at a local shopping mall. After the show a few of us got together for dinner to decide what would be cool to do for our next show. Instead of dozens of individual robots, we wanted something where many robots interacted with each other and their environment. After discussing several possibilities, the idea we settled on was to have robots that would move crates around a layout. The crates could be empty or contain either of the mini Lego balls (soccer or basket). We called it the “Cooperative Cybernetic Crate Contraption”.

Once we had a standard crate size worked out, we had a couple of brief conversations about what sorts of robots each of us would build, and for a while that was the only communication we had! Our idea was ambitious to say the least: we wanted to build a bunch of robots that cooperated with each other, without planning that cooperation out in detail ahead of time!

Finally in August, four of SMART’s long time members (Mark Kenworthy, Gus Jansson, Barton Place and David Schilling) got together again to see whether we were still on the same page, and to plan for two great opportunities to show the display: at the end of September the Lego Road Show would be in Seattle, and the following weekend, NWBrickCon would be happening. There was still much to do as no one had much more than a prototype or two built. We decided that we’d get together once each week until the first show. Our progress over the next couple of weeks can be see here: http://www.brickshelf.com/cgi-bin/gallery.cgi?f=55847 -- warning, these are very large pictures, 500K each!

One thing that we decided on pretty early was that there would be no communication between different robots so that things would be as robust as possible. Having messages from 12 or more robots flashing around would mean that almost certainly messages would be lost or misunderstood. So robots had to be able to sense their surroundings to determine what was there and how they should act. Later we modified this very slightly so that the “Train stations” could communicate via light sensors with the robot servicing the station.

The time for the shows came faster than we thought was possible. At the Lego Roadshow we had six robots running in a pretty tight space. The following weekend, at NWBrickCon we added the rest of our robots to the display for a total of twelve RCXs! In both cases the layout was bounded by Lego train track. We did this for two reasons. First of all, one of us wanted to build robots that serviced crates that were delivered on a track. And after thinking about balls rolling around everywhere by accident, having a track on the outside of our layout meant that they would at least not be rolling around on the floor much.

The Lego Road Show

The Crate Contraption was just part of a larger layout for the Seattle Lego Roadshow. The whole layout was three levels, with the robots being on the lowest level. The next level up, a space display flanked one side, and a castle display flanked the other, both done by SEALUG members. Finally right above the robot display, covering much of it was a train/town display by PNLTC. Several comments were made about “the robots underground”, “Metropolis”, or “Eloi and Morlocks” :-)

The Road Show layout for the Crate Contraption was as follows: One end of the layout had a dumper that would take full crates off the rail line, dump the balls into a hopper, and then return the empty crates to the train car. The balls would go up a ramp and be dropped into a pneumatic “combiner”. This was essentially a shovel that scooped the balls up, and dropped them again. A small fraction of these balls would roll down a ramp and drop into a waiting, empty crate. Gus’ Forklift would take an empty crate, swap it with one that was now filling, and take the full one to the other end of the table. At the other end of the table was an arm that picked up empty crates from the rail line, put them in a waiting position, and would take the full crates that the forklift was delivering, and place them onto the train car. The forklift, after dropping off the full crate would pick up the empty one to start its loop over again, while the train car with a full crate would head off to the dumper to start that loop again.

There were a lot of problems that our robot display encountered that weekend, mostly because Seattle was having a mysterious lack of clouds that weekend. As if it wasn’t enough that we had sun, because of the layout, there were sections of the layout that were in the shade. A light sensor used to track a line doesn’t work too well when you ask it to follow a black line on a white surface when parts of that surface is in the sun, and other parts are in the shade. This far north, and this late in the year, the sun also was quite low in the sky, making impromptu shrouds less than successful in dealing with the situation. Nevertheless, we managed to have the display working pretty well by the second half of the second day, and most of the third day, but there were lots of little problems even then.

NWBrickCon

The second show we did was the following weekend, for NWBrickCon. To our initial dismay, the request that we not be anywhere near the windows was lost, and our display ended up right beside the windows. Fortunately the weather cooperated with us this weekend, and we had lots of clouds, a little rain. And best of all, we could close at least some of the curtains to block the more direct light that would mess up all the light sensors again.

This time we had enough space to display all the robots. Here’s the NWBrickCon layout. There were three main ‘loops’ in the display. The smallest one was Gus’ forklift taking crates that the pneumatic combiner filled and dumping them into the sorter’s “pitcher”. The sorter then sorted the balls into two crates, one for basket balls, the other for soccer balls. The basket ball crate was picked up by one of Mark’s forklifts, brought to the Arm, which placed the full crate on a rail car. The car was emptied by the Dumper at the other end of the display, and empty crates sent around to the arm again. The soccer ball crate was picked up by a second, identical forklift of Mark’s, brought to a crane, which also put the crates onto a rail car. Since there was only one loop of track around the layout, but two different places where full crates were placed on the track, to prevent a waiting state should one loop pause, there was one additional ‘robot’ that managed a switch, and monitored the two lines, keeping the two stations serviced with cars.

Here are four Overview videos showing the whole layout in action. The first three are normal speed, the last one is sped up by a factor of two.

Overview 1 - 7.8Mb (length: 0:29.5)

Overview 2 - 13.7Mb (length: 0:52.0)

Overview 3 - 6.4Mb (length: 0:24.2)

Sped up overview - 20.4Mb (length: 1:16.7)

(If you need to download the DivX codec, <http://www.divx.com> will have it - either click on the second tab “DivX” or on the red “Download now” button on the ‘flying cow’ ad. Under the comparison table is a link to “Standard DivX Codec(FREE)”. This will let you see the movies in Media Player.)


Robot Descriptions and Videos

What follows is a brief description of the various robots used.

ARM:

The arm was probably the most ‘traditional’ robot of the lot. It moves crates between three positions. Like most of the other robots, its program is set up so that a pretty simple ‘script’ is written for how the robot is supposed to behave in a specific layout. The robot knows how to remove a crate from a train car, or put one back, as well as how to move crates that are placed on the ground. It can even (we found out accidentally) stack two crates on top of each other! The robot senses a crate by using a touch sensor at the top of the claw. When lowering the arm to pick it up, it knows that as soon as the sensor is activated, it’s low enough. This same sensor is also used to determine when a crate has arrived. The Arm must wait for other robots to deliver or pick up the crates. Since there is no communication by the other robots that this has been done, every few seconds the arm lowers and rises again quickly. If a crate has just arrived it waits a few more seconds to let the delivering robot let go and move away before picking up the crate and moving it to its next location.

Here’s a 10Mb video which is 38.6 seconds long showing how the arm operates.


PNEUMATIC COMBINER:

The combiner receives crates of sorted balls, and combines or randomizes them using a pneumatic driven scoop as well as a specially designed slope. The scoop moves balls around in the holding area as it wiggles back and forth to get to the bottom. Then it scoops up a large number of balls, and drops them over a slope which sends balls in random directions as they roll down, back into the holding area. A small number of balls are diverted to a waiting output crate, which will thus contain mixed balls. Four mini pneumatic pumps are constantly running to provide enough pressure for the large cylinders. This is the only robot that used a non-Lego sensor, a pneumatic pressure sensor, to tell when there was enough pressure to continue with its cycle of scrambling the balls.

Here is a 17Mb video which is 1:04.9 long that shows the Pneumatic Combiner in action.


CRANE:

The Crane performs a job very similar to the robot Arm. It can be set up with a simple script, as well as with the positions of a couple of white tiles on the gantry on which it runs. In the configuration we used, it had three positions, one of which was on a train car, the other two on the ground. The Crane waits for crates to be removed. It uses a light sensor looking down. Each of the positions used some retro reflective tape. When a crate covered or uncovered the tape, it knew that it could continue it’s loop. Like the Arm, the Crane would have to wait for other robots to deliver or pick up crates.

Here is a 19Mb video which is 1:13.7 long showing the Crane.


DUMPER:

The Dumper takes a crate full of balls off a rail car, empties it, and puts it back on the car. The balls all end up in a hopper which feeds the balls, one by one to a long, sloping conveyor. The balls roll off the top of the conveyor to whatever the next robot is. In our layout this was the Pneumatic Combiner.

Here is a 12Mb video which is 46.8 seconds long demonstrating the Dumper.


GUS’ FORKLIFT:

Gus’ Forklift is a super robust robotic marvel. Fine engineering is always evident with every robot that Gus creates, and this one is no exception. The Forklift not only follows a line, picking up and dropping off crates at indicated locations, it can also lift the crate high up, and empty it by dumping the contents. A simple script is written for a specific layout that tells the Forklift which side of the black tape to follow, and what to do at each marked spot. Three light sensors point down. One watches for the marks, while the other two are used for tracking the line, one when driving forwards, the other when driving backwards! The back light sensor is doubled up with a touch sensor that measures how high or low the robot’s forks are. Two motors are used for steering, leaving only one to lift the crate and tip it when needed. This is one place where the engineering skill of Gus shows its mark. With the exception of when the robot was very low on batteries, I don’t think this robot ever failed to function as it was designed -- perhaps the only robot on the display to work this well. And even the failure with low batteries was very consistent. This is how well I wish I could design my robots!

Here is a 16Mb video which is 1:01.4 long showing the genius of Gus’ Forklift.


MARK’S FORKLIFTS:

Mark built three identical Forklifts of which two were used in the large layout. The third was a ‘hot standby’ used when the batteries were changed on one of the other two. This Forklift used tank treads for steering. It also followed a line with marks to indicate where actions were supposed to take place. Again a simple script was written for each layout to determine what the indicators meant. These robots were simple and elegant, and did their job well. The forklifts, (Mark’s as well as Gus’) were the workhorses of the display, the most interesting thing to watch. And other than the rail cars, were the only mobile robots we had. Perhaps this will be an area where some other robots can be built for future shows.

Here is a 16Mb video which is 59.7 seconds long showing the other two work horse robots in our display.


SORTER:

The Sorter took a random stream of soccer and basket balls as input and sorted them. The basket balls would roll down one ramp and the soccer balls down another. Distinguishing between the two balls is quite difficult with a Lego light sensor. The soccer ball’s black and white spots are respectively darker and lighter than the basket ball. To sort them the balls need to be rotated as they are being examined. A pulsing of bright/dark/bright means that this is a soccer ball. No pulsing usually means that it’s a basket ball. But sometimes as a soccer ball is rotating, it will line up exactly so that no black spots fall under the sensor. So occasionally a soccer ball will end up in the basket ball crate.

Here is a 9Mb video which is 35.3 seconds long of the Sorter.


TOSSER:

The tosser isn’t really a robot as it doesn’t use an RCX. It takes a hopper full of balls, and tosses them, one at a time, into the next robot in line ... the sorter in our big layout. (For a video, see the red gizmo in the Gus’ Forklift, and Sorter videos.)


TRAIN STATIONS:

The “Train stations” are pretty simple ‘robots’. They consist of an RCX, two isolated sections of track, and a touch sensor. Their job is to stop a rail car at an exact spot so that other robots can remove or replace crates on them. Also, they need to queue up waiting rail cars in case more than one shows up at a time. Hence the two sections of isolated track -- a short one immediately at the spot another robot will service a car, and a longer one for queuing waiting rail cars. The train station was the only exception we had to our “no communication with other robots” rule. They would communicate via light sensors with the robot servicing the station. I’m not sure if this has been done before, but the basic idea is to put two light sensors ‘head to head’ inside a little box to block off ambient light. You can signal the other RCX by changing the light sensor from active to passive for a moment. The LED will turn off, which can be detected by the other RCX. One bit of data can be sent either way. Slow, but for the train stations it worked great. The RCX monitoring the rail line would signal when a car was available, and the servicing RCX would signal when the car was allowed to leave again. The big layout used three stations: one for the Crane, one for the robot Arm, and one for the Dumper. (To see a train station in action, see the Dumper video.)


SWITCH:

The last ‘robot’ in our layout was also one that monitored the track. Since there were two places where crates were loaded onto rail cars (the Arm and the Crane), in order to not have one wait long periods of time, we decided to use two parallel sections of track. The Switch then kept track of which section had cars in them, and which sections needed cars. It also kept the cars from colliding should both stations release their cars at the same time. (No video.)


Finally, if you’ve read this far, there is a “Blooper” video. Yes, our robots didn’t function properly 100% of the time. Some times the failures would be pretty funny. Other times just frustrating. If you’re willing to wait for the download, here’s a 26Mb video of most of the accidents caught on tape. Sadly some of the more interesting ones happened when the camera wasn’t on, but that’s why you need to come see the setup in person!

Originally we called the display “Cooperative Cybernetic Crate Contraption”. After witnessing some of the more interesting bloopers, we started calling it the “Crazy Crate Contraption”!


I want to thank everyone who participated and provided robots for the display, especially Mark, who built the vast majority of the robots! Thanks!

--
David Schilling



Message has 2 Replies:
  Re: Cooperative Cybernetic Crate Contraption
 
(...) Looks like this incredible job didn't got enough attention... Congratulations, spotlighted ! Philo (21 years ago, 26-Jan-04, to lugnet.org.us.smart, lugnet.robotics, FTX)
  Re: Cooperative Cybernetic Crate Contraption
 
Amazing! Purly amazing. Well done all of you! To bad this post seems to have been hidden in the flow of Lugnet. Thanks for the highlight Philo (added a spotlight myself alas I think it's too late for the frontpage). (21 years ago, 28-Jan-04, to lugnet.org.us.smart, lugnet.robotics)

4 Messages in This Thread:


Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    
Active threads in Robotics

 
Different Sensors Available...
14 hours ago
Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR