What follows is the ROS story of Paschalis Pelitaris from France. Paschalis is a ROS student at the Robot Ignite Academy, and he wanted to share his ROS engagement with all of us.
How my interest grew
From an early age, I was fascinated by the notion of autonomous machines capable of sensing their surroundings, extracting valuable information in order to better understand their environment, and finally being able to act upon it, changing its state. I believe that the advancements and changes that can derive in the socioeconomic structures from the increased integration of autonomous machines in everyday life will be tremendous. Of course, the opportunities that will arise have to be treated carefully, but let’s not delve into this philosophical subject now.
During and after my university studies for Electrical and Computer Engineering, I had the chance to work on various AI and robotics projects. But gradually, I moved closer to the “machine learning” part, with tasks like Computer Vision and NLP. Coming from a non-embodied approach to building cognition where one tries to solve intelligence with a dualistic mindset, trying to teach the brain so that the interchangeable bodies that it will occupy will eventually follow, I was intrigued by the holistic view of intelligence that “Embodied Cognition” represents. Embodied cognition is the philosophical theory that claims that the best way for the brain to understand its surroundings and thus the world in which it operates is through the body it occupies. This quickly led me to realize the importance of being able to create and work alongside a body, a robotic body. Training Neural Network models was not enough. I knew I had to become proficient in developing robots.
The first, shy, steps
It was during my years at the university. Through my engagement with the University’s Robotics Team, I first came across and later was introduced to the Robot Operating System (ROS).
ROS is a middleware, or meta-operating system, created by two Ph.D. students, Eric Berger and Keenan Wyrobek. And further developed later by Willow Garage and finally Open Robotics, in order to simplify and eventually standardize the development of software for Robots.
You see, until then every Robotics researcher and company interested in working on robotics had to create their own platform to work on. This procedure was tedious and needed a lot, if not most, of the time and resources available. Also, the philosophy of freely distributing the code of your project so that others can use, change and improve it was not that prominent as most of the software was proprietary. That was one of the big contributions of ROS in the Robotics research society. Built with a philosophy of open source and modular software development it provided the ability to reuse code from other projects and thus increasing the speed of development cycles.
Additionally, it provides integration with other open-source frameworks that extend its functionality, such as “Moveit” for kinematics control and motion planning and “Gazebo” for 3D Robot simulations. Here, I would like to point out the importance of simulation in Robotics. It provides a low cost, easily accessible environment where multiple robots can be tested, and evaluated without the need to physically own any of them. It also provides an effective way to train robots with lots of “cheap” data before deploying them into the real world.
ROS vs …
Although there are other middleware for robotics similar to ROS, nowadays ROS is the framework that is most widely used by academia, and an increasing number of enterprises for Robot software development.
Apart from the features I mentioned before, one of the reasons why that’s the case might be that it is Cross-platform and language-agnostic, meaning that it can run on all major platforms and that the code can be implemented in multiple programming languages. Furthermore, ROS is becoming the standard for robotics, and I am of the belief that this will be solidified even more with ROS2.
Already the knowledge of ROS is a highly demanded skill in the robotics job market. But the main reasons why I chose ROS over the other solutions available are the following two:
- Firstly, it has a large and vibrant community. Apart from the fact that the active members of its community provide new packages or updates to existing ones making development faster, they also offer great troubleshooting advice that can help quickly overcome small or larger pitfalls.
- Secondly, there is a plethora of documentation, books, tutorials, videos, and MOOCs available to get you going in “relatively” no time. This is a real advantage for beginners, it lowers the learning curve and gives you positive feedback when you see something that you developed working without being stuck at each step of the way.
Becoming better at ROS
And speaking about sources that can help you get up to speed with ROS quickly and smoothly, one of them stood out for me.
Of course, ROS has its official documentation and that’s a good starting point. Even though, there have been some concerns about the approachability of ROS documentation towards beginners. Personally, I think that ros.org provides decent documentation, but I feel that it lacks the interactiveness that we all got too used to lately. This is also a weakness of the second possible source of material, books. Although, I like how much depth a book can cover and that you can always go back to it for reference as long as you have it close. Online Videos and MOOCs can solve this drawback of static text. One can ask questions about things she has difficulty understanding and get answers fairly quickly.
However, some online video tutorials luck a good structure or cover topics sparsely. The same cannot be said for the videos of The Construct YouTube channel. For example, their “ROS in 5 minutes” playlist is a good point to start, it covers most of the basic tools and ideas you need to know. But what is even better is their online teaching platform Robot Ignite Academy (RIA). There, one can find almost 30 different courses that cover different topics and applications of ROS. The courses are also organized to “Paths”, bundles of courses with similar orientation for different purposes and uses of ROS. These courses are structured for a proposed duration of 5 days and the “Paths” for a duration of 1 month, so by the end of each week, you can finish with one course, move to the next one and by the end of the month you’ve completed the Path. RIA employs the philosophy of learning by making. It is interactive, and you can start learning right away. You don’t even have to install ROS on your computer, you can access it from every device. This is made possible by ROS Development Studio (ROSDS), the Construct’s online ROS platform. The learning actually takes place inside the ROSDS. The relative theory is laid out along with the steps of each tutorial and you can also watch the corresponding class video. You can run code and see the results in a simulated environment. It also features live class sessions on a specific topic every week.
And for all that, Robot Ignite Academy has become my weapon of choice for learning ROS.
The journey has just begun…
Now, I am already on my way to complete my first “Path”, “Machine Learning for Robotics”. After a recap of the ROS basics, I will move on to how to utilize TensorFlow and OpenAI Gym to train autonomous Agents. After that “ROS for Self-driving Cars”, will follow and then the possibilities are numerous…