Getting Started with the ROS (Robot OS)

TurtleBot3 by Robotis - ROS

TurtleBot3 by Robotis - ROS

Among the roboticists, both hobbyists and professionals alike, the ROS (Robot Operating System, https://www.ros.org/) is rapidly becoming one of the major robotics platform for building and driving robots. Some people will argue that the ROS is not exactly an Operating System, as it is a platform or a collection of tools that runs on a Linux OS. Despite of how you categorize it, the true power of ROS comes from the active ROS community and the community developed open-source softwares and middle-wares that are re-usable.

Before the ROS, a roboticist would spend countless hours reinventing the wheel each time they start a new project. One of my biggest frustration coming from the software engineering, is the lack of standardized conventions for driving hardware functionalities. To build a simple 5 axis manipulator aka Robot Arm, I find myself spending considerable amount of time and effort learning about the individual hardware components and its embedded softwares. As the robotics require advanced skills in multiple domains including mechanical engineering, electrical engineering, and software engineering (and nowadays Machine Learning, Computer Vision etc.), it is most likely that a robotics project will get stalled before you get to the point where you start thinking about programming the robot to move. Needless to say, that the small research project involving inverse kinematics of a robot arm, is not a small project due to the hidden obstacles and barriers coming from the multiple domains of expertise that are beyond most of us.

ROS as a meta-operating system provides process management and hardware abstraction. This means, you can re-use the thousands of hardware and software components that are already built by the ROS community and focus in the area of your expertise. Think of it as getting access to various Arduino libraries that extends the functionalities of your sensors without have to write it yourself. ROS is especially helpful for driving advanced components and/or very specific use cases. I think the ROS provides the best opportunity to leverage what other have already built and to share what you have built with the others.

There are lots of resources available on the internet and the bookstores. One of the resources I would recommend starting out is the “A Gentle Introduction to ROS” by Mr. Jason M. O’Kane - https://www.cse.sc.edu/~jokane/agitr/ . The book is free for individual use and is highly recommended by the ROS community. Why not give ROS a try? It will certainly be a great tool to have in your robotics toolkit.

Previous
Previous

Choosing between the ROS 1 and ROS 2 - For Dummies Guide for choosing Robot OS

Next
Next

RESEARCH: DFRobot HUSKYLENS - an easy-to-use AI vision sensor