ROS + Snappy Ubuntu Core (1) : What is it?

What are the challenges to introduce the market infrastructure of applications such as iPhone’s AppStore and Android’s Google Plain into the world of robots? ROS has been looking into the “Robot App Store” since its inception, but it has not yet been realized.

Among them, the recent appearance of a mechanism called Ubuntu Snappy Core seems to greatly contribute to the opening of the Robot App Store.

Snappy + ROS, https://www.crowdsupply.com/krtkl/snickerdoodle/updates/1890

I’d like to write about Ubuntu Snappy Core and ROS in the several future entries.

The circumstances of Ubuntu

Ubuntu, on which ROS depends as the main base operating system, has two Regular releases twice a year, and its support period is nine months. There is also a release called LTS (Long Term Support) every two years, and the support period is five years. People seeking practical use continue to use the stable LTS while adopting the latest technology and using the Regular release for the new development.

However, devices targeted by Ubuntu are spreading not only to desktop PCs and servers but also to edge devices such as IoT and routers. Unfortunately, Ubuntu Phone would not come out…

For these devices, from the security point of view, it is not a synchronous one like Ubuntu, but continuous updates of more irregular and finer intervals are indispensable. In addition, fault tolerance, such as rolling back when software containing defects is delivered, is required.

Snappy Ubuntu Core

In response to these demands, Ubuntu has developed a mechanism called (Snappy) Ubuntu Core for IoT and edge devices.

This is to separate the OS and device drivers, separate the kernel and the application, and make it possible to update each independently, in a fine cycle.

The circumstances of ROS

Robots can also be seen as a kind of IoT and edge devices, so in the future ROS, this Snappy package system may become mainstream. Also, the release system of ROS seems to be getting flawed.

Until now, ROS has done synchronous releases like Ubuntu. However, with the release once a year, it seems too late to adopt the technologies of moving forward. On the other hand, when using ROS for business, priority is given to operation, and it tends to become conservative not to update frequently.

Also, the ROS package depends on many external libraries. Every time the API of the external library is changed, the package of ROS needs to correspond to it. When the specification changes, it is necessary to check the operation after matching the package.

Therefore, every time it is released, more packages are coming off the release. Despite being a necessity and commonly used package, there are cases in which it is not released due to the fact that there is no maintainer to perform the corrective operation, although the fix is ​​necessary for release, or the release is delayed.

If you think about selling robot products with ROS, at the timing of Ubuntu or ROS update, you do not know what kind of specification change or malfunction will be mixed, and it takes huge resources to deal with it.

Based on the above, we anticipate that Snappy ROS systems will become mainstream in the future.

It is reliable that a robot engineer working for Canonical (Mr. Kyle Fazzari) is vigorously disseminating information. The following series of blogs and videos released in April are also must-see.


Roomblock(4): Low Cost LIDAR: RPLIDAR A2

Roomblock is using a low cost RPLIDAR A2.

Roomblock2

This is very easy to use, and low cost.

range data in rviz

Range data in rviz

This sensor is ROS-ready. You can view the data by typing one command line.

scan matching

Scan matching

laser_scan_matcher package help you to estimate sensor’s motion only from the laser scan data by scan matching.

We share how to build Roomblock at Instructables. Please try it at your own risk.


Roomblock: Autonomous Robot using Roomba, Raspberry Pi, and RPLIDAR(3)

Roomblock is controlled by a Raspberry Pi. As you know, Raspberry Pi is low cost ARM based board computer. We use Raspberry Pi 2, Ubuntu and ROS are installed on it.

IMG_2457

Raspberry Pi 2

The ROI connector on the Roomba and Roomblock are connected with a USB-serial adapter cable.


IMG_2328IMG_1720 (1)
USB-Serial adapter cable
The power source of the Raspberry Pi is a mobile battery.

IMG_1618

Mobile battery

We share how to build Roomblock at Instructables. Please try it at your own risk.


Roomblock: Autonomous Robot using Roomba, Raspberry Pi, and RPLIDAR

You can use Roomba 500, 600, 700 and 800 series as a base of Roomblock. They have a serial port to communicate with external computers. Notice the flagship model Roomba 900 series have no serial port, so you cannot use it.

You can see the serial port as the picture shows. Be careful not to cut your fingers or break your Roomba!


IMG_2455IMG_2453
Roomba 500 series ROI connector

IMG_2450IMG_2451
Roomba 700 series ROI connector
We share how to build Roomblock at Instructables. Please try it at your own risk.


Mapping Experiment in a Large Building

We did very loose evaluation of ROS mapping packages with a relatively large scale building including loop closure. The loop closure is difficult issue for mapping, and it shows some package can close the loop even with the default parameters.


gmapping_mapkarto_maphector_mapcartographer_map

Generated map(from left, gmapping, slam_karto, hector_slam, cartographer)

 

Notice, this result doesn’t compare true efficiency of each algorithm. We just use nearly default parameters for each package. We recommend you to select mapping packages for your problem by yourself. ROS is suitable for doing it.