Wednesday, March 31, 2010

Rovio Driver for ROS

An initial version of the ROS driver for the Rovio has been uploaded.
There is no odometry code yet and some things are a little broken but it's enough to perform basic teleoperation while logging the data into ROS on Linux.

Here is the default joystick layout for now.

Installation instructions.
1) Install Linux (You should already have completed this step, Ubuntu is strongly suggested)
2) Install ROS
3) Install the Probe driver from the Brown University Repository
4) Pull down the I heart Robotics ROS Repository
  cd ~/ros/stacks
  git clone git://
  cd iheart-ros-pkg/rovio
  rosdep install rovio
  rosmake rovio
5) In the rovio.launch file, edit the username and password to log into the Rovio.
6) Launch ROS
  roslaunch rovio.launch
7) Complete the Tutorials
8) ???
9) Profit

Tuesday, March 30, 2010

Texai Video Montage

Willow Garage has a new Texai video out, and they suggest that we "Stay tuned!" to find out about Texai testing opportunities.

Monday, March 29, 2010

Rovio Hacking

Some quick hacking notes on the Rovio, some of this is Linux specific.

Here are scans of the Rovio's main processor board, I used a flatbed scanner at 2400dpi to scan the board. This makes following the traces significantly easier than using a microscope. I had some assistance working out the pin-outs and I got the idea for scanning the boards from somewhere.

VLC can be used to connect to the rovio via RTSP
vlc rtsp://admin:password@

However after testing it was found that the RTSP video feed has significantly more lag than the MJPEG stream. The trade off is that MJPEG stream lacks audio.

You can connect to the MJPEG stream with gstreamer.

gst-launch souphttpsrc user-id=admin user-pw=password \
location= do-timestamp=true \
! queue ! multipartdemux ! capsfilter caps = "image/jpeg, \
width=320, height=240" ! jpegdec ! autovideosink

Now that it works with gstreamer, we can connect that to ROS. Probe is part of the ROS packages developed at Brown University.

Once you get it downloaded and compiled using rosmake. Then you can use Probe to publish images from the Rovio to a ROS topic, this allows you to use the existing computer vision tools developed for ROS.  I'll probably finish writing a ROS driver for controlling the Rovio later this week.

export PROBE_CONFIG="souphttpsrc user-id=admin user-pw=password \
location= do-timestamp=true ! \
queue ! multipartdemux ! capsfilter caps = \"image/jpeg, \
width=320, height=240\" ! jpegdec ! ffmpegcolorspace ! identity \
name=ros ! fakesink"
rosrun probe probe

This should work better
PROBE_CONFIG="souphttpsrc user-id=admin user-pw=password \
location=\?Status=false \
do-timestamp=true ! queue ! multipartdemux ! capsfilter \
caps = 'image/jpeg' ! jpegdec ! ffmpegcolorspace \
! video/x-raw-rgb ! identity name=ros ! fakesink"

Friday, March 26, 2010

A Case for Arduino: Laser Cutouts

The laser cut panels we designed for the previous (non injection molded) version of the Arduino case have arrived. Similar end plate will be available for the final version so you can get whatever holes you need custom cut to the exact size and shape.

This should give you an idea how much room there will be with a shield installed.

The next version of the text should be more readable.
Updated below

Apply ink with a permanent marker over the lettering.

Wipe clean with a paper towel. Use paint thinner if necessary.

That turned out better then I was expecting.

Design your own cutouts for whatever you need, but for now the design requires that plate is ~3mm thick. Ponoko's 3mm thick acrylic is actually 2.9mm thick but should be close enough.

For more information about the design of A Case, check here. Feedback is appreciated.

Thing-a-Week #6: Hole Gauge for Laser Cutter

Here is a quick thing for figuring out how big the holes a laser cutter cuts actually are. Designed for use with Ponoko, just open it in Inkscape and save as an eps and send it to them. You can also use it with your own laser cutter if you have one. Other things can be found here. Hopefully I'll get caught up with things in the next week or so.

Playback: ...and Action!!

HARK looks like an interesting project to determine the location of sounds, this would allow the robot to associate speech with the speaker.

Here is some more tennis ball collection efforts from, a group of engineering students at the University of Waterloo.

This is a beautiful, and terrifying view of the future. Robotic Velociraptors chasing the last of the humans across the deserts after the end of the robot wars. This mechanism could also be a great inspiration to roboticists looking to design compact hexapods.

I wish my apartment was this big.

That is an amazing teleoperation setup.

On a related note, I would also like to give a special shout out to the OpenShot developers for making the stable and useful OpenShot Video Editor for Linux. Let us know if you see any other great robot videos.

Thursday, March 25, 2010

Fastners for 3D Printing: Screw it, we'll use science. Part 2 of n

Previously on I Heart Robotics the internet blog, we used the power of science to test wood screws as fasteners for 3D printed parts. Now that our plastic thread forming screws have arrived and we have a few moments, we will use the power of science to test these as well.

The primary problems we saw with using wood screws was that the flat head required a countersink and they have a tendency to split the screw boss at high torques. The plastic thread forming screws we have sourced are available with a pan head and Torx® drive. The Torx® drive allows for better torque transfer and less chance of stripping the screw head.

The screws used in this test are Camcar® PT® Thread-Forming Screws for Thermoplastic from Acument® Global Technologies. On the datasheet they are listed as K40-1.79x10TXP P/T or as part number 3BT-P8009-00.
In New York City, you can order them from Century Fasteners.


For each experiment two plastic parts were printed. One part had a series of square screw bosses and the other part was a plate with a series of holes. The assembled parts were placed in a vice and a Ryobi cordless drill model P205 with adjustable torque was used to tighten each screw until failure.

The torque settings on the drill produce an unknown torque and have an unknown error and unknown repeatability. However for the purpose of comparing the relative holding strength of each fastening method, these issues should not prevent a rough estimate from being made.

The parts were printed in ABS on a Stratasys FDM Machine with the holes oriented upwards. This is the same material as Shapeways Grey Robust.
As noted, some holes are printed at the desired size and some were printed as pilot holes and drilled to the required size.

Failure Modes

Stripped threads are by far the most common failure mode. This failure indicates that the threads are not capable of holding a higher load.

This photo shows a cracked screw boss which is caused by the hole being too small, forcing more material to be displaced by the screw. It is also a limitation of the 3D printing process due to the inter layer bonding.

Split bosses are caused when the holding force of the screw thread is greater than the structural strength of the plastic. Using an aluminum outer screw plate would allow greater torques to be reached but the usefulness of that may be limited.

Here stress marks on the side of the part indicate the location of possible failures.

Experimental Results

Each screw was tested 6 times and the results have been uploaded to Google Docs. The updated information is available on the sheet named "Plastic Thread Forming Screws".


These screws are great for 3D printed parts. For the specific screws used in this test, printing a 2.8mm diameter hole will work great. If you need greater holding strength then print pilot holes that have a 1mm diameter and drill them out to 3.1mm. One possible disadvantage of these screws is that they require a Torx driver which you or your customers may not have. At some point in the future we will be testing additional fasteners.

Tuesday, March 23, 2010

DIY Mega Rider Robot!

Over at Let's Make Robots, I found this great robot that looks really similar to my first robot.

Designed to be operated by remote control, Mega Rider uses two continuous rotation servos to drive wheels made out of CDs. It also uses a ball caster for the rear wheel.

I love these kind of projects because this is how you get started. You don't get started in robotics by buying a $10,000 robot and expecting it to bring you coffee in the morning. Start with $50 in parts and you can have a basic robot you make yourself. After you build some robots, then you can worry about buying expensive sensors that you just want to disassemble.

The robot looks like a great starting point for bigger and better projects.

Check out these dance moves.

Monday, March 22, 2010

ColonyScount Autonomous Swarm Robots

Previously on I Heart Robotics, we featured a video of the ColonyScout project being developed by the Carnegie Mellon Robotics Club. Following up on that video we have located their website, which is full of information about the project.

The ColonyScout robot is equipped with an AVR Microcontroller for motor control and management of the main sensor suite, including sonar, IR and wheel odometry. Computationally intensive tasks such as communications, IMU Management and path planning are handled by an ARM9 Microcontroller which runs a RTOS.

The suspension system and 4WD looks really effective for outdoor use.

The club sees a variety of possible applications for their new robots.

I really like the idea of this diagnostic station that allows the hardware to be checked automatically.

I'm looking forward to seeing more of these robots in the future.

Sunday, March 21, 2010

A Case for Arduino: Redesigning for Manufacturing

So as you may imagine, design for manufacturing with injection molding is significantly different from working with 3D Printing. You don't need to worry about draft angles, sink marks or fill problems when you are 3D printing. The biggest issue you usually face with 3D printing using fused deposition modeling is bonding between layers, and the resulting loss in strength. However, boss design can be a problem for both.

The design of A Case has gotten about as far as it can with 3D printing. Due to the costs of 3D printing, the current designs are fairly impractical. Therefore, work has been progressing on redesigning the case for injection molding. While the initial costs for injection molding are very high, the per unit retail costs should drop down to a reasonable $19.95.

The final version will come with a clear front panel instead of the smoke colored panel shown in the rendering. The back panel will be laser cut with holes for the USB and power connectors. I'm working on some ideas to hide the screw holes on the top that will probably work out well.

A Case is being designed to hold a common LCD display module and/or a protoboard (72.5mm x 47.2mm). If you have a display that you would like to see fit, that is similar in size please add a comment or send an email and maybe it can happen.

The case is specifically designed to fit a reasonably sized shield in addition to the Arduino. The Ethernet Shield is the reference standard for "reasonable", but most shields should fit. Right now the case is 120mm x 88mm x 56mm and the display pcb and protoboard are separated by 10mm. These dimensions are not finalized, so if you have suggestions please give them sooner rather then later. If there is demand for other Arduino compatible boards to fit, that can probably be worked out.

There should be a system for pre-orders worked out in the next several weeks. The initial run of cases will be probably be gray, since thats the easiest to both paint black and to paint white, but other colors possible in the future.

Also, if you have been wondering where the weekly things are, you can expect them resume after the injection molded design is finished.

Saturday, March 20, 2010

OMAP & DSPLink Tutorials

Just a quick update, for those of us working on the software side of things. The PIXHAWK team has just released a series of tutorials for TI OMAP based boards such as the Beagle Board and the Gumstix Overo. I am hoping their DSPLink tutorial will help me figure out how to offload my video telemetry encoding problems to the DSP.

Friday, March 19, 2010

Playback: Fast Forwarding to the Good Bit

Just like W*llmart has greeters welcoming you, the Carnegie Mellon Robotics Club is working on a robot greeter.

Sid also has some new eyebrows to emote more effectively.

This tennis ball retrieval robot looks commercially viable. Especially if it could automatically reload the ball launcher. One designed for baseball could probably also do well depending on the price.

Which of course brings us to golf.

Maybe we should just leave the golf to the robots.

Here is the video from the NYC FIRST Regional, the championships will be in Atlanta from April 15 - 17, 2010 at the Georgia Dome. Which is during National Robotics Week.

I think only robotic piano movers could actually safely get the piano through that mess.

Here is another great video that is also from the Intelligent and Mobile Robotics Group at the Czech Technical University in Prague. It shows their robot competing in Robotour 2010.

Thursday, March 18, 2010

PixHawk Cheetah Quadrotor Helicopter

The PIXHAWK team at ETH Zurich has developed the new Cheetah quadrotor equipped with an Intel Care 2 Duo processor which capable of autonomous flight times of up to 8 minutes. The processor board weighs 235 grams and provides a significant increase in processing power over using an Intel ATOM Processor. This will improve the performance of the computer vision algorithms, which is important since the quadrotor is equipped with four cameras. Their new IMU board also looks interesting.

WowWee Rovio $99.99

I took advantage of this fine Woot! deal and so can you. You can expect to see some Rovio mods and projects here in the somewhat near future.

Once the Rovio arrives you will probably want to know where to start hacking on it. The main Rovio Software Downloads and community appear to be here. You may also want to double check the security of the Rovio before letting it loose in your office.

[From: Hack a Day]

Wednesday, March 17, 2010

Happy 10th Birthday GoRobotics

Celebrate GoRobotics' 10th Birthday with presents for you!!
GoRobotics is William Cox's long running internet blog which is unsurprisingly about robotics. To help celebrate the 10th anniversary giveaway, head over to

Tuesday, March 16, 2010

Parrot AR.Drone Updates

The Parrot AR.Drone is looking pretty good, but I am waiting to see about the price and hackability. The API license looks blandly legalistic, but does seem to indicate that running Linux on it will not be easy since you will lose all the pre-written software.

However, looking at the developer guide seems to indicate that if you treat the AR.Drone as a device, building a driver for a ground station running ROS should be relatively easy with AT style commands sent over WiFi using UDP. It will be interesting to see the maximum IMU update frequency you can get over the wireless link.

Monday, March 15, 2010

This New Lab: Desk Upgrade

My old desk was not really big enough, so I decided to get a new desk. I thought about building one from scratch, butI already have more projects than time as it is. So despite my better judgment, I bought a desk. The design of the desk is a modern marvel in the sense that it is surprisingly stable considering how loose the tolerances are.

The new desk didn't come with a keyboard drawer, so the one from the previous desk was moved over.

The desk has a built in USB hub which is kind of nice but they didn't ship a power supply for the hub. C'est la vie. As you may notice, this desk is not very powerful. It certainly can not supply 10 amps at 120 volts AC.

So, since I work on a lot of projects, it would be really useful to have a power outlet placed conveniently within reach. Another feature of this upgrade is that the switch allows me to conveniently turn off my speakers and LCD monitor and unused wall warts. As a design paradigm, I believe in energy conservation through convenience.

I have tried a few of these hacksaw blade handles, and the Stanley FatMax® Multi Saw is the best I have used so far. It tightly grips both regular hacksaw and reciprocal saw blades.

Due to the design of the desk, the best place to put the outlet is where the round wire management cover is located. Remove the cover and draw a rectangular hole for the outlet.

Working from two different directions helps make the hole rectangular.

Drilling an additional hole might help speed up matters.

The same technique that is shown here can be used to make rectangular holes in cases.

Keep going, almost done sawing.

The outlet box now fits perfectly into the hole. The extra gap will be covered up by the wall plate and ensures that the box fits without force.

If you are lucky the outlet box will have slots to make removing the metal plugs easier.

This is a nice power strip with a metal case and intelligently spaced outlets.

This power strip will be controlled by the switch on the front of the desk.

Before we go any further then now might be a good time to talk about safety, before you claim that you cut the extension cord while it was plugged in because that is what the internets told you to do.

Safety is important, but these warning labels are crazy. Do they really think people are going to read these labels? It is like these labels are written by lawyers, for lawyers. Avoid overheating!?!? How about, "If the cable is warm to the touch, you have too much stuff plugged into the extension core. Unplug stuff or get a thicker extension cord". They helpfully suggest that you should not plug in more then the specified number of watts that the cord is rated for, which was printed on the packaging, which you threw out. The one I love the best though is "DO NOT REMOVE THIS TAG". I think I'll follow that one.

Despite the inantiy of the legal mumbo jumbo, there is a point to safety. Electricity can kill you, and the evil Thomas Edison once used it to kill an elephant in one of his battles with the great Nikola Tesla. Regardless, you should avoid working on live circuits because if you grab a live wire, your muscles will lock up and you won't be able to let go or scream for help while you painfully die of electrocution. If you must work on a live circuit have a friend standing by to hit you with a wood 2x4 or broom so that you stop holding the wire, and they can call an ambulance which may or may not be able to save you. If you are starting a project that you have never done before, ask for help, there are many people out there in the world that would be happy to help you avoid death by electrocution. There are also lots of books (DANGER: Books Are Flammable) that contain information (DANGER: Information is a Virus) that might be able to help you understand the real safety issues involved.

Please don't die, and if you must die, don't blame me. Please follow your local electrical codes when working on projects like this.

If you have extra extion cord ends that you have not turned into mini extention cords, you can use those. Otherwise, cut an extension cord to length.

Cut the other end so that the desk can plug into the wall with a reasonable amount of slack.

Attach both end of the extension cord to the outlet box, and recycle the unused cable.

Read the instructions that came with the outlet and connect the wires as needed. The outlet might be wired differently than you expect. Ask someone knowledgeable if you don't understand.

A circuit tester is less than $10 and can help make sure that your outlet is wired properly before it blows up your computer because you didn't test the outlet first.

It can also be used to make sure your switch works as you expect it to and as an added bonus it can help you check that the electrician correctly wired your wall outlet to begin with.

Here is the outlet mounted in the desk.

This shows the outlet with the cover attached.

On the back of the desk the power strip is now connected to the switch.

Here is the back of the outlet box.

The cabling mess has been significantly decreased.

The wire management hole cover can be relocated with the use of a hole saw.

Hopefully you didn't cut the extension cord and electrocute yourself because you left the cord plugged in.

Power and convenience, what more could anyone want in a desk, besides a cup holder to prevent unfortunate incidents.