Thursday, July 27, 2006

Constructopedia for bCat (aka Gupi NXT)

Don't want to read? Skip to the end of this post to find the constructopedia link.

A while ago, I said that my first robot was going to be a Lego version of Gupi, which I called Gupi NXT. Well, here it is.

When we were working on Gupi, we often lacked the actual body (because of various other prototyping activities). To compensate, we had a robot that I’ll call TechGupi. It had the exact same sensors like Gupi, and the identical software did the same things. But it didn’t look like a guiney pig. It really looked more like a cat, if you ask me. Here’s a picture of the TechGupi, next to the Gupi you'll find in the shop (without its fur).

TechGupi is really much easier to copy into Lego than the molded plastic Gupi. So I created bCat, the bNXT Cat. bCat is going to be my robot to test lots of NXT software and artificial intelligence.

The design of bCat is inspired by the TriBot (the robot that is in the quick start manual). I like the TriBot because has a nice wheel base, and a compact design. But there are a lot of things I don’t like about it as well. So I started changing it. And I kept changing. And here’s the result, showing both bCat and TechGupi:

The TriBot knows or sees nothing when driving backward. Backing up is pretty important when working with obstacles, and with other robots in the room. So I wanted bCat to have a rear bumper.

I intend to drive the robot through narrow spaces (like a maze). When the TriBot turns in place, the rear of the robot can easily bump into the wall without the robot having a clue. Because of this, there is no way the TriBot can navigate a reasonably complex maze. It would just get stuck trying to turn, or need to use brute force (trial and error). Personally, I prefer my robots intelligent. So I wanted to detect when the left or right side is bumping into the wall while turning. bCat has a special bumper that can detect collisions at the left or right. Since the NXT only has 4 sensors (for now), I built a special kind of bumper that combines the left, right and rear bumper detection into a single touch sensor. Because bCat knows whether it is driving backward, turning left, or turning right, it can interpret the signal (and if not, it can always try a few different options and detect when the bumping stops).

The grasping claw is pretty neat on the TriBot, but I had other plans for that last free motor. I turned the non-driving front motor by 90°. This way, it becomes a real neck, allowing bCat to look left and right. Curiosity killed the cat, and one of the main purposes of this robot is to explore its environment, and navigate it intelligently.

But I wanted to try out whiskers as well. Since the number of sensors are limited, I figured that the front motor could double as whisker sensor. If anything hits the left (or right) whisker, and assuming the front motor is not powered, then the head will be pushed to the left (or to the right). So, using these whiskers, we can detect obstacles left or right.

Because the whiskers are rather rigid, they also serve as collector arms. By powering the neck motor, the robot can easily collect balls and push balls. It can even kick a ball by backing out slightly and turning its head rapidly. Kicking with wiskers, it’s not entirely true to nature but still a lot of fun.

The rest was rather straightforward. The Ultrasonic is mounted on the head, allowing it to scan from left to right, and build a “map” of the world (notice that all ultrasonic sensors are very noisy, this is not a Lego problem). The color sensor is pointing at the place where a ball would be in the center of the whiskers/arms, the microphone is pointing forward. Oh, and I like legged robots, but they often move forward frustratingly slow. So for bCat, I added simulated moving legs. They are just for show, the robot really uses the rubber tires.

The robot is quite versatile. I also built a version which used more than a single NXT set, and had no less than 7 sensors in its head, and 2 NXT bricks on its back. The double-NXT-set-bCat made the maze navigation substantially easier. Plus the extra free motors are sources of endless inspiration. But I’ll get back on that later (notice that childhood-like addiction to Lego is back?).

Here is the constructopedia for bCat. By the way, this is also a first experiment toward building a (wiki-)constructopedia. Any help from ASP.NET developers to help build a wiki-constructopedia would be very welcome (no discussions on which web technology is better please).



At July 28, 2006 5:40 AM , Anonymous Anonymous said...

wow,very cool

At August 02, 2006 1:33 AM , Blogger Drew Stevenson said...

I like your sense of touch. I was toying with ideas like condition dependant sensors myself (mentally) but hadn't tried them - glad to see thaty worked for you.
I also had in mind a few ideas for how teh motors can sense things too.


Post a Comment

Subscribe to Post Comments [Atom]

Links to this post:

Create a Link

<< Home