Skip to content

Commit f6d9565

Browse files
committed
Added new blogposts.
1 parent 5509277 commit f6d9565

14 files changed

Lines changed: 192 additions & 2 deletions

_posts/2020-09-23-snap-XRCEDDS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ author: francesca-finocchiaro
55

66
In collaboration with [Canonical](https://canonical.com/), we took the liberty to wrap the [Micro XRCE-DDS Agent](https://micro-xrce-dds.docs.eprosima.com/en/latest/agent.html) as a [snap](https://snapcraft.io/) package, which sets an important milestone for easing the use of Micro XRCE-DDS.
77

8-
<img alt="Canonical" src="/img/posts/canonical.png" width="30%"/>
8+
<img alt="Canonical" src="/img/posts/canonical.png" width="35%"/>
99

1010
Snap is a package manager designed to bundle and handle applications and their dependencies on several Linux distros, among which Ubuntu.
1111

12-
<img alt="Snap" src="/img/posts/snap2.png" width="40%"/>
12+
<img alt="Snap" src="/img/posts/snap2.png" width="45%"/>
1313

1414
The snap packaging of the Agent comes with two ways of running it: as a simple executable or by means of a Linux service.
1515

_posts/2020-10-05-moveit.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: micro-ROS & MoveIt Demo!
3+
author: francesca-finocchiaro
4+
---
5+
6+
We have packaged and delivered a new demo to showcase the integration between micro-ROS and [MoveIt 2](https://moveit.ros.org/), a manipulation framework for robotic applications created and maintained by [PickNik](https://picknik.ai/), especially designed to interoperate with ROS 2. The final result is displayed with the ROS visualization tool [Rviz](http://wiki.ros.org/rviz).
7+
8+
We designed the demo in such a way that the MoveIt 2 manipulation and planification algorithms causes a virtual arm to reach out to the board as this is being moved in real space and publishes data on its position and orientation to the ROS 2 ecosystem.
9+
10+
With this demo we bring micro-ROS to a whole different level: thanks to MoveIt’s kinematic planification talent, an app running on a microcontroller is enabled to be integrated into complex algorithms and ROS 2 workflows. This allows all robots in micro-ROS’ ecosystem to perform actual ‘stunts’ of all types.
11+
12+
To run micro-ROS, we employ a [STM32L4 Development IoT kit](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.ht) in combination with [Zephyr](https://zephyrproject.org/). The board offers several general-purpose I/O pins and peripherals to communicate its 32-bits microcontroller with the external world. It also includes many sensors. For this demo, we make use of a 6-DoF Inertial Measurement Unit (LSM6DSL), composed of an accelerometer and a gyroscope, and a 3-DoF magnetometer (LIS3MDL). The fusion of the measurements fetched by these sensors outputs the pose, or [quaternion attitude](https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation), of the board, providing its relative orientation with respect to a fixed reference frame.
13+
The pose data is then forwarded to the ROS world, where it is consumed by both Rviz and MoveIt. The former uses it directly to represent the position and orientation of the board in its graphical interface, while MoveIt uses it to calculate the movement that the virtual arm has to perform to "touch" it, according to its kinematic algorithms for motion planning. The resulting movement is then integrated into Rviz and represented by means of its [virtual *panda* robotic arm](https://github.com/ros-planning/panda_moveit_config), a standard tool employed by MoveIt in tutorials and graphic interfaces.
14+
15+
Find the full video of the demo below:
16+
17+
<iframe width="560" height="315" src="https://www.youtube.com/embed/wgIKGUGSX7Y" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
18+
19+
Find the dedicated repo at [this link](https://github.com/micro-ROS/micro-ROS_moveit2_demo), with instructions on how to reproduce the demo.
20+

_posts/2020-11-12-ROS_world.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: micro-ROS @ ROS World 2020!
3+
author: francesca-finocchiaro
4+
---
5+
6+
This year's ROS-Con, due to the pandemic, has been transformed into a virtual event, full of awesome presentations and discussions, the [ROS World 2020 Conference](https://roscon.ros.org/world/2020/)!
7+
8+
We have been hosted by the [FIWARE](https://www.fiware.org/) parallel track session, and the presentation circled around micro-ROS’ latest features and developments, after a due, though brief, introduction to the project. Among the topics that were discussed:
9+
10+
- [micro-ROS twofold build system approach](https://github.com/micro-ROS/micro_ros_setup/pull/190)
11+
- Integration into [Arduino](https://github.com/micro-ROS/micro_ros_arduino), [Zephyr](https://github.com/micro-ROS/micro_ros_zephyr_module) and [ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component) development frameworks
12+
- Client-Agent matching by [discovery](https://discourse.ros.org/t/discovery-in-micro-ros/16611)
13+
- [Graph support](https://discourse.ros.org/t/graph-support-in-micro-ros/17266)
14+
- p2p functionality (WIP)
15+
- [New demo: micro-ROS & MoveIt](https://github.com/micro-ROS/micro-ROS_moveit2_demo)
16+
- [micro-ROS goes AIoT](https://discourse.ros.org/t/micro-ros-goes-aiot/17407): integration with [DephtAI](https://luxonis.com/depthai), by [LUXonis](https://luxonis.com/)
17+
18+
And that’s not it! micro-ROS will be also present as a featured guest in a bunch of other talks by collaborators and friends, among which Nuno Marques from the [Dronecode Foundation](https://www.dronecode.org/) and Francisco Melendez from FIWARE.
19+
20+
Find the presentation [here](/download/ROSCon2020-FrancescaFinocchiaro.pdf).
21+
22+
<embed src="/download/ROSCon2020-FrancescaFinocchiaro.pdf" type="application/pdf" width="100%" height="450px"/>

_posts/2020-11-12-graphs.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: New support for graphs
3+
author: francesca-finocchiaro
4+
---
5+
6+
We are getting every day closer to bringing the complete ROS 2 feature list into micro-ROS. Our last effort towards this direction is the inclusion of a dedicated graph manager into the micro-ROS Agent and Client’s RMW, marking the first big divergence point between the former and the Micro XRCE-DDS Agent, and providing micro-ROS with unprecedented introspection capabilities.
7+
8+
To do so, we have added a DDS participant into the Agent that scans the network in search of the available ROS 2 entities (nodes, publishers, subscribers, services and so on), and publishes them onto a specific topic, which is listened to by the RMW. From this layer, the ROS 2 graph information is fetched by the upper layers and passed to the user.
9+
10+
This is complemented by the ability of micro-ROS to also inject information about its own ROS 2 entities into the ROS 2 global dataspace, so that users executing graph-related tasks can gather information about which micro-ROS entities are present at the moment.
11+
12+
13+
<img alt="EWG advertisement" src="/img/posts/graph.png" width="100%"/>
14+
15+
Examples to guide the user on how to use this new feature can be found [here](https://github.com/micro-ROS/micro-ROS-demos/tree/foxy/rclc/graph_introspection).

_posts/2020-11-18-luxonis.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: micro-ROS goes AIoT!
3+
author: francesca-finocchiaro
4+
---
5+
6+
We’re working with the [LUXonis]() team on the integration of micro-ROS with an exciting AIoT (Artificial Intelligence of Things) project, involving the [DepthAI BW1092 board](https://shop.luxonis.com/products/bw1092). This small device enables interacting with LUXonis [DepthAI](https://luxonis.com/depthai) SoM from an [ESP32](https://www.espressif.com/en/products/socs/esp32) microcontroller.
7+
8+
<img alt="EWG advertisement" src="/img/posts/depthai.jpeg" width="100%"/>
9+
10+
DepthAI is a platform built around the [Myriad X](https://www.intel.com/content/www/us/en/products/processors/movidius-vpu/movidius-myriad-x.html) which combines depth perception, neural inference and object tracking, all accessible via a Python API and a plug/play SoM with open-source hardware. It comes integrated with a variety of platforms, and in the case of the board we use for our project, it brings these capabilities to the embedded world.
11+
12+
The DepthAI BW1092 features three cameras (a general one, plus two allowing for stereoscopic vision), making it possible to run 3D object detection out of the box. In turn, this allows retrieving the metadata coming out of a Neural Network, running inside the Myriad X processor, into the development environment of the ESP32 MCU. Thanks to the integration with micro-ROS, it will be possible to bring these data to the ROS 2 ecosystem, exposing ROS 2 topics with the results of classification networks with spatial vision coming out of an embedded device.
13+
14+
If we get lucky with the integration we might be seeing soon our next PointCloud message coming directly from the DepthAI spatial vision calculations!

_posts/2020-11-20-IS.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: New demo - ROS 2 to micro-ROS TCP tunneling via Integration Service
3+
author: francesca-finocchiaro
4+
---
5+
6+
OFERA partner [eProsima](https://www.eprosima.com/) has been working on a demo combining several of its cutting-edge technologies. The demo shows how two separate ROS 2 dataspaces hosted by distinct subnets can be put into communication over the WAN thanks to [Fast DDS TCP capabilities](https://fast-dds.docs.eprosima.com/en/latest/fastdds/transport/tcp/tcp.html) and to [Integration Service](https://integration-service.docs.eprosima.com/en/latest/index.htm), the tool enabling intercommunication of any protocol with [Fast DDS](https://fast-dds.docs.eprosima.com/en/latest/index.html). The setup consists of a ROS 2 node publishing velocity directives over the internet to a Turtlesim application and to a micro-ROS node operating a Kobuki Turtlebot2, both running on the remote hub.
7+
8+
In the first dataspace we have a ROS 2 publisher sending data over a Twist type message. More in detail, a *joy node* is in charge of obtaining displacement commands from a gamepad, which are then converted into ROS 2-understandable Twist type messages by a second *teleop_twist_joy node*.
9+
10+
The second dataspace handles two subscriptors which receive the Twist topic sent by the *teleop_twist_joy node*. The first subscriptor is a Turtlesim application, in charge of displacing the classic virtual turtle in its graphical interface according to the indications received by the remote node. The second subscriptor is a micro-ROS Client, communicated with the ROS 2 datapace via an Agent which allows it to subscribe to the Twist topic. With the data received, micro-ROS is in charge of instructing a Kobuki Turtlebot2, operated by an [ESP32](https://www.espressif.com/en/products/socs/esp32) MCU running [FreeRTOS](https://www.freertos.org/index.html), to move accordingly.
11+
12+
The remote communication is mediated by Integration Service, which is able to translate the ROS 2 messages into a language understandable by Fast DDS, and thanks to the TCP capabilities of the latter it connects via WAN the instances launched in the two subnets. Thanks to this, we can see how both the Kobuki robot and the Turtlesim are moving as they are being operated by the remote gamepad.
13+
14+
<iframe width="560" height="315" src="https://www.youtube.com/embed/PX0NUnc4OLo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

_posts/2020-11-24-Arduino.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: micro-ROS lands on Arduino
3+
author: francesca-finocchiaro
4+
---
5+
6+
As in the last months more and more users have been manifesting an intrest in having micro-ROS on [Arduino](https://www.arduino.cc/), we have been working in order to make this integration come to life.
7+
8+
Arduino is an IDE designed to fit into extremely resource-constrained devices, offering an easy-to-use framework for programming MCUs among which, especially, a vast suite of development boards carrying the Arduino brand.
9+
10+
<img alt="EWG advertisement" src="/img/posts/Arduino_Logo.svg" width="50%"/>
11+
12+
Based on this and on our recent release of a straight-to-the-point [micro-ROS standalone library](https://github.com/micro-ROS/micro_ros_setup/pull/190), which was already successfully integrated with the [ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component) and [Zephyr build system](https://github.com/micro-ROS/micro_ros_zephyr_module), we were able to give support to the Arduino IDE.
13+
14+
At present, it has already been ported it to several boards, namely: the the OpenCR 1.0, the Teensy 3.2 and 4.0/4.1, the Arduino Zero and the Arduino Due.
15+
16+
This new integration is especially interesting in that it paves the way for a bare-metal support for micro-ROS.
17+
18+
Find the dedicated repo at [this link](https://github.com/micro-ROS/micro_ros_arduino).
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
title: Roadmap for ROS 2 Galactic
3+
author: francesca-finocchiaro
4+
---
5+
6+
After reviewing our most recent accomplishments and dusting off our To-Do list, we drafted the roadmap for the next months of development and designed an exciting plan for the ROS 2 Galactic release.
7+
8+
Our priorities will be:
9+
10+
- Migrating all functionalities to the `rclc`, so as to convert it into the default micro-ROS user API and an independent abstraction layer on top of the `rcl`. Namely, the missing features to achieve this goal are:
11+
- Implement parameters in `rclc`, together with a dedicated parameters manager in the Agent.
12+
- Migrate actions to the `rclc`, as we recently did with services.
13+
- Migrate graphs to the `rclc`, based on their recent implementation both in the `rmw` and in the Agent.
14+
- Adapt micro-ROS packages and CI to the rolling release before Galactic is out.
15+
- Implement and polish a mature peer-to-peer functionality to achieve brokerless communication among Clients.
16+
17+
Additional improvements: continue to improve the stability and extend the capability of the middleware layer, evaluating which efforts are worthy to be addressed (e.g. implement multi-threading).
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: New demo - micro-ROS enabling smart warehouse duties
3+
author: francesca-finocchiaro
4+
---
5+
6+
In this brand new demo, micro-ROS showcases its capabilities in an environment that mimics a realistic industrial scenario like a smart warehouse, comprising a dynamic and distributed system of heterogeneous IoT devices. The demo was designed, orchestrated and recorded by OFERA partner [PIAP](https://piap.pl/en/).
7+
8+
It presents a mobile platform interacting with a set of sensors and actuators based on microcontrollers running micro-ROS over 6LoWPAN and scattered in a simulated warehouse area, both indoor and outdoor, and is meant to show the seamless integration of these basic elements into a complex ROS 2 ecosystem thanks to micro-ROS.
9+
10+
<iframe width="560" height="315" src="https://www.youtube.com/embed/8L1XVsZMmsI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
11+
12+
The mobile base is a *scout* robot designed for quick recognition of the surroundings, thanks to a localisation system providing coherent information on the platform position, and it features an on-board computer running a ROS 2 node. A regular computer is connected to the system via Wi-Fi, with which the ground station operator defines the tasks building up the overall mission, provides the required "world model" to execute it, and interchanges messages with the robot. An autonomy module is then in charge to drive the robot all the way down to the mission accomplishment.
13+
14+
During its trajectory, the robot steps into a series of environmental devices, with which it intercommunicates when they are within the range of the wireless 6LoWPAN protocol, namely:
15+
16+
- A humidity and temperature sensor from which it fetches measurements and sends them to the ground station operator;
17+
- A door which can be opened remotely;
18+
- A ToF (Time of Flight) sensor measuring distances and communicating whether the path is clear;
19+
- A light that can be turned on and off.
20+
21+
The communication is mediated by a micro-ROS Agent running on the on-board computer, which connects to the various micro-ROS Clients operating the sensors and actuators listed above as the robot moves across the simulated warehouse. In all devices, micro-ROS is running on an [Olimex LTD STM32-E407](https://www.olimex.com/Products/ARM/ST/STM32-E407/open-source-hardware) board, on top of the [NuttX](https://nuttx.apache.org/) RTOS.

_posts/2020-12-03-snap-uROS.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: micro-ROS Agent on snap!
3+
author: francesca-finocchiaro
4+
---
5+
6+
Like the [XRCE-DDS Agent before](/2020-09-23-snap-XRCEDDS/) it, now the micro-ROS Agent has been wrapped and delivered as a [snap package](https://snapcraft.io/micro-ros-agent), too!
7+
8+
[Snap](https://snapcraft.io/) is a package manager designed to bundle and handle applications and their dependencies on several Linux distros, like Ubuntu.
9+
10+
<img alt="Snap" src="/img/posts/snap2.png" width="45%"/>
11+
12+
We prepared the Agent snap release in collaboration with [Canonical](https://canonical.com/). It comes with two ways of running it: as a simple executable or by means of a Linux service.
13+
14+
<img alt="Canonical" src="/img/posts/canonical.png" width="35%"/>
15+
16+
The first implies the usage of the Agent’s built-in CLI, where the user can specify the standard configuration parameters (such as transport, port…) directly, as follows:
17+
18+
```
19+
micro-ros-agent <transport> <args>
20+
```
21+
22+
The second launches the Agent as a Linux service running in the background; to do so, simply execute:
23+
24+
```
25+
snap set micro-ros-agent daemon=true
26+
```
27+
28+
In this case, instead of specifying the Agent’s launch parameters via the CLI, users can configure them thanks to the snap services interface, using the `snap set micro-ros-agent <param>=<value>` command. These parameters’ values are only valid when the daemon option is set to true, while they are ignored in snap run mode.
29+
30+
The full list of configurable parameters can be found [here](https://snapcraft.io/micro-ros-agent).

0 commit comments

Comments
 (0)