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?
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
Only for complementation:
We are using a stereo webcam;
Raspberry pi board;
Scripts with python/C++ and opencv library;
dynamixel servos;
and more.
please send me a feedback or ask
jea.eletronica@gmail.com
Thanks for all
JUst as an idea, for when you will be designing new board.
https://www.raspberrypi.org/blog/real-time-depth-perception-with-the-compute-module/
“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.
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).
In my own defense, I’m willing to write documentation (in my copious free time B^) but I’m not knowledgeable in specifics. Alas, if I only had the time to sit with a developer and learn from them the intricacies of their project, I’d do it.
But you have copious free time…
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!
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.
https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash3/t31/1502854_10200852800944694_1792866728_o.jpg
ROS is just an unmanageable beast. It takes so long to get working you’re better off writing your own custom system.
I feel your pain. I have started ROS several times but building a python codeset for the robots has always been faster and understandable for me. My most recent look into ROS is with the Clear Path TurtleBot2. The fist run failed because there really was no support in getting ROS up. It seems that they heard the cry for help and are now offering help in the form of tutorials. Lets see if this works. As we all know if you can get ROS up and running it does offer the biggest bang for the buck. The open source and available software coming out of NASA, and the Universities around the world give the amateur community access to some of the best robotic functions/packages available.
I’ve made an entire framework with a central bus-master and services (nodes) all around. I made that in 3 months, for controlling my personal humanoid robot and it work’s correctly. Now I must use ROS for work and I really hate it.
I don’t understand how one can say that it work’s everywhere… It works never and nowhere form me. Just thing for losing time, spending money and break robots…
I totally agree with your comment.
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!
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).