Rhys Davies
on 8 October 2019
The Ubuntu robotics team presents, The State of Robotics. A monthly blog series that will round up exciting news in robotics, discuss projects using ROS, and showcase developments made by the Ubuntu robotics team and community. Every day, people make contributions to the world of robotics. And every day, work goes unnoticed that could change the course of projects across the globe. This could be anything from a software patch to putting the final touches on a ROS enabled robot dog. But no longer. The hope here is that this will become a highlight reel and a community piece where folks will be able to find out what’s going on in the world of ROS and Ubuntu robotics.
This, our first instalment, will be heavy on the Ubuntu robotics’ teams work. But in the future, if you are working on a project using ROS and or Ubuntu and you want us to talk about it, let us know. Send a summary of your work to [email protected], and it might feature in next month’s blog! Now, let’s discuss September.
ROS 1 and ROS 2 security scanning and bug fixing
Despite being very much in use, ROS 1 inevitably still has certain bugs and CVEs (common vulnerabilities and exposures). The Ubuntu Security team went through several core ROS 1 and 2 packages, using a variety of scanning tools, and their own eyeballs, to look for bugs (especially those people could exploit). They found 31 bugs in ROS 1, and have already fixed 21 of them (with six more fixes in review). Three of these were logged as CVEs, each of them an overflow in ros_comm, a pivotal ROS 1 component. In ROS 2, they discovered six bugs, with five corrected so far in collaboration with eProsima, including infinite loops and buffer overflows in Fast RTPS, the default DDS implementation.
The Ubuntu Security team does this proactive security scanning and bug fixing continuously to ensure the safety of ROS users. In this blog series, there will be monthly updates on the fixes and patches that were implemented that month to make ROS a more secure environment. Going forward this will be the numbers and a discussion of any significant fixes. Because at Canonical, we know that robot security matters.
Robotics competitions
Two robotics competitions were announced this month that look really exciting. In the future the Ubuntu robotics team will be getting involved, but for now that’s just a dream:
First up is Nasa’s Space Robotics Challenge Phase 2. This challenge was announced recently for teams to solve a lunar in-situ resource utilisation (ISRU) mission. It requires the development of software to allow a virtual team of robotic systems to operate autonomously to successfully achieve specific tasks. To sign up and for more information, click here.
Secondly, he Turtlebot3 Autorace is an annual autonomous driving competition held in Korea. For three years it has been a stage for excellent ideas and creative thinking around adapting the highly versatile Turtlebot3. The officials at Turtlebot3 Autorace 2019 have not disclosed much information yet. But the competition is already assured to be a whole lot of fun as the official platform is the Turtlebot3!
Canonical takes the helm of the ROS 2 Security working group
Canonical has ramped up its security effort on ROS 2 throughout the year. Things really took off in June when the Ubuntu Robotics and Ubuntu Security teams joined the Montreal Snapcraft Summit to host a ROS 2 security hackathon. They invited engineers from the community and companies like Open Robotics and Amazon, and everyone sat at the same table and hacked away on SROS 2.
Fast forward to August to see Canonical joining the ROS 2 Technical Steering Committee. Now in September, Canonical has stepped into a leadership role as Chair of the ROS 2 Security working group to help coordinate efforts around the entirety ROS 2’s security features.
Teleop_tools arrive in ROS 2 Dasing!
The Ubuntu robotics team is happy to announce that teleop_tools is now ported to ROS 2 Dashing! As its name suggests, the teleop_tools package is a collection of tools for the teleoperation of a robot from your mouse, keyboard or joystick. It is easy to get:
[sudo] apt-get install ros-dashing-teleop-tools.
Big in Japan, ROSCon Japan!
Canonical made a showing at this year’s ROSCON Japan. Our own Ted Kern presented a lightning talk behind the motivations for adding mypy support to ament_lint, the Canonical attendees demoed a robot running ROS snaps on Ubuntu Core, and there were loads of conversations with individuals in the Japanese robotics community – thanks to our friends and colleagues with Ubuntu Japan for interpreting. It was enlightening to see how much was happening with ROS in the Japanese maker space and the corporate space alike. Read about it in more detail in the ROSCon Japan 2019 blog post.
Are cheat sheets really cheating?
Because ROS 2 is all new and shiny, it is sometimes difficult to remember all those new command lines. Not that they are super complicated, but they are many! That’s why the Ubuntu Robotics team has put together some cheat sheets to help you remember. One of them concerns ROS 2 CLI tools and the other concerns colcon. Feel free to share them, print and pin them above your screen. Of course, feel free to contribute to them too, they’re all on Github.
catkin_make_isolated: support ignored packages
When building a ROS 1 snap, a developer can build a subset of the packages in the workspace, or build the entire workspace. However, it’s not unusual to have only a few packages in the workspace not built properly. In fact, one of our customers recently ran into exactly that scenario. The typical way to disable packages in a workspace is to create a `CATKIN_IGNORE` file within the package. But that disables it for all users of the workspace, and in this case, they just wanted to disable it in the snap. It turns out that `catkin_make_isolated` doesn’t support such an option. So the Ubuntu Robotics team added one. Once it’s released, snapcraft will be able to utilise it too.
Snapcraft: add the ability to ignore packages in a colcon workspace
Once a customer needed the ability to ignore packages in ROS 1 (using Catkin), the Ubuntu Robotics team realised that customers would also want that functionality when building a ROS 2 snap. So, they added support for it to the Colcon plugin as well. (Thankfully Colcon already supported it, no need for upstream changes).
“Grrr what’s that message body again?”
It can get frustrating when topics need publishing, services need calling, or an action goal needs sending from the terminal in ROS 2. But “grrr” no longer, the Ubuntu robotics team has good news. They landed a series of pull requests (299, 300, 301) that enables autocompletion for the topic/request/goal message body! This means you can publish call and send action goals quicker and easier until your heart’s content.
Shopify acquires 6 River Systems
ROS-powered 6 River Systems makes what are called collaborative robots. (i.e. work alongside flesh and blood staff) Robots that help workers find items in a warehouse. It was just acquired by Shopify, which means, in Open Robotics’ words: “ROS will be handling packages headed all over the globe!”
Outro
September was a busy month, and October is already at full speed so watch out for next months post. This series is put together entirely by the Ubuntu Robotics team, but they don’t want to take all of the limelight. Although the work they do is worth talking about and it will be on stage in this series, it should also be a stage for the community. Developers, tinkerers and hackers. If there’s a project you are working on or that you think should be talked about, let us know. If its ROS and or Ubuntu related, we’d love to hear about it and get in touch. Send a summary to[email protected], and if we want to feature it next month, we’ll be in touch. Thanks for reading.