Monday, December 14, 2009

Let’s build a battlebot

We’re out of hardware projects: Zippy is waiting entirely on software now, which means we’d like to find a hardware-intensive project to fill the gap. What’s hardware intensive? Battlebots! We’re going to design a battlebot concept and see where we end up. We’ll probably take an off the shelf kit and add the armor and weapons.

Zippy status update: Hardware complete, pending software interface

Battlebot status update: Awesome

Monday, October 5, 2009

Jeep Restart: Keep It Simple Stupid

We got a new addition to Robot Day: Kris, who teaches robots to 5th graders at Jefferson Elementary.



Kris has come to pitch in just as Daniel has gone MIA for a while (he just had a baby). Kris is new to the projects so to get us started we did some constructive destruction on the Jeep. We ripped everything out and we're going to redo it from scratch, but simple.



The new motto is: Keep It Simple Stupid. I guess that was sort of our motto last time, but this time we're also going to keep it modular and remove fail-safes. Why? Because its easier and the government isn't watching. For example, why have a backup brake actuator when you can just have one and hope for the best? Good plan. Actually, it will probably end up more reliable if only for the reason that will be easier to figure out what's going on at any moment once the spaghetti is cleaned out. There's nothing more scary than a giant robot that has a mind of its own. And in any case, it will be fun.

Scott spent all day battling with sscanf until he realized he just needed to update the firmware on the Roboteq. Once the software is adapted it will be great because the same software will be able to control AION the jeep, Zippy the golf cart, or Johnny the test bot.

Wednesday, July 29, 2009

Focus shift to Zippy - robot day this weekend

We have a robot day this weekend and we're shifting focus to Zippy. Zippy is a golf cart onto which we've already installed braking and steering actuators. We now are going to turn this into an internet-based semi-autonomous (that is, driver goal assisted) vehicle.

Zippy drive-by-wire project review:

Hardware:

- test and confirm that drive by wire interface works.
- actuate forward and reverse
- actuate accelerator bypass relay
- perform and record ammeter test on Roboteq power draw while off

Software:

- Identify and prepare Player server box.
- Flush out software design and goals

Saturday, June 13, 2009

We took 2nd!

We placed 2nd and got a silver medal for Defconbots at Robogames 2009.






Here's the final round (below) - it came down to us versus Team Yuzhik again like last year. They did really well and were very accurate.

We did have a strength that Team Yuzhik didn't, but unfortunately we didn't have an opportunity to exploit it. Our system was very adaptable to quick calibration and changing conditions (because we have two cameras). Earlier in the day we noticed that Team Yuzhik's turret was extremely sensitive to calibration. Their gun was so accurate that if the calibration was even slightly off there was no hope of hitting a target if it didn't agree with the calibration the first time. This didn't come into play, however, because the competition did not require that the guns be moved and re-calibrated.

The targets were very springy and kept popping back up - it's sort of funny. Our final time was about 2.6 seconds per target. We're the gun on the right.

Thursday, June 11, 2009

On the way to Robogames

Our best score this week was 17.9 seconds (that's 1.2 seconds per target).

Here's a 23 second run I caught on tape:


Now we're on our way to Robogames!

Monday, June 8, 2009

We ran out of bullets!

It's a mad dash today to pick up more bullets as we ran out over the weekend. Apparently our gun is pretty particular about its bullets and if they're not shiny they'll jam.

We increased the resolution of the mounted camera 4 times this weekend as we attempted to get tighter and more calibrated control. Our best times (listed below) got down to 2.27 seconds per target! Consistency still needs some work.

In the first time below, note that there were 28 attempts on the 15 targets. This conceals another layer of failure in that each attempt includes the initial movement (and a fire), and sometimes a subsequent correction movement (and a fire). So there were 28 initial fires, then 13 corrections and fires, for 41 total. That leaves 36% accuracy.

The second attempt is much worse (but obviously shot with much higher frequency) as it attempted 111 times in order to knock down the 15 targets. That's 14% accuracy. If we bring that up, we'll benefit from drastically reduced times.

scott@dell-desktop:~/playeratat/log$ perl times.pl < playeratat-20090607135034.log
Description , Count, Time (ms), Avg (ms)
TOTAL , 1, 34046, 34046
auto_target:acquire_targets , 28, 0, 0
auto_target:acquire_targets_mounted , 71, 4, 0
auto_target:fire_mounted , 13, 2880, 221
auto_target:fire_mounted_update , 28, 1592, 56
auto_target:fired_acquire_targets_mounted , 28, 0, 0
auto_target:fired_acquire_targets_static , 28, 8, 0
auto_target:get_nearest_target , 28, 0, 0
auto_target:get_nearest_target_mounted , 71, 1, 0
auto_target:move_to_target_mounted , 71, 4769, 67
auto_target:move_to_target_mounted_update , 71, 17667, 248
auto_target:move_to_target_static , 28, 2875, 102
auto_target:move_to_target_static_update , 28, 1265, 45
auto_target:static_fire , 28, 6078, 217
auto_target:target_attempt , 28, 38183, 1363

scott@dell-desktop:~/playeratat/log$ perl times.pl < playeratat-20090607140427.log
Description , Count, Time (ms), Avg (ms)
TOTAL , 1, 37764, 37764
auto_target:acquire_targets , 75, 0, 0
auto_target:acquire_targets_mounted , 140, 9, 0
auto_target:fire_mounted , 36, 8317, 231
auto_target:fire_mounted_update , 75, 3806, 50
auto_target:fired_acquire_targets_mounted , 75, 0, 0
auto_target:fired_acquire_targets_static , 75, 4, 0
auto_target:get_nearest_target , 75, 0, 0
auto_target:get_nearest_target_mounted , 140, 2, 0
auto_target:move_to_target_mounted , 140, 10372, 74
auto_target:move_to_target_mounted_update , 140, 34807, 248
auto_target:move_to_target_static , 75, 6024, 80
auto_target:move_to_target_static_update , 75, 3157, 42
auto_target:static_fire , 75, 16406, 218
auto_target:target_attempt , 75, 86372, 1151

Thursday, June 4, 2009

Times breakdown

Results today

playeratat-20090604201502.log: 263 329 66
playeratat-20090604200735.log: 99 130 31
playeratat-20090604192852.log: 905 952 47

48 seconds average (15 targets)

3.2 seconds / target




scott@dell-desktop:~/playeratat/log$ perl times.pl < playeratat-20090604200735.log
Description , Count, Time (ms), Avg (ms)
auto_target:target_attempt , 27, 34798, 1288
auto_target:move_to_target_static , 27, 3849, 142
auto_target:acquire_targets , 27, 0, 0
auto_target:fire_mounted , 9, 1996, 221
auto_target:fired_acquire_targets_static , 27, 1, 0
auto_target:move_to_target_mounted_update , 50, 14657, 293
auto_target:fire_mounted_update , 27, 1286, 47
auto_target:static_fire , 27, 6160, 228
auto_target:fired_acquire_targets_mounted , 27, 0, 0
auto_target:get_nearest_target , 27, 1, 0
auto_target:get_nearest_target_mounted , 50, 0, 0
auto_target:move_to_target_static_update , 27, 1103, 40
auto_target:move_to_target_mounted , 50, 3418, 68
auto_target:acquire_targets_mounted , 50, 3, 0

scott@dell-desktop:~/playeratat/log$ perl times.pl < playeratat-20090604201502.log
Description , Count, Time (ms), Avg (ms)
auto_target:target_attempt , 56, 73868, 1319
auto_target:move_to_target_static , 56, 5462, 97
auto_target:acquire_targets , 56, 0, 0
auto_target:fire_mounted , 26, 6267, 241
auto_target:fired_acquire_targets_static , 56, 3, 0
auto_target:move_to_target_mounted_update , 104, 31188, 299
auto_target:fire_mounted_update , 56, 2739, 48
auto_target:static_fire , 56, 12876, 229
auto_target:fired_acquire_targets_mounted , 56, 0, 0
auto_target:get_nearest_target , 56, 0, 0
auto_target:get_nearest_target_mounted , 104, 2, 0
auto_target:move_to_target_static_update , 56, 2767, 49
auto_target:move_to_target_mounted , 104, 6338, 60
auto_target:acquire_targets_mounted , 104, 6, 0

scott@dell-desktop:~/playeratat/log$ perl times.pl < playeratat-20090604192852.log
Description , Count, Time (ms), Avg (ms)
auto_target:target_attempt , 108, 128941, 1193
auto_target:move_to_target_static , 108, 8342, 77
auto_target:acquire_targets , 108, 0, 0
auto_target:fire_mounted , 36, 8067, 224
auto_target:fired_acquire_targets_static , 108, 5, 0
auto_target:move_to_target_mounted_update , 203, 61551, 303
auto_target:fire_mounted_update , 108, 5566, 51
auto_target:static_fire , 108, 24731, 228
auto_target:fired_acquire_targets_mounted , 108, 4, 0
auto_target:get_nearest_target , 108, 0, 0
auto_target:get_nearest_target_mounted , 203, 12, 0
auto_target:move_to_target_static_update , 108, 4143, 38
auto_target:move_to_target_mounted , 203, 11678, 57
auto_target:acquire_targets_mounted , 203, 8, 0

Monday, June 1, 2009

Our best time ever: 2.5 sec per target

Our best time ever

Time trials today with 15 targets:

filename / startime / endtime / duration / per target
playeratat-20090531143039.log: 588 960 372 24.8
playeratat-20090531145100.log: 29 117 88 5.87
playeratat-20090531154751.log: 21 64 43 2.86
playeratat-20090531160845.log: 124 162 38 2.53

Best time: 2.53 per target

Today was the first time we completed time trials with the new turret.
It was also the first time we shot down 15 targets without reloading with any turret.

I didn't take any videos, but I should definitely do that next time we test.

Excellent results!

Tuesday, May 26, 2009

Fastest gun in the west

Maybe.

Major progress this weekend with lots of welding too.

Laser mounted to gun...





Gun mounted to metal...




Metal mounted to turret...




Turret mounted to base...




Todo:
Lots of time trials

We've just got confirmation that we're officially accepted into the contest now. This new turret is significantly faster than the previous version - very exciting.

Tuesday, May 5, 2009

Testing

Reviewed the results of timing and conducted more tests.

Also we geared up the faster new gun – should be ready to go this week.

In reviewing the timing, the majority of time is lost on missing the first shot. Mechanical movement time makes up the vast majority of time consumption, especially corrections, followed by shot time itself.

In reviewing time consumption is was clear that the number of movements per target was very high due to incorrect targeting initially.

The new gun targeting moves faster, but the mechanical moves still take up most of the time (and always will). The key is to properly match the pointer to the blob correctly the first time, so no corrections are necessary. Then improvements in mechanical speed will have a significant impact on the overall times.

Monday, April 20, 2009

TAKING IT UP A NOTCH!

Only 6 weeks left until we go to Robogames. TAKING IT UP A NOTCH!

We've initiated time trials!

Early time trials with all 14 targets are all over the map due to manual gun reloading. It's rediculous! The thing runs out of bullets. This is very similar to our experience at Defcon.

logfile: start_time end_time difference(seconds)
playeratat-20090419143614.log: 413 626 213
playeratat-20090419145133.log: 114 222 108
playeratat-20090419152502.log: 278 647 369
playeratat-20090419153853.log: 518 693 175
playeratat-20090419162203.log: 87 256 169
playeratat-20090419162735.log: 38 136 98
playeratat-20090419163742.log: 226 374 148

Mean - 182.9 - approx 13.06 seconds per target

To get a better picture, we reduced the number of targets to control for the gun capacity. We did several time trials with 3 targets and established that the primary limiting factor is the gun and its misfires.

playeratat-20090419164925.log: 73 88 15
playeratat-20090419165235.log: 18 30 12
playeratat-20090419165809.log: 26 36 10

Mean - 12.3 - approx 4.1 seconds per target

The new gun won't be useable with the existing hardware without downtime on software, so we're holding off using the new gun until the new hardware is complete in order to keep software development going. Unfortunately that means that our time trials are essentially invalid until then.

To bridge this, Daniel will be doubling down on his efforts to finalize the hardware this week.

This week:

The new DC Driver interface tested and integrated with PLAYER successfully.

We attempted some pixel mapping methods (such as opencv) but found that hard alignment of camera to target screen was easier an more effective.

We also attempted varying light conditions using the 1500 watt halogen but it intoduced a bunch of shadow that was inconsistent with the test environment anyways. We won't be using that anymore.

Sunday, March 22, 2009

TITI VOLUNTEERS FOR TARGET PRACTICE

Titi - Your sacrifice for science is appreciated.



Thanks Titi!




Software Day!

Today:

Implemented and debugged load/save config
Integrated auto-calibrate with load/save config
Implemented basic logging of target counts and times
Built power board for motor controller
Began testing new motor controller player interface
Morgan also helped here

Monday, March 9, 2009

ROBOT GUN TURRET 3/8/09

PREPARING FOR
ROBOGAMES
6/12 - 6/14 in San Francisco

Today:
Strengthened rotation with geared down motors
Reduced play with MORE METAL
Refined blobfinder capabilities for calibration



Sunday, February 8, 2009

ROBOT DAY 2/8/09

Today our focus was to develop the new, faster turret and update the automatic calibration in the software.

We added player capability to allow real-time modification of the blobfinder specs (screenshot below).




We also wrote the specs on calibration and settings saving, autosaving, loading, and logging. This will be implemented in the coming days.

Daniel developed boards for the infrared limit switches (the limit switches are shown below). These will be incorporated into the motor controllers (still on order) and the existing Arduino microcontrollers.


Monday, January 26, 2009

Robot day 1/25/09 - new turret development

links to our projects:
http://www.sourceforge.net/projects/aion/
http://www.sourceforge.net/projects/firmataplus/
http://www.dataczar.com/


Today we spent some time building the new turret and worked on auto-calibration for our playeratat software.

We're creating the new turret using DC motors with optical encoders to increase power and prevent the step-skipping we've been getting with the stepper motors on the current turret implementation. The step-skipping has forced us to slow the motors down considerably from what they should be. By switching to DC we should be able to dump as much power as we want into the motors without worrying about loss of accuracy.

Since the previous competition we increased the size of the stepper motors on the original turret and we added a color camera to the base to enable auto-calibration (not yet implemented). The increased motor size allowed us to increase the speed because the skipping "stall" threshold was reduced, however we are still limiting the speed considerably to prevent skipping. Skipping must be prevented because in the absense of sensors to indicate the turret position, it is impossible to know the position of the turret if a skip occurs.



The new implementation turret includes optical encoders to feedback motor position information. DC optical motor controllers are on order for the new turret. We have Player (http://playerstage.sourceforge.net/) drivers integrated for the current stepper-motor implementation. When the new motor drivers are received we'll probably need to create custom Player drivers for them as well.