Skip to main content

Blog posts tagged "robotics"

The State of Robotics – September 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 cha

Robotics security: What is SROS 2?

We at Canonical have been hard at work on the security features of version 2 of the Robot Operating System (ROS 2). However, if we lift our collective heads up out of the weeds it’s easy to see folks completely misunderstanding how security works today in ROS 2. We’ve written some design articles to help

ROSCon Japan 2019!

ROSCon Japan 2019 was a resounding success. We took in the keynote speech from Ryan Gariepy, Co-founder and CTO of Clearpath Robotics. We demoed the first iteration of a Robotics arm from Niryo. Our own Ted Kern gave a lightning talk on type-checked Python in ROS 2, and we spoke to lots of individuals in

The teleop_tools arrive in ROS 2 Dashing!

After exploring some ROS 2 subtleties and implementing some CLI tools we felt were missing, the time has come to get our hands even more dirty. What better way to learn than by doing? C’est en forgeant qu’on devient forgeron Humm, pardon my french, Practice makes perfect To enter the realm of ROS 2 and

Building a better TurtleBot3

TurtleBot3 was released in 2017 and is positioned as a low-cost, open-source robot kit. For new owners of the TurtleBot3, there are various resources online that will assist you with building your brand new TurtleBot3 out of the box. One such example is the official TurtleBot3 instructional video. While it is a great video to

Canonical joins the ROS 2 Technical Steering Committee

We at Canonical care deeply about robotics. We firmly believe that robots based on Linux are cheaper to develop, more flexible, more secure, and faster to market. One of the contributing factors to this being the case is the Robot Operating System (ROS). ROS is by far the most popular middleware for creating Linux-powered robots.

Components vs. Plugins in ROS 2

After our series of post about ROS 2 CLI tools (1, 2), we continue exploring the ROS 2 realm taking a look at ROS 2 components and more specifically, how they compare to plugins. spoiler alert: Long story short, components are plugins. Short story long? Is that a thing? Well plugins and components are indeed

How to add a linter to ROS 2

A well configured linter can catch common errors before code is even run or compiled. ROS 2 makes it easy to add linters of your choice and make them part of your package’s testing pipeline. We’ll step through the process, from start to finish, of adding a linter to ament so it can be used

Linting ROS 2 Packages with mypy

One of the most common complaints from developers moving into large Python codebases is the difficulty in figuring out type information, and the ease by which type mismatch errors can appear at runtime. Python 3.5 added support for a type annotation system, described in PEP 484. Python 3.6+ expands this with individual variable annotation

Creating a ROS 2 CLI command and verb

Following our previous post on ROS 2 CLI (Command Line Interface), we will see here how one can extend the set of existing CLI tools by introducing a new command and its related verb(s). As support for this tutorial, we will create a ‘Hello World’ example so that the new command will be hello and

ROS 2 Command Line Interface

Disclosure: read the post until the end, a surprise awaits you! Moving from ROS 1 to ROS 2 can be a little overwhelming.It is a lot of (new) concepts, tools and a large codebase to get familiar with. And just like many of you, I am getting started with ROS 2. One of the central

Your first robotic arm with Ubuntu Core, coming from Niryo

Niryo has built a fantastic 6-axis robotic arm called ‘Niryo One’. It is a 3D-printed, affordable robotic arm focused mainly on educational purposes. Additionally, it is fully open source and based on ROS. On the hardware side, it is powered by a Raspberry Pi 3 and NiryoStepper motors, based on Arduino microcontrollers. When we found

Customisable for the enterprise: the next-generation of drones

Drones, and their wide-ranging uses, have been a constant topic of conversation for some years now, but we’re only just beginning to move away from the hypothetical and into reality. The FAA estimates that there will be 2 million drones in the United States alone in 2019, as adoption within the likes of distribution, construction,

Small Robot Company sows the seeds for autonomous and more profitable farming

In Europe, the cost of running a cereal farm – cultivating wheat, rice, and other grains – has risen by 85% in the last 25 years, yet crop yields and revenues have stagnated. And while farms struggle to remain profitable, it won’t be long before those static yields become insufficient to support growing populations. Reliance

Speed up your ROS snap builds

A while back I wrote a post about distributing a ROS system among multiple snaps. If you want to enable some sort of add-on story, you need to have multiple snaps, and that remains the way to do it today with ROS. That approach works, but I’ll be the first to admit that it’s not

ROS 2 launch: required nodes

When using the Robot Operating System (ROS), it’s fairly common to want to shut down a launched system if a specific node (or set of nodes) exits. This is pretty easy in ROS1, because launch files support the required attribute on each node. As a result, crafting a two-node system where one of the nodes