Archive for the ‘Android’ Category

Cellbots at the International Science & Engineering Fair

Tuesday, May 11th, 2010

We’re thrilled to be demoing our Android Cellbots at the 2010 Intel International Science & Engineering Fair this week in San Jose, California. Thousands of people will be dropping by the Google booth to play with four of the robots and learn how they work. The kids are having a blast and the parents are jealous they couldn’t do things like this at their age.

We have some video streaming from the phones to the big screen TV and people can also use the remote to trigger still pictures to be snapped. The demo shows off the use of Android Nexus One phones as remote controls using the accelerometer to drive the robots. That sends XMPP commands over Google Chat to another Nexus One on the robot, which act as the main brain. That phone then sends commands over Bluetooth to the robot hardware.

We hope the excitement continues and we see more kids making Cellbots this summer. Our parts lists for the Android robots and the source code project site can help you get started. Those short on time can also check out our robot kits page where we can put together a package for you. Then be sure to jump in on the discussion list to ask questions and share news of your projects!

Getting this demo ready was a big team effort that took a lot of work to go from short five minute demos to having four robots run all day for a week. Damon Kohler came through with awesome upgrades to last week’s Android Scripting Environment. Charles Chen was extremely helpful in getting the video and still image streaming setup, and used some code from Darrell Taylor’s work. Jason Holt, maker of the Boxbot, helped with the remote control mathematics and getting the demo table ready. Tim Heath upgraded the kits page for those of you interested in using one of our designs, and Glen Arrowsmith’s recent Arduino code that saved calibration data to the EEPROM was critical. Many thanks to you all!

If you are in the San Jose area this week, be sure to stop by the convention center on Thursday May 13, when the International Science and Engineering Fair is open to the public from 9am to 9pm.

Powering A Robot From The Phone’s Battery

Tuesday, April 27th, 2010

We’ve simplified the Tankbot so much that this has to be one of the simplest and cheapest robots around. Instead of a 5v Arduino, which needs 3.3v to 5v logic level converting, we’re using a 3.3v Arduino Mini Pro. The TX and RX pins can connect directly into the HTC breakout board on the bottom of the Android G1 for serial communication.

Powering a robot from an Android G1 phone

The only tricky part was getting a thin 30 gauge wire to run into the back of the phone and wrap around the positive battery terminal. We tried some thicker wire at first but it prevented the phone from maintaining a connection and it would shut off accidentally. The thinner wire sits there nicely and we might try making a permanent connector on the outside of the phone so it can fit back in a pocket without a wire sticking out.

Powering a robot from an Android G1 phone

The top picture is a working version with the red 30 gauge wires above is an early test with a thicker green wire that had a flaky connection. You can see that we’re still using the HTC breakout board wiring for TX, RX, and ground, and we’re not yet connecting the fourth wire that you see here. That would be used for charing the phone but doesn’t provide enough power out to run the robot.

Wiring the robot into the bottom of the phone

This video overview shows you the whole thing moving around to prove it works. No word yet on the effects of doing this on your battery so please do so at your own risk.

If you get something similar working, share it in the Cellbots support & discussion group. Bonus points if you hook your robot up to a wireless charging station!

Our First Semi-Autonomous Navigation

Wednesday, April 21st, 2010

We’ve added the first bit of autonomy to our Cellbots by having the Truckbot stop before going off a ledge. We did this by building upon the Wheelchairbot’s ability to sense distance with an ultrasonic range finder. Then it just took a bit of tweaking to the Arduino code to use this reading whenever the servos are moving.

The latest version of the code supports two range sensors, where one is intended to move forward and another looking down at the ground. These are both optional but should help prevent your robot from collisions and dangerous tumbles. It is especially handy if your streaming video and controlling the robot with some high latency.

We’ve tested with this Maxbotix and Parallax ultrasonic sensors, and we’ve also ordered some infrared proximity sensors and very small reflectance sensors. Our goal is to have the robot not bump into things or fall off ledges and we’ll likely need somewhere between four and six total sensors to do that. We want to keep the price down so we’re trying different options on our Cellbots and will share the results with you here.

Remote Control Using Bambuser Video Streaming

Tuesday, April 20th, 2010

Building on the video streaming success of the Nrover, we tried something new for Truckbot, by streaming video from the phone via Bambuser to a new remote control web page.

Truckbot watching itself via streaming video

We did this by turning the phone on its side since Bambuser works with the phone in landscape mode, while the Truckbot was designed for it to be in portrait. Then we created a simple HTML page that includes an embedded Bambuser video player, and a Google Talk gadget. We can now type in commands via XMPP chat while watching video streamed back from the robot.

The latency is kind of high at around one second, which makes it a challenge to drive in hazardous conditions like table tops or crowded places. We’re interested in finding alternative video streaming methods  since Qik and Ustream both have about the same delay. Nrover is using a modifcation of Movino, which we’d love to see compiled for Android in addition to what we’re doing on Symbian.

Remote telepresence web client

We’ve posted the source code to the remote control page to save you a few minutes from making your own. It really is easy to get started by running the Cellbots Python app on Android, and then kicking off Bambuser. We’re working on scripting this as well so the robot can initiate video streaming from a remote command. Enjoy chasing your cat!

Glen’s Wheelchairbot Adds 2-Way Communications

Friday, April 9th, 2010

Glen, our newest team member from Australia, has shared his new Wheelchairbot with us. He’s using two Parallax continuous rotation servos and some Tamiya plates to quickly hack together the body. What’s really impressive is the inclusion of an ultrasonic range finder to sense distance to nearby objects and then speaking it back.

Here is a quick video of Glen showing his bot using text-to-speech to speak the distance between it and a nearby object.

In order to make this work, Glen has to solve a challenging problem in getting two-way serial communications to work using Python on Android. It might sound easy but PySerial is not included in the Android Scripting Environment, so he had to roll his own code to reliably read and write to the serial port. After a lot of trial and error, the code is now in the open source Cellbots project so you can try this yourself.

Glen's Wheelchair robot

The Arduino code has also been upgraded to handle a forward-facing and/or downward facing ultrasonic range finder. We’ve tested with Parallax and MaxBotix parts, both of which share the same code. If you don’t have one, just set the range margin setting at the top of the Arduino code to zero and it won’t bother trying to check the distance.

Glen is also using a $2 Sparkfun 3.3v to 5v level converter, which will save you a lot of hassle in wiring up your 3.3v phone to a 5v Arduino board. Much easier than using a hex inverter chip for the 3.3v to 5v side, and two resistors for the 5v to 3.3v side. We’ve tested the code using both methods and they each work fine but the chip makes wiring simple and is easier to find.

Wiring configuration on the Wheelchairbot robot

We really appreciate the code submissions Glen made and he’s now an official team member. You can read more about Glen on his Garrows.com website, and we have some additional photos of Wheelchairbot in the Cellbots Picasa gallery below.