The Robot Operating System (ROS) 101

ros

Ever heard about the Robot Operating System? It’s a BSD-licensed open-source system for controlling robots, from a variety of hardware. Over the years we’ve shared quite a few projects that run ROS, but nothing on how to actually use ROS. Lucky for us, a robotics company called Clearpath Robotics — who use ROS for everything — have decided to graciously share some tips and tricks on how to get started with ROS 101: An Introduction to the Robot Operating System.

The beauty of the ROS system is that it is made up of a series of independent nodes which communicate with each other using a publish/subscribe messaging model. This means the hardware doesn’t matter. You can use different computers, even different architectures. The example [Ilia Baranov] gives is using an Arduino to publish the messages, a laptop subscribed to them, and even an Android phone used to drive the motors — talk about flexibility!

It appears they will be doing a whole series of these 101 posts, so check it out — they’ve already released numéro 2, ROS 101: A Practical Example. It even includes a ready to go Ubuntu disc image with ROS pre-installed to mess around with on VMWare Player!

And to get you inspired for using ROS, check out this Android controlled robot using it! Or how about a ridiculous wheel-chair-turned-creepy-face-tracking-robot?

Comments

  1. julianoeng says:

    Hello Guy,

    I’m developing a robot based on ros. see the preliminar results: http://jeaeletronica.blogspot.com/2013/11/primeiros-passos-do-bebe-etmos.html

  2. fartface says:

    “is a BSD-licensed system for controlling robotic components from a PC.” So it cant run on “anything” and it must be a PC. As long as it does not need a GUI at all loaded that is fine. You can put a RasPi as the brain and then use duinos to do the rest. And honestly that is what I would really like to see as a Robot OS. a easy to replicate setup that schools and newbies can use. being able to use “anything” is a giant problem to newbies because “anything” never communicates the same way. You cant plug motors directly into a cellphone, and teaching a newbie how to is a lot harder than telling them, “no dont do that with a cellphone, use an arduino with a motor shield.”

    ROS needs to build a base “start here” model that even a person without any electronics ability could follow. Because I have no idea how to get a old Galaxy nexus to drive 20 amp motors directly, or talk via the I2C bus to the main control system. Because if they are using wireless, then it’s already an epic fail. Wired comms for ALL parts of the robot, wireless is for C&C only.

    • Ren says:

      Are you volunteering to write such information down? One of the biggest problems with ANY open source endeavor is finding knowledgeable people WILLING to document the process(es).

    • Ilia says:

      That’s exactly the idea!
      By slowly building up this knowledge base, and giving people a free, virtual environment to try it in, we hope to get people started with ROS as easily as possible.

      In the next few tutorials, we will feature how to interface between the virtual ROS machine, and a real world Arduino (Yep, you can run ROS code on the Arduino!)

      You will be able to read sensor values, and drive a servo from ROS!

  3. gannon says:

    I’ve tried using ROS a few times, and every time has ended in failure. It really is a behemoth!
    Last attempt was to control a wheel-chair based robot using a kinect. We made the robot for a hacking competition at MTU last semester, but ended up ditching ROS for Python / simpleCV.

  4. Zee says:

    ROS is just an unmanageable beast. It takes so long to get working you’re better off writing your own custom system.

  5. Calum Knott says:

    So Ive been using the “turtlebot” on ROS at the moment.

    Ive written some software for generating python scripts to control the direction and movement of the robot

    eg: drive forward 5m, turn 90degrees etc…

    Its a good way to get to know ros… if not a bit pricey!

  6. [skaarj] says:

    You should add the following statement, as the previous system named as “ROS” was a state of the art unix-like system used in the communist block until 1989.
    ROS, or the Romanian Operating System, was used in the PDP clones and IRIS50 clones made by ICE Felix romanian company back in the 70s and the 80s. The mainframes were Felix C and Felix M series (IRIS50 clones) and CORAL (PDP11 clone).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 96,704 other followers