Showing posts with label 5d robotics. Show all posts
Showing posts with label 5d robotics. Show all posts

Sunday, October 16, 2011

Defense News Feature

We're in the news!  Our partner, DRS, demoed our joint product at a conference in Washington, D.C.  where Defense News did a feature on it.


Thursday, August 25, 2011

Follow Me

Last week, half of our company was at the Association for Unmanned Vehicle Systems International (AUVSI) conference in Washington, D.C.  By all accounts it went well.  We may not have people hurling sacks of money at us yet, but soon enough.

One of the conference attendees uploaded a video of our follow behavior running on a robot called the Landshark, made by a company called Black-I.


Sunday, July 17, 2011

Travels

Just got back from a business trip to Alabama.  One problem with living on the west coast is that every time you go back east, you have to wake up far too early according to the home timezone.  Since John and I arrived at our host's workplace at 8 am every morning, we met up at 7 am for breakfast and travel, which meant I was getting up around 6:15 a.m. --central time.  My body thought it was 4:15 a.m.

It's obviously worse when we travel to Boston, which I did last month and which it looks like I'll be doing again in a week.  Boston is on Eastern time, which means even earlier mornings.   It wouldn't be so bad if I could then go to bed around 9 p.m. Pacific time, but the trials and troubles of integration trips usually mean I lie awake in the hotel bed with my mind racing 100 miles per hour, trying to think through problems and find solutions and playing out scenarios in my mind for how things could have gone better.

At least our most recent trip to Alabama was a success.  Not the perfect success we could have hoped for, if such a thing exists, but a reasonable success.  There's always so many variables we have no control over, and given our time constraints, there's often no time to implement the solution we want to. 

On the last two days before the trip, I coded up a "follow" behavior.  The idea was for the robot to use the laser range-finders mounted on it to track a person and follow them around. When we were out behind our building testing it out, there were a handful of people from our neighboring businesses watching us, and it was amusing to hear their conversation.  "Do you see that?!  That's crazy!  It's following him like a dog!  That is so cool!" 

Sometimes I think I get a little jaded working with robots all day, and it isn't until I hear comments like theirs, or like the manager's at the company in Alabama, talking about how cool our work is, that I remember that it actually is a pretty cool job.

Monday, May 16, 2011

Robot Peripherals

I've been working for 5D Robotics for almost a year and a half now.  Early on, a large part of what I did was write drivers for various USB, serial, and Ethernet peripherals that we'd plug into our system.

That led to a realization.  The robots that we controlled using our Behavior ENgine were nothing more than peripherals themselves.  They plugged into the computer using the same USB, serial, or Ethernet systems as any other peripheral, and I had to write a driver for them just like any other plug-n-play device.

That realization sculpted how I designed the Behavior ENgine.  Rather than having everything centered around a robot, I designed the Behavior ENgine so a robot was nothing more than an additional peripheral.  Designing it that way has had a couple benefits. 

One, there is nothing special I have to do when I integrate our Behavior ENgine with additional robots.  I simply have to write an additional driver for the device.  That makes our Behavior ENgine highly portable between robots, if you want to view it from the robot's frame of reference.  It also makes our code clean and easy to maintain, since everything robot-centric is pushed down inside a driver instead of in the core of the Behavior ENgine.

Two, it makes the robot unnecessary.  This was a benefit I didn't anticipate, since I never anticipated using our robot-controlling software without a robot.  However, it turns out that the computer is useful even without a robot attached.  For example, the computer could have other sensors plugged in, e.g. chemical or radiation sensors.  Since the robot is unnecessary, the user can pull the computer off the robot and walk around with just the computer and sensors, reaching places the robot can't get to or even leaving the sensors at a position to monitor the area.

Thursday, March 17, 2011

Robotic Rodeo -- Day 3 -- Murphey backs off

So after I blogged about day 0, 1, and 2 of the Robotics Rodeo, life intervened, and I never got to day 3.  However, when John mentioned that Davin mentioned that my blog post about 5D Robotics stealing some lady's bag from airport security was on the first page of Google results for "5D robotics," I figured I better tie up a few loose ends.

First, we returned the lady's stolen bag.  We had left my phone number with Delta so they could give it to the lady if she called them, which she did.  As it turns out, the lady was moving from CA to GA, which somehow equated to carrying a carry-on full of brand-new clothes and 50 garbage bags, but she wasn't particularly inconvenienced by the bag being stolen.  We promised we'd leave it at Delta on our way home, and they would see that it got back to her, which they did.  (After we spent ten minutes convincing the Delta employee we were in fact returning a stolen bag rather than looking for a lost bag of our own.)

Second, we almost ran over Boeing's robotics team.  They were standing in a small group making snide remarks about the clearance and overall appearance of the Segway robot I was driving when it accidentally swerved towards them.  They managed to scatter in time to avoid getting ran over by 240 pounds of steel and clawing tires, but only barely.  Fortunately we had the velocity capped on the robot.

Third, the demos went marvelously, and not just because our CEO didn't like my blog post about the previous day's disaster showing up on the first page of Google results for our company's name.  They actually went really well.  Antenna Products pulled out a wireless spectrum analyzer and found us a channel that was fairly free, so our radios worked much better.  We were actually able to demo our robots for some important people that Davin roped in, and the Segway representative only mistook one middle-school boy for a girl.

So all-in-all, it ended up being a positive experience.  We had sushi for dinner, John didn't get tazed even once on the way home, and we got the next day off work to catch up on sleep.

Day 0
Day 1
Day 2

Wednesday, February 23, 2011

Foot, meet mouth

Following is a cautionary tale on never saying anything in private you wouldn't want repeated publicly.  Names have been changed.

We here at 5D have an intern working for us...we'll call him Scone.  Coworker John, Scone, and I all work in the same room, although we can't see each other because of the dividers between us.  This fact led directly to the incident.

Scone is a smart and articulate kid, so I sometimes forget that he just doesn't have much programming experience yet.  He came to me with a programming problem, so I told him the solution.

"Well, the obstacle avoidance behavior file is conditionally compiled based on the mission flag in the CMake file, which is currently set to mission_dave in your virtual machine.  Since the behavior should be unconditionally compiled in now, you'll have to move it out of the conditional and into the normal list of included files."

It makes perfect sense, right?  Apparently not, because Scone gives me this blank stare like I was talking in German.  That was doubtful, since I don't speak German, and I realize it just went right over his head.  I go over to his desk and walk him through what he needs to do, although I'm a tiny bit annoyed because I'd rather him play around and attempt to figure it out on his own for a few minutes before coming to me.

A few minutes later, someone walks out the door heading in the direction of the break room.  For some reason, I think it is Scone, which means John and I are left alone in the room.  I start talking, which incidentally is where a lot of my problems throughout my life have come from. 

Me: "John, do you think I'm helping Scone too little?  Or too much?  Because I just don't think he's getting anything I'm saying."

Scone: "Um..."

Me: "Um..."

So yeah.  There were a few frantic moments while I mentally went over what I said, trying to think if it was too insulting or patronizing.  Had I said Scone wasn't the sharpest knife in the drawer?  Had I mentioned anything about a light being on but nobody being home?  Because I could have easily said something like that, just joking of course, but not the sort of joke you'd want to say to someone's face.

And apparently, not the sort of the joke you'd want to say if you're not absolutely 100% sure of whose face you're talking to.  And even then, probably not, because you don't know what your listener might pass on, or what microphones are hidden around, or who might be just around the corner.

Friday, October 29, 2010

Robotic Rodeo -- Day 2 -- Somebody taunted murphey

The day started out early--about 3 AM Pacific time. We headed straight to Fort Benning to set up for our demo in the chilly morning air, fortified by a breakfast of soggy, lukewarm egg muffins.

From that high point, the day rapidly went downhill. The radios, which had worked so beautifully the day before, gave up the ghost with a vengeful permanence. If I had known at that point that it was simply the first taste of what was to quickly come, I might have followed suit.

The demo was at 10:30, a couple hours away. At first we didn't panic, assuming that the radios could be resuscitated. As time ticked away and radios remained stubbornly silent, however, the Antenna Products people became more and more frantic. A team of heart surgeons racing to beat a rising flood wouldn't even have approached their intensity. We were working on issues of our own so we couldn't watch, but Davin kept us updated on their progress. It went something like this:

"They're checking the connections."
"They're checking the linux kernel."
"They're reinstalling linux."
"They're opening up the radios."
"They're checking the circuit boards."
"They're replacing the circuit boards."
"They're stomping on the radios."
"They're rebuilding the radios from scratch."

The Antenna Products people were under a lot of stress, and Davin finally decided to stay at our own booth after one too many over-the-shoulder suggestions got him threatened with a fist to the face (these were big Texas guys). I don't think the guy was joking, either. At one point, one of the Antenna Products guys came over and said that the boss had just fired two people back home.

Like I said, though, we were dealing with problems of our own. For some reason, an ugly bug had chosen that morning to rear its head in our code. I finally had to give up working on that because we had to attempt to implement our fall-back comms solution: off-the-shelf wireless Internet.

Since we hadn't worked with it hardly at all, and we were down to our last few minutes before the demo, that predictably didn't go well and we finally gave up on that as well. What we didn't realize until later was that most people were having communication issues, due in part to the sheer number of people in the same tent all trying to use the same frequencies.

Also, it didn't help that someone had brought a massively overpowered radio that was drowning everyone else out. That was our suspicion by that point (confirmed later) and Davin got the person-in-charge to make an announcement over the PA for everyone NOT doing a demo to turn off their radios, but of course the vendor didn't. Their comms worked great.

The time for our demo to start came and went with us still trying to get a robot working. We finally gave up on the comms and simply planted our robot at the front of the demo area. If nothing else, we could demonstrate how you could plug and unplug two different sensors and they would automagically work.

Except one didn't. As we discovered later, the actual cord for the sensor had gone bad. The cord. When was the last time you ever saw a cord go bad? That's right, never. It just doesn't happen. Davin glossed over the issue as best he could, but at the end of the day it was a totally disastrous demo. The one tiny saving grace was that most of our audience was just a busload of school kids who had been trucked out to look around, and they don't usually have fat, multi-million dollar contracts to give out.

The rest of the day was spent working over radios, robots, and sensor cords. By evening time, everything was coated with dust and we were all hungry and tired, but at least the radios were starting to work. Mostly due to everyone else going home and freeing up the airwaves. We finally packed up and followed suit. Davin had pushed off all the unofficial demos he had promised people to the next day, so it would be a late night. Hopefully, the next day would be better.

Wednesday, October 20, 2010

Robotic Rodeo -- Day 1 -- Setting up

Wednesday was setup day. The rodeo was held right on the military base, with the building-sized tent set up on an old firing range, to judge from the number of empty shell-casings that littered the ground. I contemplated throwing a few of them into John's backpack, just to make things a little more exciting when he tried to go through airport security on the way home, then thought better of it. If he were wrestled to the ground and tazed, it might hold up the whole security line and I'd miss my flight as well.

The tent had probably 50 booths, otherwise known as "folding tables." Since our company had turned borrowing other companies' equipment into an artform (our robots, laptops, radios, pretty much everything but the code we brought had been bummed off someone), we saw no reason to stop at the rodeo and talked AMREL, a laptop company, into letting us share their booth. We were even generous enough to give them one of the two tables on the second day.

Over the course of the rodeo, we borrowed additional robot parts from Segway, tools from AMREL, and additional antennas and radios from Antenna Products. We took AMREL's demo slot (you can't really demo a laptop, right?) and crashed the last 10 minutes of one of Segway's demo slots. In the afternoon, Davin talked AMREL into buying us lunch.

I felt a little bad about all our mooching, especially since it was more of a cycle than straight-up borrowing. We'd take one of Antenna Product's radios, break it, give it back, and borrow the next one at the same time. They could barely fix their equipment fast enough to keep up with us. Davin had to promise them ever-increasing future profits from our partnership just to keep them from beating us with wrenches.

The two robots we took to the rodeo, sans all their radios, laptops, and other hardware accoutrements
Left to right: Segway RMP 50, Segway RMP 400

By the end of the day, however, everything was looking rosy. With the help of Antenna Products, who made the radios, we got the RMP 400 to venture further from Home Base than he ever had before. The laptops were in fine form and the computer programs had brought their A-game. Our first demo was at 10:30 the next morning and our confidence was high.

There was one thing we forgot to take into account, however: Murphy's Law. We would discover three things the next morning.

1) Having an early demo slot is a bad idea. If something goes wrong, you have no time to fix it before showing--or not showing--your demo to top military and civilian leaders whom you've specifically invited.

2) It's a lot easier to make your radios work when there's not 49 other companies trying to make their radios work at the same time. Especially if one of them is nefarious.

3) Working radios are kinda essential for a good demo. When your robot is tethered to your control computer with a three-foot cable, it's hard to explain the advantages of your system to, say, a bomb-disposal technician.

If you've got an iron stomach and don't mind a little carnage--at least someone else's--tune in tomorrow for the next compelling segment in our ongoing saga: Robots Gone Wild: How Boeing Almost Lost Their Entire Robotics Team to a Crazy Robot From 5D Robotics, Inc. Fortunately, the Driver Managed To Evade the Military Police, Since I Really Didn't Want to Spend the Next 10 to 15 Years With Three Off For Good Behavior at Fort Benning, Charming As It Is.

Also, we need to talk with our saga-naming people.

Sunday, October 17, 2010

Robotic Rodeo -- Day 0 -- The Seventh Carry-on

Tuesday morning, three of us from 5D Robotics, Inc. arrived at the San Diego airport. Our destination, by way of the Atlanta, GA airport, was Fort Benning, GA. Our mission over the course of the week was to demonstrate 5D Robotics' capabilities at the Robotics Rodeo.

Everyone knows that a trip of this importance does not go flawlessly. We got things off to a quick start.

You have to understand that the three of us arrive at the airport with 11 items of luggage in tow. Two suitcases or carry-ons each, two large crates of equipment, a carry-on-sized battery charger for military-spec batteries, a banner in long tube, plus a Segway robot. Even after checking what needed to be checked, we had six carry-ons between us. It should be understandable that a little confusion might arise about whose luggage belonged to whom and what exactly we had in tow.

Going through TSA security, John (names have been changed) is pulled aside. He's carrying the battery-charger as one of his carry-ons and that many wires and electronics in a military-green case is a little suspicious. He's taken to a nearby table for interrogation and trying to expedite our traveling, Davin takes a suitcase off the conveyor belt that he thinks belongs to John.

John is finally released by TSA and Davin hands the suitcase he grabbed back to John. John, of course, thinks that the suitcase belongs to Davin, and that Davin was just trying to pawn the job of carrying his luggage off on him. "Why does Davin even have three carry-ons?" John wonders to himself. "He's a Platinum member of Delta's frequent flier program. You'd think he'd learn to pack lighter." Being the nice guy he is, though, John says nothing and takes the suitcase.

We reach the gate, seven carry-ons in tow. Being a Platinum-level member of Delta's frequent flier program, Davin has a seat in the first-class section while John and I will slum it in coach. First-class people get to board first and as they are invited to come forward, John finally tires of lugging Davin's third suitcase. "Here, take this with you," John says, shoving the suitcase at Davin. "Being first-class, you'll have an easier time getting three carry-ons past the gate agent than either of us."

At this point, Davin thinks that John is now trying to pawn his luggage off on Davin, but he takes the suitcase anyway. The gate agent manning the microphone sees Davin coming with his three carry-ons and quickly makes an announcment--"We remind our passengers that there are only TWO carry-ons allowed per passenger"--but it's too late. Pretending not to hear, Davin gets past the ticketing agent and is free.

Arriving in Atlanta, Delta does its best to give us all heart attacks by cleverly moving our equipment crates from the regular baggage carousel to the oversized-baggage area, but we finally locate at and load it into our rental minivan. We drive for an hour and a half down to Columbus, GA, finally arriving at our hotel late at night. As we unload the minivan, John turns to go inside with a single backpack in hand. This is too much for Davin. "Do you want to take your stupid suitcase?" he asks, shoving the seventh carry-on at John.

John looks at it. "It's not mine," he says. Davin looks at me. "It's not mine," I quickly say. Davin frowns. "It's not mine," he says.

We stole someone's luggage. From security.

We take the bag up to my hotel room and start digging through it. We don't see any identification on the outside (Owner: "It's a carry-on! There's no possible way it could get lost.") and there's nothing inside but a stack of brand-new clothing with tags still attached and, inexplicably, a complete roll of about 5o Hefty trash bags.

Doing a second inspection of the outside of the bag, I finally notice a tiny scrap of sticker left over from some long-past flight with the name "Doe/Jane" on it. Since we took the bag from security, we don't even know which airline the person may have been flying, so I just call Delta.

It takes several minutes to get across to the baggage claims lady that we were in fact trying to return luggage rather than looking for a lost bag of our own, but she finally understands. "Well, just bring it back to the airport when you fly home," she says. Since that won't be for another another three days, Davin gets online and starts searching for every Jane Doe he can find. There are several, so he sends emails to the most likely ones.

One of the Jane Does, according to Google, ran a 17-minute mile in some race, which might explain her lack of catching up to us if she was, in fact, the one we had stolen the bag from. "Wait!" she calls out in her wavery voice, shuffling after us with her walker as we casually stroll off into the distance. "Come back with my suitcase! It has all my trash baaaaaagggggs!"

Anyway, by that time it is late and we are tired. "The day could have been worse, though," Davin points out. "Someone could have stolen our bags instead of vice versa. At least Jane Doe has the clothes she's wearing, and you can pick up trash bags practically anywhere. We wouldn't get very far at a robot demo without a robot though."

As we would find out the following day, however, there are more things than just losing a robot that can make a presenter start sweating at a robot demo. Stay tuned for the next installment of "Murphy's Law: An In-depth Exploration."

Friday, January 08, 2010

Big News!

It's official, so I can post it on my blog now. I've accepted a position at a robotics startup in Idaho called 5D Robotics (motto: "Two Ds better than reality!").

There were a lot of things to weigh while considering taking the job. My current job had great pay, and I just got a raise at the beginning of the year. As a matter-of-fact, I'll be taking a fairly significant pay cut to go to this new job.

In addition, my current job allows me to work from home 4 days a week, with the flexibility to take off whenever I want. At my new job, I assume I'll be working in the office every day, 9 to 5.

I also really like my current coworkers, and I know the company is going to go big (it already is).

However, my decision was based more on my long-term interest. At my current job, I build real-estate websites. I really enjoy web-programming, and working in real-estate was fine, but I got my Masters Degree in robotics. I think working with robotics has more potential to keep me interested and sharp. (Plus, my Masters advisor will be happy to know I'm finally using my education.)

In addition, from the brief meeting I had with my new coworkers, I think they'll be easy to get along with as well. They seem pretty committed and experienced.

I told my current bosses today at work. We had a full day of interviews scheduled for a new programmer, so basically I told them to start looking for two new candidates instead of just one. They said they were sorry to see me leaving, but they wished me the best. I'll miss the company too.

I also told our landlord, since we'll need to get out of the last few months of our contract. He was understanding as well.

The last person I need to tell is the Bishop. I was just called as the new ward clerk two weeks ago, and the Bishop said, "I look forward to years of good service from you!" Um, would you be satisfied with a month?

Anyway, things are going smoothly, so we're down to packing everything up now. My goal is to pack everything that's small enough into banana boxes, so our moving truck is nothing both furniture and neat stacks of identical boxes. I think Child is catching my vision as far as that goes...

Y esta la vida!