intravehicular communication - uavcan · 2019. 6. 25. · iot, general robotics, industrial...

54
Intravehicular communication

Upload: others

Post on 25-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Intravehicular communication

Page 2: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

IoT,general robotics, industrial automation

Constrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high coupling

Legacy Non-viable options

Modernsoftware-defined

vehicles

Page 3: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

IoT,general robotics, industrial automation

Constrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high couplingRC PWM...

DDS

Legacy Non-viable options

Modernsoftware-defined

vehicles

Page 4: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

IoT,general robotics, industrial automation

Constrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high couplingRC PWM...

CANopen,CANaerospace

MQTT

Legacy

ARINC 429

Non-viable options

Modernsoftware-defined

vehicles

DDS

Page 5: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Modernsoftware-defined

vehicles

IoT,general robotics, industrial automation

Constrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high couplingRC PWM...

CANopen,CANaerospace

MQTT

Legacy

ARINC 429

Non-viable options

AFDX

DDS

Page 6: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Modernsoftware-defined

vehicles

IoT,general robotics, industrial automation

Constrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high couplingRC PWM...

CANopen,CANaerospace

MQTT

Legacy

ARINC 429

TCPI2C

Non-viable options

AFDX

DDS

Page 7: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

IoT,general robotics, industrial automation

Modernsoftware-defined

vehiclesConstrained, cheap toverify & validate

Flexible, hard toverify & validate

High-level,abstract

Low-level,high couplingRC PWM...

AFDX

CANopen,CANaerospace

UAVCAN MQTT

Legacy

ARINC 429

TCPI2C

Non-viable options

DDS

Page 8: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Core design goals● Real-time● Viable for safety-critical systems● Low memory footprint● Low overhead● Simple

Page 9: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Real-time● Deterministic transport● Constant-complexity algorithms● Bounded data structures

Page 10: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

High latency, worseLow latency, better

UAVCAN over C

AN FD

DShot15

0

UAVCAN over C

AN 2.0

Onesh

ot125

Multish

ot, O

nesh

ot42,

DShot60

0, etc

.

RC PW

M

(terrib

le)

ca. 150 𝜇sca. 100 𝜇s ca. 1500 𝜇s

Real-time

Page 11: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Safety-critical● Fully decentralized, democratic● No shared state● Power-up-and-go● Redundant transports● About 1000 SLoC (libcanard)

Page 12: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Safety-criticalDesign trade-offs:

● Robust transport assumed● Static architecture● No arbitrary-size data objects: uint8[<=256] data

Page 13: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

NXP LPC11C24ARM Cortex M050 MHz8K RAM32K ROMno RTOS

Low memory footprint

Page 14: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

STM32F302ARM Cortex M4F72 MHz16K RAM64K ROMno RTOS

Low memory footprint

Page 15: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Protocol RAM ROMUAVCAN 8 K 32 KCANaerospace 4 K 8 K

DDS/XRCE 32 K 250 K

DDS/RTPS 100 K ≫250 K

Low memory footprint

Page 16: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 17: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Simple● Complexity comparable to CANaerospace● Detailed specification under 80 pages + standard data types● About 1 man/month to implement from scratch (excl. DSDL)● Robust reference implementations in C, C++, Python, Rust (WIP)

Page 18: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Simple

Page 19: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

SimpleFamiliar communication abstractions:

● Stateless publish-subscribe● Simple request-response (RPC)● Very low semantic overhead

Page 20: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 21: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 22: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Brief history of UAVCAN

Page 23: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Micro-satellitesUAV Manned

aircraftRobotic systems Light EV

Common high-level communication requirements

CAN 2.0 CAN FD Ethernet IEEE 802.15.4

Other transports

Scope ofUAVCAN v0

Page 24: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 25: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Micro-satellitesUAV Manned

aircraftRobotic systems Light EV

Common high-level communication requirements

CAN 2.0 CAN FD Ethernet IEEE 802.15.4

Other transports

Scope of UAVCAN v1

Page 26: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

MY STANDARD DATA TYPES

Page 27: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Micro-satellitesUAV Manned

aircraftRobotic systems Light EV

Common high-level communication requirements

CAN 2.0 CAN FD Ethernet IEEE 802.15.4

Other transports

Scope of UAVCAN v1

Dronecodeprofile

Page 28: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 29: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 30: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Integrating UAVCAN

Page 31: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Open● MIT licensed● Github hosted reference implementations● Open specification (no membership required)

Page 32: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Useful● Tools● Documentation● Reference Implementations● Communication● Validation Suites

Page 33: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Forward Looking● Not encumbered with legacy and bloat● Designed with new technology in mind● Lowers the chance of getting locked-in to a bus technology

Page 34: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

DSDL in Practice● Enables good system design by defining interfaces between sub-systems● Similar to ROS, sub-systems are decoupled and can be developed in parallel● Versioning allows a vehicle system to evolve over time● As an IDL it avoids technology lock-in● Certifiable generators could be produced

Page 35: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Core Application Functions● Heartbeat/status● GetInfo● Diagnostics, data flow, registers● Plug-and-play● Node software update and ExecuteCommand

Page 36: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

What changed?

Page 37: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

v0

Page 38: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

v1

Page 39: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

WHAT DID I DO?!?

(When you realize you need to change the dsdl type you just manufactured into to 3 million devices)

WHAT DID I DO?!?

Page 40: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

https://forum.uavcan.org/t/simpler-and-better-dsdl-versioning/280

Kjetil Kjeka

Page 41: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Migration to UAVCAN v1

Page 42: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

UAVCAN v1 reference implementations

Implementation Language Transports Status

Libcanard C99 CAN (FD) Usable

PyUAVCAN Python CAN (FD), UDP/IP, serial, … Usable

Libuavcan C++11 CAN (FD) ETA Aug 2019

uavcan.rs Rust CAN (FD) TBA

Page 43: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

v1v0 discussion & feedback transition

Migration proposal

Vendo

rs no

tified

of

impe

nding

brea

kage

The P

X4 midd

leware

migrate

d to v

1 (bre

aking

)

Now PX4 v1.11March 2020

EOL ofPX4 v1.10

EOL of th

e las

t PX4

supp

orting

v0

Page 44: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Migration proposalHR resources secured

Page 45: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

How do I build stuff with UAVCAN v1?

https://new.uavcan.org

Page 46: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Future of UAVCAN

Page 47: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Remaining Work● Finish the reference implementations● Finish the new tools (Yukon)● Define and deploy a type management process● Lowering the entry barrier

Page 48: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate
Page 49: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Broad strokes● New transports: UDP/IP, serial, wireless● Lowering the entry barrier● Maintaining the high software quality standards● Deploy in two vehicle systems● Formal standardization

Page 50: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Project Health● Higher (lower?) bus factor is needed● More representation is needed by vendors and manufacturers● A PX4 integration expert/maintainer is needed

Page 51: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Conclusion● UAVCAN v1 is the recommended choice for new projects● Legacy systems based on UAVCAN v0 will be supported until 2021 at least● Ongoing research on heterogeneous UDP, serial, and wireless transports

Page 52: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Resources● Dev call every Wednesday 18:00 UTC; see bit.ly/2MVdPBx● Forum: https://forum.uavcan.org● Specification: https://new.uavcan.org (soon to be https://uavcan.org)● Github: https://github.com/UAVCAN

○ Python: https://github.com/UAVCAN/pyuavcan/tree/uavcan-v1.0 ○ C: https://github.com/UAVCAN/libcanard/tree/uavcan-v1.0 ○ C++: https://github.com/UAVCAN/libuavcan/tree/uavcan-v1.0○ Stand-alone DSDL to code generator: https://github.com/UAVCAN/nunavut

Page 53: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

UncomplicatedApplication-levelVehicularCommunicationAndNetworking

Page 54: Intravehicular communication - UAVCAN · 2019. 6. 25. · IoT, general robotics, industrial automation Constrained, cheap to verify & validate Flexible, hard to verify & validate

Intravehicular communication