Sunday, July 29, 2012

Less Wobble

I've reinforced the plastic camera stand with some right angle aluminium pieces in order to reduce the amount of wobble when the Turtlebot is being teleoperated. 

Also, I've changed the cameras to Logitech Quickcam 9000s.  These give a better quality image and have a wider field of view, which makes manual navigation easier.  The cameras are angled downwards by 30 degrees.

The cameras are 1.15 metres above floor level, which is enough to see table surfaces and window ledges.

A possible alternative way of making a camera stand might be to use plastic tubes, with slots cut at the bottom to integrate with the button stand, and secured through the middle with a long bolt.  Similar slots could be cut at the top to mount a piece of board on which webcams can be mounted, and the camera USB cables could be fed through the tubes.

Buttonui-ros-pkg 1.1

A new version of the button user interface software has been released.  More information can be found here, and the source code is also available on Launchpad.

The main changes in this version are:
  • Some extra logic for emergency stop
  • The ability to customise messages within the launch file
  • It's possible to use WAV or MP3 files for button events
  • You can specify shell commands to run when any button or navigation event occurs

Currently there is no use of rosserial, and communication between the Arduino and the PC is very simple - it just sends a single byte when a button is pressed.

Friday, July 20, 2012

Open Source Robotics Foundation Interview

After the Open Source Robotics Foundation lightning talk at ROSCon 2012, we had a chance to interview Brian Gerkey CEO of OSRF about the role of the organization and its plans for the future.

What do you see as OSRF's core mission?
Our mission, which as a nonprofit company we're obligated to follow, is to "support the development, distribution, and adoption of open source software for use in robotics research, education, and product development." As you might expect, we'll primarily be doing open source software development: writing, improving, and contributing to open source code.  But we'll also be doing outreach and promotion, such as organizing future editions of ROSCon and working with companies that are considering using open source robotics software.

Will OSRF be involved in defining standards for service robots and/or UAVs?
As a veteran of multiple iterations of various robotics standards efforts, I'm instinctively wary of getting involved in new ones.  If the right people are involved and the goal is clear, I'm happy to participate.  But I don't see standards as one of the core contributions that OSRF will make to the community.

What will OSRF be doing to encourage use of open source in robotics?
Some possible things might be:
  • Set up web sites for hosting of open software/hardware designs
  • Define curricula packages which can be used in schools or universities
  • A search engine for open robot designs
  • Encourage modularity and recombination of existing designs
  • Sponsor the creation of a robotics Linux distro (Robuntu, or whatever)
  • An achievements system similar to the Ubuntu achievements lens
  • Set up a site where there are always telerobots available to test drive
Those all sound like good ideas :)  At the moment, we're focused on getting the company set up and ready to jump into software development.  We don't have any concrete plans for the kinds of activities you mentioned there, but we're always listening for good ideas.

How will OSRF be structured?  Will board members be elected?  Will there be different types of membership?
Legally, OSRF is a California Nonprofit Public Benefit Corporation.  Its
activities are overseen by a board of directors, who are listed at the
website [].  The membership of the board can change over time, as decided by the board.  We will very likely offer individual and corporate memberships; stay tuned.

As a significant amount of code developed for projects like ROS is written by graduate students and hackers. How are their interests represented?
One of our goals in creating OSRF is to provide a neutral steward for the community, which we believe will in turn lead to greater contribution to and adoption of open source robot software.  That's good for everybody involved, but it's especially good for students who will graduate and look for jobs, and for hackers and hobbyists who are cooking up new companies in their garages.  More specifically, events like ROSCon offer a great opportunity for students and hackers who aren't otherwise connected to the broader community to get involved and meet like-minded people.

Is the OSRF interested in supporting other projects?
Initially, we're planning to put a lot of work into the Gazebo simulator and the ROS software that surrounds it.  We believe that there is a lot of benefit to be had by significantly improving the capability and availability of robot simulation, and that we can have greater impact by taking a "deep dive" in one area rather than taking shallow responsibility for everything.  Over time, we'll contribute to a broader variety of projects, mostly drawn from the ROS ecosystem.

Is the OSRF primarily focused on software or is there also interest in supporting open source robotics hardware?
We're certainly supportive of efforts in open source robotics hardware, but OSRF is a software-focused organization.  Because we work on robot software, we'll necessarily work with hardware, but I don't foresee OSRF doing much in the way of hardware development.

Is there a way for individuals or companies to financially support the OSRF? If so, how?
Absolutely!  As a nonprofit company, OSRF is open to discussing all sorts of financial support: donations, grants, contracts, etc.  We're still tying up the loose ends on getting OSRF set up and running.  Once that's all in place this summer, we'll start talking in earnest with both companies and individuals about what sort of financial support they might be able to provide.  In the meantime, please send any inquiries about supporting OSRF to

Will the OSRF look toward something like a "ROS Compatible" certification program at some point in the future?
A ROS certification program is an interesting idea, and is something
that OSRF will look into.  It's probably most valuable in a domain-specific manner.  For example, I can imagine a way of certifying a ROS-controlled industrial robot arm as being compatible with an accepted ROS interface standard (perhaps crafted by the forthcoming ROS Industrial Consortium: Similarly, I can imagine a TurtleBot being certified as implementing REP 119 (  But I would stress that *compatibility* would be the focus; certifying functionality is an entirely different topic.

Do you have any insights on why open source is important for robotics in particular?
I don't think that open source is important for robotics in particular; I think that it's important for every emerging sector of the computer industry.  Innovation and entrepreneurship works best when the people with good ideas for how to use some new technology are provided with an open source toolbox that's easy and free to use. Robotics is one of many domains where the availability of good open source software will have a large positive impact on how the market develops.

Is the OSRF taking over release management of ROS or is this a long term goal?
For now, Willow Garage will continue to handle ROS release management, led by ROS Platform Manager Tully Foote.  OSRF will coordinate closely with Willow on ROS releases, and, over time, I expect that the responsibility for release management will transition to OSRF.   The timing of the transition will depend, primarily, on staffing and funding.

Thanks to Brian for talking emailing with us!

Also as an added bonus, Brian has just announced that OSRF is hiring!

Update: Fixed link to Board of Directors

Camera mounting

Here is an initial idea for mounting a camera onto the turtlebot.  The button user interface has a cross piece to which it's quite easy to mount things, and I've used a couple of pieces of right angle plastic, with a Minoru stereo webcam positioned on a piece of hardboard at the top.

The camera is just fixed in place, and I could add some extra packing behind it if it needs to be angled downwards.  My thinking here is that although the obvious thing to do is to have it on a servo tilt mechanism I'll start with the simplest possible system and then see what the issues are.  Tilting probably would have advantages in terms of being able to look down at the floor or to view bottles being carried (there could be some additional computer vision to count the bottles and determine whether they have lids).

The height of the camera is intended to be suitable for viewing desk surfaces or window ledges.  It's not ideally suited for interacting with people - unless they're sitting down, but that too could also be changed.  It would be fairly easy to add a couple of extra right angle plastic pieces with some pre-drilled holes so that the height of the camera could be easily adjustable up or down.

Why not just mount the Kinect sensor higher?  That would also be a possibility, but the Kinect is a large and quite heavy sensor, and mounting it in a higher position could introduce stability issues which would also have consequences for the accuracy of mapping and localisation.  The webcam is small and lightweight, so it doesn't need a very industrial stand to support it and barely alters the robot's centre of gravity.

Stereo vision with webcams has the well known problem of lack of camera synchronization, but for tasks such as inspecting the surface of a desktop this isn't necessarily a major impediment.  In the sorts of scenario I'm thinking of you could schedule the robot to visit certain places, then the webcam would turn on, take some images and turn off again (preserving electrical and processing power) with the assumption that not much in the field of view is likely to change during the few milliseconds when frames are being grabbed and the robot isn't in motion.  Even if the onboard computer was quite slow, sitting and processing some stereo images for a few seconds would be no big deal.

RoboSub 2012

Come to observation depth for The AUVSI Foundation and The Office of Naval Research's 15th International RoboSub Competition is open to the public and runs from July 17th through 22 at SSC Pacific TRANSDEC in sunny San Diego, California.

More videos can be found here. More Coverage here.

Also, our sources have indicated that the hosts are quite excited and would love for you to visit. "Stay tuned... more stories coming in LA Times and other media outlets over the weekend! Better yet, come out and see it all for yourself... bring the family! FOR THE FIRST TIME EVER... WE HAVE JUMBOTRON IN PLACE SO YOU CAN ACTUALLY WATCH WHAT HAPPENS... UNDERWATER! "

This sounds awesome, wish we were there.

Monday, July 16, 2012

Get your own simulated Robonaut

Now you can have your very own Robonaut to work with, just like the astronauts aboard the International Space Station.

If you are like me, you may only be able to simulate being an astronaut, so it seems appropriate to work with a simulated Robotnaut. The simulation works in Gazebo and can be programmed using ROS.

Now someone needs to turn this into a video game where NASA calls you up for the space program if you get a high enough score. On the other hand, perhaps it is video game and the score is determined by number of lines of code you write.

Either way, thanks to NASA, GM and the Robonaut team for making this available.

Monday, July 9, 2012

TurtleBot Power Interface Shield

The TurtleBot Power Interface Shield for the Arduino Mega board is a communication bridge between the Arduino or PC and the TurtleBot.
The shield has a 12V and a 5V voltage regulators that can be turned on or off  independently of each other. The Arduino board can enable and disable the voltage regulators as well.

The power to the Arduino board can be turned on or off with a switch on the upper right corner of the shield.  

There are two 5V terminals and three 12V terminals for the Kinect, actuators, and other sensors . An external battery or power supply can be attached using a Dean's connector or a screw terminal. One may choose to power the voltage regulators using the Roomba's internal battery or the external power supply. However, the MiniDin cable can supply up to 340mA while the max current supplied by the voltage regulators is 1.5A per regulator.

A MiniDin cable is included and can connect the shield to an iRobot Create, or a 500 series Roomba. A USB (type B) cable connects the shield to the PC.

You can purchase the shield by clicking here.

Wednesday, July 4, 2012

Happy 4th of July!

In the United States and many other countries, it is traditional for robots to wear flags instead of hats. So here is a little something to get your TurtleBot ready for America's Birthday!