SlideShare a Scribd company logo
1 of 48
Download to read offline
Improving User Experience with Ubiquitous QuickBoot
Jeff Tranter, ICS
Andrew McNaughton, Ubiquitous AI
2
Towards End-User Extensibility in Marine Robotics
Charles Cross
CTO & Co-Founder
charles@missionrobotics.us
The Problem
Technology in the field of marine robotics is currently extremely fragmented.
Unlike in many other fields of robotics, such as unmanned aerial and ground
systems, there are few, if any, vehicle platforms, software frameworks, and
commonly used standards upon which to build.
The result?
● Excessive reinventing of the wheel
● “Build it from scratch” or “Settle for less” decision-making
● Higher development costs and barriers to entry
● Products and systems that do not interoperate
● Slower pace of innovation and a 10-20 year lag behind similar fields
3
Our Team
Highly cross-functional with extensive experience in marine, aerospace, and ground systems
4
Brian Grau
CEO
Mechanical Engineer and
production specialist who
has been building and
shipping ROV systems
around the world for the
last ten years.
Charles Cross
CTO
Walt Holm
Director of Engineering
Software Engineer
specializing in robotics with
an emphasis on creating
modular, extensible, and
connected systems.
Electrical Engineer with a
diverse background solving
instrumentation challenges
in aerospace, marine, and
medical fields.
John Clauss
Operations
Lifetime of marine
operations experience,
including extensive
archaeological work,
particularly in the Lake
Tahoe area.
The Mission
Unify and Expand Marine Technology
Interoperability and extensibility can be achieved through the use of open standards and the creation of electronics and software
solutions that are inherently designed with these goals in mind.
Empower Domain Experts, Fuel Innovation
We want companies and individuals to spend their time answering important questions and solving unique problems, not fighting with
their tools or otherwise having to waste their time and talent solving previously solved problems.
Remove Distance as a Barrier
By leveraging advances in both autonomy and connectivity, we seek to move past the traditional models of one-to-one and
many-to-one operations, instead opting for a future where one operator can direct many systems, even those halfway around the
world.
5
ROV and AUV Systems as a Case-Study
ROV (Remotely Operated Vehicle):
● Traditional name within the industry for what you might call a manually piloted underwater drone
● Many size-classes and specifications, from backpackable observation-class to ship-bound work-class
● Within the last 10 years, great strides in the creation of low-cost vehicles (under $10K)
AUV (Autonomous Underwater Vehicle):
● Often long, torpedo-shaped, in form factor
● Typically used for long range surveys
● Generally expensive, with few “low-cost” solutions
6
Riptide™ AUV WHOI’s REMUS AUV
Trident™ Underwater Drone Customized BlueROV™ WHOI’s Jason ROV
Past Lessons Learned
Over time, one of the biggest lessons learned working in this space is that there is
no one-size-fits-all solution when it comes to the many tasks that underwater
vehicles perform.
For any particular job you may need:
● A different vehicle type (ROV vs AUV)
● A different thruster configuration/vehicle layout
● Different actuator and sensor payloads
● Tethered vs untethered system
● Operation in turbid vs clear water
● Large carrying/lifting capacity
● Zero to many cameras arranged in various ways
● Hot-swappable power/batteries or power-from-topside
● Etc...
7
Who are the Users?
Three customer segments that we are working to serve:
● Developers
● Create novel technology and focus on innovation
● New vehicle concepts
● New sensor, actuator, and communication products
● New software capabilities (computer vision, ML, etc)
● Target specific problem domains (i.e. coral reef restoration, seafloor mapping, etc.)
● System Integrators
● Integrate existing off-the-shelf products into bespoke, ready-to-go vehicles
● Often target specific customers, industries, and geographic regions
● Understand their needs very well!
● Are often not in the business of electronics or software development
● End-Users
● Own and/or use the end vehicle/robot to perform a task or service (inspection, salvage, etc.)
● Likely to extend and upgrade their systems by purchasing COTS products
8
“How do I…”
Both in our discussions with customers and potential customers, as well within
popular forums and communities, we hear often hear the same questions posed:
“How do I…”
● … add more cameras?
● … add a new sensor/actuator to the vehicle?
● … create a new sensor/actuator that can be integrated?
● … deploy custom software to the vehicle?
● … modify the pilot application to do or show X?
● … synchronize the recorded data in time?
● … use a different microcontroller/embedded computer?
● … display data on multiple monitors and machines?
● … communicate with the MCU from the app processor?
● … control X programmatically?
9
Some Underlying Causes
Some of the reasons these questions come up time and again include…
● Lack of shared comm/API standards across the ecosystem
● Historical constraints and limitations from project origins
● Extensibility and developer friendliness are not core user stories
● Existing solutions are designed around manual 1-to-1 operations
● Communication and power distribution underwater is tough
Unfortunately, the answer users often get back is:
“Everything is open source, so you should be able to read and modify it to suit your needs”
There is no consistent, general approach to adding new capabilities, because the systems are not
modular or flexible enough. Also, though open source, there is a steep learning curve!
10
Where does that leave us?
The results of these issues include...
● Vendors creating walled gardens
● “All of our products work together”
● Often black boxed and still provide no path for user development
● Higher cost tier
● Adopters of open source stacks trudging forward
● Hacks and workarounds to extend and improve systems
● Reqs and conventions of non-marine systems a lasting constraint
● Improvements outside the conventions cannot be upstreamed
● Technology becoming fragmented
● Everyone develops in isolation, taping systems together orthogonally
● Ex. Sonar systems communicating over entirely separate lines with different apps
11
A Path Forward
We believe that one of the most effective solutions to the aforementioned issues
is to adopt open standards and frameworks that have become common across
the rest of the robotics industry.
12
● DDS (Data Distribution Service)
● An open middleware standard for real-time, publish-subscribe,
peer-to-peer communication.
● ROS2 (Robot Operating System)
● From ros.org: “...a flexible framework for writing robot
software. It is a collection of tools, libraries, and conventions
that aim to simplify the task of creating complex and robust
robot behavior across a wide variety of robotic platforms.”
● Built on top of DDS
DDS Quick Summary
● Completely peer-to-peer
● No server/broker required for communication between applications/machines
● Supports dynamic discovery of peers within a system/network (no need to specify endpoints!)
● Topic-oriented communication
● A topic consists of a name and a type description
● Datawriters publish data samples to topics
● Datareaders subscribe to topics
● Datawriters and Datareaders are loosely coupled - Datawriters don’t care who or how many subscribe
● Quality of Service
● Applications must specify not only what data is available, but also how it is to be transmitted
● Datawriters and Datareaders must agree upon Quality of Service (QOS) policy to be used
● QOS policies specify aspects like reliability, historical caching, late-joiner behavior, and more
● Communication fully specified by combination of Data Types, Topics, and QOS
● Software written by two or more parties can interoperate with well-defined behavior
● Encourages modular system design and discourages vendor lock
13
DDS Quick Summary
14
ROS2 Quick Summary
● Introduces a layer of abstraction around the middleware
● Simplifies development for users
● Reduces DDS-specific learning curve by providing rational defaults and patterns for common use-cases
● Provides utilities, libraries, and data types common to many robotics use-cases
● Scheduling
● Multi-threading
● Data recording and logging
● Coordinate systems and transformations
● Simulation tools
● Common data types (geometry, point clouds, images, GPS, time, common sensor data, and much more)
● Command line utilities for introspection and debugging
● Etc…
● Allows users to package and share their software components
● Nodes - individual applications that can be composed to form complex behaviors and systems
● Libraries - reusable library elements that can be used across ROS projects
● Messages - Data type specifications used between nodes
15
Common Robotic System Architecture Example
16
● One or more microcontrollers
○ Often running an RTOS
○ Real-time tasks
○ Flexible I/O interfaces
○ Sensor/actuator control
○ Sub-MCUs
● One primary App Processor
○ Often running Linux
○ Soft real-time tasks
○ Compute intensive tasks
○ High-bandwidth I/O
○ System coordination
● One or more remote C&C devices
○ Laptop, mobile device, etc.
○ Control & monitoring tasks
Putting it all Together - The MR Approach
Hardware Development Approach
● Drop-in replacement for commercially available vehicle platforms/ecosystems
● Designed for ROVs and AUVs, but adaptable to other types of systems
● Dramatically improved image quality, latency, and increased camera count
● Improved processing performance (support CV/ML and other intensive tasks)
● Additional space in enclosure for accessories
● Improved overall ease of use; reduced manual labor
● Expanded I/O and flexible power architecture to support add-ons
● Enabling of onboard data and telemetry recording
17
Putting it all Together - The MR Approach
Software Development Approach
● Provide a system that works out of the box with little to no configuration
● Support existing components within the ecosystem (sensors, cameras, etc)
● Build out complete OS distribution that takes care of common needs
○ Application scheduling
○ Recording & Playback
○ Software and Firmware Updates
○ Plug-and-play discovery/management of common devices (like cameras)
○ Fault and system resource monitoring
○ Remote access
○ Configuration Management (OS, Network, Vehicle settings, User Software settings, etc)
● Implement all external interfaces and APIs using DDS and ROS2
● Provide an SDK and complete development environment that allows day-1 deployments
● Create a flexible GUI application that supports user extensibility
18
Hardware Overview
Features:
● Integrated motherboard
● Recent generation of MCU
● Support for various App Processor models
● New cameras
● Superior low-light performance
● 130ms glass-to-glass latency standard config
● 70ms glass-to-glass ultralow-latency mode
● High-speed onboard storage
● Additional space for user hardware
● Additional connectorized I/O interfaces
● Flexible power management architecture
● 3.3V, 5V, and 12V buses
● Switchable rails for failsafing/load-shedding
● RTC for tracking real-world time
● Low-power warning system
19
20
21
22
Software Overview
Features:
● Docker-based embedded Linux platform
● Read-only Host OS running application containers
● Main container running Mission Robotics OS
● Additional containers dedicated to private User software
● OTA updates and remote fleet management capabilities
● DDS and ROS2 communication
● Vehicle and Client software implement both standalone DDS and ROS2 APIs
● mrSDK* available to simplify and accelerate development of user applications (both vehicle and client)
● Board/driver support for latest Nvidia platforms, designed for autonomous vehicles
● Hardware acceleration, computer vision, and machine learning features
● Complete set of services providing standard functionality
● Can be disabled by users if they wish to implement their own
23
*placeholder name
Developer Tools
24
● Docker based dev & deployment environment
○ Simplifies building, testing, and deploying software
○ Isolation of components from different vendors
● CI/CD
○ Full build, test, and deploy pipeline ready on day one
● CLI tools
● Example codebase
○ Python & C++ DDS & ROS2 starter applications
○ Arduino & STM32F example code for MCU apps
● Remote vehicle connectivity and monitoring
25
MicroROS / DDS XRCE
ROS2 / DDS
Options for Extensibility
26
There are five key paths to extend the system:
● Certain plug-and-play features are already built-in
● V4L2 and other supported cameras are automatically detected and brought up (configurable)
● MCUs that implement supported protocols are automatically bridged to the DDS bus
● Explicitly supported devices with mrOS* drivers automatically brought up
● Create and deploy custom ROS2/DDS applications to the vehicle user containers
● Or any applications/protocols, if desired
● Create and deploy custom ROS2/DDS topside applications that interact via the public API
● Create plugins for the Qt piloting application
● Create standalone MCU + sensor/actuator devices that are tunneled to both the DDS bus and Qt app
*placeholder name
“How do I…”
“… Add more cameras?”
Two main approaches:
● If the camera is already supported by mrOS, plug it in and configure if needed
● Camera Supervisor will automatically bring driver up for camera
● Camera data will be made available over ROS2/DDS
● Qt App will automatically discover new camera and allow streaming/control
● If the camera is not already supported, user can do one of two things:
● Write a plugin library for the Camera Supervisor to allow it to bring the camera up
● Must implement way to find/access the device, acquire frames, change settings
● Write a standalone ROS2/DDS application that handles the camera on their own
● By following the established type/topic API conventions, it should just work
27
28
“How do I…”
“... create a new sensor/actuator that can be integrated?”
If the device can be controlled using I/O available on App Processor, write a new ROS2/DDS node.
If more I/O is required, user can use an additional MCU, such as an Arduino:
● Write an Arduino sketch that can interact with the sensor/actuator
● Add some code that implements the public API over the serial interface
● We provide a ready to go library and examples to make this easy
● Two API paths:
● Use MicroROS/DDS XRCE to implement API directly on the existing databus
● Use a simplified JSON-based API that will be forwarded directly to the Qt app
As an example, let’s consider the user adding a custom light module via Arduino...
29
30
● Arduino sketch sends messages to App Processor
○ Messages conform to a simple JSON-based API
■ Contains unique message name, fields, field types, and field values
● MCU supervisor running on App Processor detects user MCU
○ A bridge service is created for each user MCU
● Bridge directly forwards the messages to Qt App on special DDS topic
○ Also creates an “input” topic for messages to travel back to user’s MCU
“How do I…”
“... modify the pilot application to do or show X?”
● Introspect the fields and convert them into a dynamic model representing the “backend” for the device
● Backend contains a property map for input values and output values
● Backend provides hints about the data it contains to choose an appropriate display widget
● Signals emitted upon value changes received
● Use the model as a data source/sink for frontend elements
● User can configure the Pilot activity or any customizable screen to adjust the layout
● The new data sources/sinks will be shown, along with “suggested display elements” based on hints
● App is pre-packaged with a number of common components: labels, dials, sliders, buttons, etc.
● Upon instantiating the display component based on configuration, inputs and outputs will be connected
31
Custom User Components
While the app comes pre-packaged with common components, we want to
provide a way for the user to create an entirely new widget/component that can be
created during runtime without the need to compile anything and without any prior
knowledge of the user’s data types built into the app.
● User creates a plugin containing:
● One or more QML file that encompasses a “Component”
● A metadata file that describes the signals/slots of the component and any accepted hints
● This plugin is loaded via a utility in the Qt app
● Or simply place the plugin folder into a specified location where the app will find it
● The new component is made available within the layout config
● At this point, user can drop the new component into various screens
● The signals/slots will be automatically connected, allowing real-time bidirectional updates
32
Resources
● ROS2 Resources and Documentation
● https://docs.ros.org/en/galactic/
● https://micro.ros.org/
● DDS Tutorials and Learning Materials
● http://www.laas.fr/files/SLides-A_Corsaro.pdf
● https://www.dre.vanderbilt.edu/~schmidt/PDF/dds-sos.pdf
● https://www.youtube.com/watch?v=GGqcrccWfeE
● ROS2, micro-ROS, and DDS in aerial drone systems (PX4/Dronecode)
● https://www.youtube.com/watch?v=lZ8crGI16qA
33
How to Add Actuator/Sensor Data and Associated
UI to a Closed-Source Qt/QML App?
34
Qt App
“Ground Station”
(closed source)
Actuators
Sensors
Vehicle
QML User Interface
User-Defined Controls
User-Defined
Environment
Telemetry
Commands
What is Qt?
35
Application development framework (not just user interface)
Two user interface frameworks: widgets (desktop) and QML (touch)
Open Source
Cross platform (Windows, Linux, Mac, Android, iOS...)
“Write once, compile anywhere”
Triple licenced: GPL, LGPL, and commercial (recommended)
C++ but other language bindings exist e.g. Python
Actively developed by The Qt Company with services provided by ICS (ics.com)
Ways to Extend a Closed-Source Qt App
QPluginLoader
QJSEngine (formerly Qt Script)
Dynamic QML
Loader
Binding
Connections
QQmlPropertyMap (dynamic properties)
36
Loader Loads QML User Interface at Run Time
37
Defining C++ Properties for QML at Compile Time
38
PROPERTY Super Macro
39
QQmlPropertyMap Defines Properties at Run Time
40
Sample App
41
Object.h
42
Object.cpp
43
main.cpp
44
Main.qml
45
qml/Boolean.qml
46
qml/Number.qml
47
Thank you!
48
Any questions?

More Related Content

What's hot

[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI SystemsICS
 
An In-Depth Look Into Microcontrollers
An In-Depth Look Into MicrocontrollersAn In-Depth Look Into Microcontrollers
An In-Depth Look Into MicrocontrollersICS
 
Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2ICS
 
[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical DeviceICS
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phonesaccount inactive
 
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres..."Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...Edge AI and Vision Alliance
 
Design and Optimize your code for high-performance with Intel® Advisor and I...
Design and Optimize your code for high-performance with Intel®  Advisor and I...Design and Optimize your code for high-performance with Intel®  Advisor and I...
Design and Optimize your code for high-performance with Intel® Advisor and I...Tyrone Systems
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...AMD Developer Central
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Developer Network
 
Erlang Embedded — Concurrent Blinkenlights and More!
Erlang Embedded — Concurrent Blinkenlights and More!Erlang Embedded — Concurrent Blinkenlights and More!
Erlang Embedded — Concurrent Blinkenlights and More!Omer Kilic
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbianaccount inactive
 
Cuda meetup presentation 5
Cuda meetup presentation 5Cuda meetup presentation 5
Cuda meetup presentation 5Rihards Gailums
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.orgEdge AI and Vision Alliance
 
GTC 2016 Opening Keynote
GTC 2016 Opening KeynoteGTC 2016 Opening Keynote
GTC 2016 Opening KeynoteNVIDIA
 
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Nokia
 
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature 'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature Qualcomm Developer Network
 

What's hot (20)

[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems
 
An In-Depth Look Into Microcontrollers
An In-Depth Look Into MicrocontrollersAn In-Depth Look Into Microcontrollers
An In-Depth Look Into Microcontrollers
 
Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2
 
[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device[Webinar] Software: The Lifeblood of any Medical Device
[Webinar] Software: The Lifeblood of any Medical Device
 
Meet Qt
Meet QtMeet Qt
Meet Qt
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
Qt Licensing Explained
Qt Licensing ExplainedQt Licensing Explained
Qt Licensing Explained
 
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres..."Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...
"Edge/Cloud Tradeoffs and Scaling a Consumer Computer Vision Product," a Pres...
 
DRIVE PX 2
DRIVE PX 2DRIVE PX 2
DRIVE PX 2
 
Design and Optimize your code for high-performance with Intel® Advisor and I...
Design and Optimize your code for high-performance with Intel®  Advisor and I...Design and Optimize your code for high-performance with Intel®  Advisor and I...
Design and Optimize your code for high-performance with Intel® Advisor and I...
 
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
CE-4114, Screen Mirror, a unified screen mirroring solution that utilizes AMD...
 
Intel Developer Program
Intel Developer ProgramIntel Developer Program
Intel Developer Program
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
 
Erlang Embedded — Concurrent Blinkenlights and More!
Erlang Embedded — Concurrent Blinkenlights and More!Erlang Embedded — Concurrent Blinkenlights and More!
Erlang Embedded — Concurrent Blinkenlights and More!
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
Cuda meetup presentation 5
Cuda meetup presentation 5Cuda meetup presentation 5
Cuda meetup presentation 5
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
 
GTC 2016 Opening Keynote
GTC 2016 Opening KeynoteGTC 2016 Opening Keynote
GTC 2016 Opening Keynote
 
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
 
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature 'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature
'Hear' & Now: Software Integration for the Qualcomm Snapdragon Audio Feature
 

Similar to Leveraging Open Standards to Build Highly Extensible Autonomous Systems

DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015Ernest Mueller
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTPôle Systematic Paris-Region
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Rodrigo Antonialli
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Nir Yungster
 
Deploying ML models in the enterprise
Deploying ML models in the enterpriseDeploying ML models in the enterprise
Deploying ML models in the enterprisedoppenhe
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedLuram Archanjo
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018Gregory Taylor
 
Service oriented space-infrastructures_brown_university_2014_lisi
Service oriented space-infrastructures_brown_university_2014_lisiService oriented space-infrastructures_brown_university_2014_lisi
Service oriented space-infrastructures_brown_university_2014_lisiMarco Lisi
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Demi Ben-Ari
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service meshDocker, Inc.
 
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...
Introducing Usability Concerns Early in the DSL Development Cycle:  FlowSL Ex...Introducing Usability Concerns Early in the DSL Development Cycle:  FlowSL Ex...
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...Ankica Barisic
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
 
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Lionel Briand
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessWSO2
 

Similar to Leveraging Open Standards to Build Highly Extensible Autonomous Systems (20)

DevOps State of the Union 2015
DevOps State of the Union 2015DevOps State of the Union 2015
DevOps State of the Union 2015
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
FICO Open Shift presentation
FICO Open Shift presentationFICO Open Shift presentation
FICO Open Shift presentation
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
 
Deploying ML models in the enterprise
Deploying ML models in the enterpriseDeploying ML models in the enterprise
Deploying ML models in the enterprise
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
 
Service oriented space-infrastructures_brown_university_2014_lisi
Service oriented space-infrastructures_brown_university_2014_lisiService oriented space-infrastructures_brown_university_2014_lisi
Service oriented space-infrastructures_brown_university_2014_lisi
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...
Introducing Usability Concerns Early in the DSL Development Cycle:  FlowSL Ex...Introducing Usability Concerns Early in the DSL Development Cycle:  FlowSL Ex...
Introducing Usability Concerns Early in the DSL Development Cycle: FlowSL Ex...
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
 
Build A Scalable Mobile App
Build A Scalable Mobile App Build A Scalable Mobile App
Build A Scalable Mobile App
 
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
Analyzing Natural-Language Requirements: The Not-too-sexy and Yet Curiously D...
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your Business
 

More from ICS

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...ICS
 
Overcoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarOvercoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarICS
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfICS
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfICS
 
Quality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfQuality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfICS
 
Creating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfCreating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfICS
 
Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up ICS
 
Cybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfCybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfICS
 
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesMDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesICS
 
How to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionHow to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionICS
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsICS
 
IoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureIoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureICS
 
Basic Cmake for Qt Users
Basic Cmake for Qt UsersBasic Cmake for Qt Users
Basic Cmake for Qt UsersICS
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
 
Qt Installer Framework
Qt Installer FrameworkQt Installer Framework
Qt Installer FrameworkICS
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsICS
 
Overcome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyOvercome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyICS
 
User Experience Design for IoT
User Experience Design for IoTUser Experience Design for IoT
User Experience Design for IoTICS
 

More from ICS (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
Accelerating Development of a Safety-Critical Cobot Welding System with Qt/QM...
 
Overcoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues WebinarOvercoming CMake Configuration Issues Webinar
Overcoming CMake Configuration Issues Webinar
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
 
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdfDesigning and Managing IoT Devices for Rapid Deployment - Webinar.pdf
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
 
Quality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdfQuality and Test in Medical Device Design - Part 1.pdf
Quality and Test in Medical Device Design - Part 1.pdf
 
Creating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdfCreating Digital Twins Using Rapid Development Techniques.pdf
Creating Digital Twins Using Rapid Development Techniques.pdf
 
Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up Secure Your Medical Devices From the Ground Up
Secure Your Medical Devices From the Ground Up
 
Cybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdfCybersecurity and Software Updates in Medical Devices.pdf
Cybersecurity and Software Updates in Medical Devices.pdf
 
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical DevicesMDG Panel - Creating Expert Level GUIs for Complex Medical Devices
MDG Panel - Creating Expert Level GUIs for Complex Medical Devices
 
How to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management SolutionHow to Craft a Winning IOT Device Management Solution
How to Craft a Winning IOT Device Management Solution
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
IoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with AzureIoT Device Fleet Management: Create a Robust Solution with Azure
IoT Device Fleet Management: Create a Robust Solution with Azure
 
Basic Cmake for Qt Users
Basic Cmake for Qt UsersBasic Cmake for Qt Users
Basic Cmake for Qt Users
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
Qt Installer Framework
Qt Installer FrameworkQt Installer Framework
Qt Installer Framework
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
Overcome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case StudyOvercome Hardware And Software Challenges - Medical Device Case Study
Overcome Hardware And Software Challenges - Medical Device Case Study
 
User Experience Design for IoT
User Experience Design for IoTUser Experience Design for IoT
User Experience Design for IoT
 

Recently uploaded

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Leveraging Open Standards to Build Highly Extensible Autonomous Systems

  • 1. Improving User Experience with Ubiquitous QuickBoot Jeff Tranter, ICS Andrew McNaughton, Ubiquitous AI
  • 2. 2 Towards End-User Extensibility in Marine Robotics Charles Cross CTO & Co-Founder charles@missionrobotics.us
  • 3. The Problem Technology in the field of marine robotics is currently extremely fragmented. Unlike in many other fields of robotics, such as unmanned aerial and ground systems, there are few, if any, vehicle platforms, software frameworks, and commonly used standards upon which to build. The result? ● Excessive reinventing of the wheel ● “Build it from scratch” or “Settle for less” decision-making ● Higher development costs and barriers to entry ● Products and systems that do not interoperate ● Slower pace of innovation and a 10-20 year lag behind similar fields 3
  • 4. Our Team Highly cross-functional with extensive experience in marine, aerospace, and ground systems 4 Brian Grau CEO Mechanical Engineer and production specialist who has been building and shipping ROV systems around the world for the last ten years. Charles Cross CTO Walt Holm Director of Engineering Software Engineer specializing in robotics with an emphasis on creating modular, extensible, and connected systems. Electrical Engineer with a diverse background solving instrumentation challenges in aerospace, marine, and medical fields. John Clauss Operations Lifetime of marine operations experience, including extensive archaeological work, particularly in the Lake Tahoe area.
  • 5. The Mission Unify and Expand Marine Technology Interoperability and extensibility can be achieved through the use of open standards and the creation of electronics and software solutions that are inherently designed with these goals in mind. Empower Domain Experts, Fuel Innovation We want companies and individuals to spend their time answering important questions and solving unique problems, not fighting with their tools or otherwise having to waste their time and talent solving previously solved problems. Remove Distance as a Barrier By leveraging advances in both autonomy and connectivity, we seek to move past the traditional models of one-to-one and many-to-one operations, instead opting for a future where one operator can direct many systems, even those halfway around the world. 5
  • 6. ROV and AUV Systems as a Case-Study ROV (Remotely Operated Vehicle): ● Traditional name within the industry for what you might call a manually piloted underwater drone ● Many size-classes and specifications, from backpackable observation-class to ship-bound work-class ● Within the last 10 years, great strides in the creation of low-cost vehicles (under $10K) AUV (Autonomous Underwater Vehicle): ● Often long, torpedo-shaped, in form factor ● Typically used for long range surveys ● Generally expensive, with few “low-cost” solutions 6 Riptide™ AUV WHOI’s REMUS AUV Trident™ Underwater Drone Customized BlueROV™ WHOI’s Jason ROV
  • 7. Past Lessons Learned Over time, one of the biggest lessons learned working in this space is that there is no one-size-fits-all solution when it comes to the many tasks that underwater vehicles perform. For any particular job you may need: ● A different vehicle type (ROV vs AUV) ● A different thruster configuration/vehicle layout ● Different actuator and sensor payloads ● Tethered vs untethered system ● Operation in turbid vs clear water ● Large carrying/lifting capacity ● Zero to many cameras arranged in various ways ● Hot-swappable power/batteries or power-from-topside ● Etc... 7
  • 8. Who are the Users? Three customer segments that we are working to serve: ● Developers ● Create novel technology and focus on innovation ● New vehicle concepts ● New sensor, actuator, and communication products ● New software capabilities (computer vision, ML, etc) ● Target specific problem domains (i.e. coral reef restoration, seafloor mapping, etc.) ● System Integrators ● Integrate existing off-the-shelf products into bespoke, ready-to-go vehicles ● Often target specific customers, industries, and geographic regions ● Understand their needs very well! ● Are often not in the business of electronics or software development ● End-Users ● Own and/or use the end vehicle/robot to perform a task or service (inspection, salvage, etc.) ● Likely to extend and upgrade their systems by purchasing COTS products 8
  • 9. “How do I…” Both in our discussions with customers and potential customers, as well within popular forums and communities, we hear often hear the same questions posed: “How do I…” ● … add more cameras? ● … add a new sensor/actuator to the vehicle? ● … create a new sensor/actuator that can be integrated? ● … deploy custom software to the vehicle? ● … modify the pilot application to do or show X? ● … synchronize the recorded data in time? ● … use a different microcontroller/embedded computer? ● … display data on multiple monitors and machines? ● … communicate with the MCU from the app processor? ● … control X programmatically? 9
  • 10. Some Underlying Causes Some of the reasons these questions come up time and again include… ● Lack of shared comm/API standards across the ecosystem ● Historical constraints and limitations from project origins ● Extensibility and developer friendliness are not core user stories ● Existing solutions are designed around manual 1-to-1 operations ● Communication and power distribution underwater is tough Unfortunately, the answer users often get back is: “Everything is open source, so you should be able to read and modify it to suit your needs” There is no consistent, general approach to adding new capabilities, because the systems are not modular or flexible enough. Also, though open source, there is a steep learning curve! 10
  • 11. Where does that leave us? The results of these issues include... ● Vendors creating walled gardens ● “All of our products work together” ● Often black boxed and still provide no path for user development ● Higher cost tier ● Adopters of open source stacks trudging forward ● Hacks and workarounds to extend and improve systems ● Reqs and conventions of non-marine systems a lasting constraint ● Improvements outside the conventions cannot be upstreamed ● Technology becoming fragmented ● Everyone develops in isolation, taping systems together orthogonally ● Ex. Sonar systems communicating over entirely separate lines with different apps 11
  • 12. A Path Forward We believe that one of the most effective solutions to the aforementioned issues is to adopt open standards and frameworks that have become common across the rest of the robotics industry. 12 ● DDS (Data Distribution Service) ● An open middleware standard for real-time, publish-subscribe, peer-to-peer communication. ● ROS2 (Robot Operating System) ● From ros.org: “...a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.” ● Built on top of DDS
  • 13. DDS Quick Summary ● Completely peer-to-peer ● No server/broker required for communication between applications/machines ● Supports dynamic discovery of peers within a system/network (no need to specify endpoints!) ● Topic-oriented communication ● A topic consists of a name and a type description ● Datawriters publish data samples to topics ● Datareaders subscribe to topics ● Datawriters and Datareaders are loosely coupled - Datawriters don’t care who or how many subscribe ● Quality of Service ● Applications must specify not only what data is available, but also how it is to be transmitted ● Datawriters and Datareaders must agree upon Quality of Service (QOS) policy to be used ● QOS policies specify aspects like reliability, historical caching, late-joiner behavior, and more ● Communication fully specified by combination of Data Types, Topics, and QOS ● Software written by two or more parties can interoperate with well-defined behavior ● Encourages modular system design and discourages vendor lock 13
  • 15. ROS2 Quick Summary ● Introduces a layer of abstraction around the middleware ● Simplifies development for users ● Reduces DDS-specific learning curve by providing rational defaults and patterns for common use-cases ● Provides utilities, libraries, and data types common to many robotics use-cases ● Scheduling ● Multi-threading ● Data recording and logging ● Coordinate systems and transformations ● Simulation tools ● Common data types (geometry, point clouds, images, GPS, time, common sensor data, and much more) ● Command line utilities for introspection and debugging ● Etc… ● Allows users to package and share their software components ● Nodes - individual applications that can be composed to form complex behaviors and systems ● Libraries - reusable library elements that can be used across ROS projects ● Messages - Data type specifications used between nodes 15
  • 16. Common Robotic System Architecture Example 16 ● One or more microcontrollers ○ Often running an RTOS ○ Real-time tasks ○ Flexible I/O interfaces ○ Sensor/actuator control ○ Sub-MCUs ● One primary App Processor ○ Often running Linux ○ Soft real-time tasks ○ Compute intensive tasks ○ High-bandwidth I/O ○ System coordination ● One or more remote C&C devices ○ Laptop, mobile device, etc. ○ Control & monitoring tasks
  • 17. Putting it all Together - The MR Approach Hardware Development Approach ● Drop-in replacement for commercially available vehicle platforms/ecosystems ● Designed for ROVs and AUVs, but adaptable to other types of systems ● Dramatically improved image quality, latency, and increased camera count ● Improved processing performance (support CV/ML and other intensive tasks) ● Additional space in enclosure for accessories ● Improved overall ease of use; reduced manual labor ● Expanded I/O and flexible power architecture to support add-ons ● Enabling of onboard data and telemetry recording 17
  • 18. Putting it all Together - The MR Approach Software Development Approach ● Provide a system that works out of the box with little to no configuration ● Support existing components within the ecosystem (sensors, cameras, etc) ● Build out complete OS distribution that takes care of common needs ○ Application scheduling ○ Recording & Playback ○ Software and Firmware Updates ○ Plug-and-play discovery/management of common devices (like cameras) ○ Fault and system resource monitoring ○ Remote access ○ Configuration Management (OS, Network, Vehicle settings, User Software settings, etc) ● Implement all external interfaces and APIs using DDS and ROS2 ● Provide an SDK and complete development environment that allows day-1 deployments ● Create a flexible GUI application that supports user extensibility 18
  • 19. Hardware Overview Features: ● Integrated motherboard ● Recent generation of MCU ● Support for various App Processor models ● New cameras ● Superior low-light performance ● 130ms glass-to-glass latency standard config ● 70ms glass-to-glass ultralow-latency mode ● High-speed onboard storage ● Additional space for user hardware ● Additional connectorized I/O interfaces ● Flexible power management architecture ● 3.3V, 5V, and 12V buses ● Switchable rails for failsafing/load-shedding ● RTC for tracking real-world time ● Low-power warning system 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. Software Overview Features: ● Docker-based embedded Linux platform ● Read-only Host OS running application containers ● Main container running Mission Robotics OS ● Additional containers dedicated to private User software ● OTA updates and remote fleet management capabilities ● DDS and ROS2 communication ● Vehicle and Client software implement both standalone DDS and ROS2 APIs ● mrSDK* available to simplify and accelerate development of user applications (both vehicle and client) ● Board/driver support for latest Nvidia platforms, designed for autonomous vehicles ● Hardware acceleration, computer vision, and machine learning features ● Complete set of services providing standard functionality ● Can be disabled by users if they wish to implement their own 23 *placeholder name
  • 24. Developer Tools 24 ● Docker based dev & deployment environment ○ Simplifies building, testing, and deploying software ○ Isolation of components from different vendors ● CI/CD ○ Full build, test, and deploy pipeline ready on day one ● CLI tools ● Example codebase ○ Python & C++ DDS & ROS2 starter applications ○ Arduino & STM32F example code for MCU apps ● Remote vehicle connectivity and monitoring
  • 25. 25 MicroROS / DDS XRCE ROS2 / DDS
  • 26. Options for Extensibility 26 There are five key paths to extend the system: ● Certain plug-and-play features are already built-in ● V4L2 and other supported cameras are automatically detected and brought up (configurable) ● MCUs that implement supported protocols are automatically bridged to the DDS bus ● Explicitly supported devices with mrOS* drivers automatically brought up ● Create and deploy custom ROS2/DDS applications to the vehicle user containers ● Or any applications/protocols, if desired ● Create and deploy custom ROS2/DDS topside applications that interact via the public API ● Create plugins for the Qt piloting application ● Create standalone MCU + sensor/actuator devices that are tunneled to both the DDS bus and Qt app *placeholder name
  • 27. “How do I…” “… Add more cameras?” Two main approaches: ● If the camera is already supported by mrOS, plug it in and configure if needed ● Camera Supervisor will automatically bring driver up for camera ● Camera data will be made available over ROS2/DDS ● Qt App will automatically discover new camera and allow streaming/control ● If the camera is not already supported, user can do one of two things: ● Write a plugin library for the Camera Supervisor to allow it to bring the camera up ● Must implement way to find/access the device, acquire frames, change settings ● Write a standalone ROS2/DDS application that handles the camera on their own ● By following the established type/topic API conventions, it should just work 27
  • 28. 28
  • 29. “How do I…” “... create a new sensor/actuator that can be integrated?” If the device can be controlled using I/O available on App Processor, write a new ROS2/DDS node. If more I/O is required, user can use an additional MCU, such as an Arduino: ● Write an Arduino sketch that can interact with the sensor/actuator ● Add some code that implements the public API over the serial interface ● We provide a ready to go library and examples to make this easy ● Two API paths: ● Use MicroROS/DDS XRCE to implement API directly on the existing databus ● Use a simplified JSON-based API that will be forwarded directly to the Qt app As an example, let’s consider the user adding a custom light module via Arduino... 29
  • 30. 30 ● Arduino sketch sends messages to App Processor ○ Messages conform to a simple JSON-based API ■ Contains unique message name, fields, field types, and field values ● MCU supervisor running on App Processor detects user MCU ○ A bridge service is created for each user MCU ● Bridge directly forwards the messages to Qt App on special DDS topic ○ Also creates an “input” topic for messages to travel back to user’s MCU
  • 31. “How do I…” “... modify the pilot application to do or show X?” ● Introspect the fields and convert them into a dynamic model representing the “backend” for the device ● Backend contains a property map for input values and output values ● Backend provides hints about the data it contains to choose an appropriate display widget ● Signals emitted upon value changes received ● Use the model as a data source/sink for frontend elements ● User can configure the Pilot activity or any customizable screen to adjust the layout ● The new data sources/sinks will be shown, along with “suggested display elements” based on hints ● App is pre-packaged with a number of common components: labels, dials, sliders, buttons, etc. ● Upon instantiating the display component based on configuration, inputs and outputs will be connected 31
  • 32. Custom User Components While the app comes pre-packaged with common components, we want to provide a way for the user to create an entirely new widget/component that can be created during runtime without the need to compile anything and without any prior knowledge of the user’s data types built into the app. ● User creates a plugin containing: ● One or more QML file that encompasses a “Component” ● A metadata file that describes the signals/slots of the component and any accepted hints ● This plugin is loaded via a utility in the Qt app ● Or simply place the plugin folder into a specified location where the app will find it ● The new component is made available within the layout config ● At this point, user can drop the new component into various screens ● The signals/slots will be automatically connected, allowing real-time bidirectional updates 32
  • 33. Resources ● ROS2 Resources and Documentation ● https://docs.ros.org/en/galactic/ ● https://micro.ros.org/ ● DDS Tutorials and Learning Materials ● http://www.laas.fr/files/SLides-A_Corsaro.pdf ● https://www.dre.vanderbilt.edu/~schmidt/PDF/dds-sos.pdf ● https://www.youtube.com/watch?v=GGqcrccWfeE ● ROS2, micro-ROS, and DDS in aerial drone systems (PX4/Dronecode) ● https://www.youtube.com/watch?v=lZ8crGI16qA 33
  • 34. How to Add Actuator/Sensor Data and Associated UI to a Closed-Source Qt/QML App? 34 Qt App “Ground Station” (closed source) Actuators Sensors Vehicle QML User Interface User-Defined Controls User-Defined Environment Telemetry Commands
  • 35. What is Qt? 35 Application development framework (not just user interface) Two user interface frameworks: widgets (desktop) and QML (touch) Open Source Cross platform (Windows, Linux, Mac, Android, iOS...) “Write once, compile anywhere” Triple licenced: GPL, LGPL, and commercial (recommended) C++ but other language bindings exist e.g. Python Actively developed by The Qt Company with services provided by ICS (ics.com)
  • 36. Ways to Extend a Closed-Source Qt App QPluginLoader QJSEngine (formerly Qt Script) Dynamic QML Loader Binding Connections QQmlPropertyMap (dynamic properties) 36
  • 37. Loader Loads QML User Interface at Run Time 37
  • 38. Defining C++ Properties for QML at Compile Time 38