Machine Learning on the Edge: Embedded Hardware, ROS, ML, and The Cloud

Machine Learning on the Edge: Embedded Hardware, ROS, ML, and The Cloud

Machine Learning on the Edge has changed dramatically recently. It has gone from "Don't Do It!" to "Yes, it can be done." But, challenges with Machine Learning on the Edge are still present, namely how to integrate the infrastructure.

In this webinar, MistyWest Computer Scientist, Andreas Putz, provides an introduction to building connected devices on embedded platforms (Raspberry Pi, Nvidia TX2, Nvidia Xavier) using the Robot Operating System (ROS), Keras and AWS IoT.

Here is a brief recap.

What is a Typical Edge Project?

A typical edge project will include the following components:

1. Hardware

    • Small Form Factor
    • Modest Power Requirements


2. Firmware

    • OS
    • Drivers
    • Update Mechanism

3. Abstraction

    • Docker


4. Application

    • Docker Application Containers
    • Standard Packages, Executables


5. Decentralization

    • AWS IoT Core

Hardware Selection - ARM, X84-64

Hardware Platform

1. Low Cost Options: Raspberry PI, Asus Tinkerboard

2. ML and Imaging Processing Focus: NVIDIA Jetson Series (TX 1/2, Xavier)

3. All-Purpose: Intel NUC, HPE, Dell Edge Series


IO Considerations

1. Standard: Ethernet, 10GigE, USB (USB 3.1, C)

2. Specialized: GPIO, 12C, CANBUS

Sensors

1. Imaging: Video Cameras, 3D Sensors (Intel RealSense, Kinect)

2. 3D Point Cloud: Lidars, ToF Sensors

3. GPS

4. Real Time Kinematic Positioning: RTK-GPS, IMU

5. Laser Based Distance Measurements

Actuators/Controls

1. Microcontrollers

2. Servo Drivers

3. Motor Drivers

4. Power Management

The Robot Operating System (ROS)

What is it?

1. A flexible framework to write robot software

2. Designed for collaborative development (>3,000 packages)

3. Designed for distributed computing: Client-Server architecture

4. Caveats:

  • Python 2.7. Usint Python 3.X is posible, but requires tinkering
  • Does not play well with Anaconda


ROS2 is a modern redesign of ROS. It is promising, but not quite ready. Expect to be ready in 2019.

Core Components

1. Communications Infrastructure

  • Nodes: Encapsulation of computational tasks. Fault tolerant and form a compute graph.
  • Message Passing System: Publish/Subscribe model. Descriptive message format.
  • Services: Remote service calls for synchronous communication.


2. Robot Specific Capabilities

  • Standard message library (video data, odemetry, etc.)
  • TF2 - Robot Geometry Library
  • Diagnostics
  • Post estimation, navigation, mapping


3. Toolbox

  • Command Line Tools: Roscore, rosrun, roslaunch, rostopic, etc.
  • Graphical Tools: Rqt, Rviz
  • Software Build System: Cmake, Catkin

WORKSHOP DEMO

To see an example of ROS in action, as well as obtain a working ROS environment on your own system, check out the embedded video!

About The Speaker

Andreas Putz

Andreas Putz

Computer Scientist, MistyWest

Andreas Putz is a Scientific Computing expert with eight years experience in the fuel cell industry. He is an experienced team lead of geographically distributed and technically diverse teams with deep technical knowledge in mathematical modeling and data analysis. He currently works at MistyWest.

Share Article:

Sign up to the Hardware Massive newsletter

Related Videos