SenseDSL: Automating the Integration of Sensors for MCU

SenseDSL: Automating the Integration of
Sensors for MCU-based Robots and CyberPhysical Systems
2007 DARPA Urban Challenge
Autonomously driving vehicle Caroline participating in the 2007 DARPA Urban Challenge.
Experimental Miniature Vehicle Fleet
3
Experimental Miniature Vehicle Fleet
L
L
Infrared L
L
L
ODO Vehicle A&G L
L
L
Camera Ultra sonic Infrared Infrared Experimental Miniature Vehicle Fleet
Component
Component ID
Connection Type
RC Vehicle
1/10 scale electrically driven on-road vehicle
Infrared Sensor
SHARP GP2D120
ADC
Ultrasonic
Sensor
Camera
Devantech SRF08
I2C
Logitech c525
USB
Steer/Servo
PWM
ESC
1/10 Brushless ESC
PWM
Motor
1/10 Brushless Motor
LED Board
Self-assembled
ADC
Razor Board
Razor-9DoF-IMU
UART
Discovery Board STM32F4-Discovery
USB
Application
Board
RC-Handset
PandaBoard ES
USB
A3-STX Deluxe F.H.S.S
Wireless
RC Receiver
A3-RX Deluxe F.H.S.S
Wireless
5
Engineering the HW/SW interface
Embedded System Hardware Manual Embedded System Data Sheets Domain-­‐
specific PIN Constraints 6
Engineering the HW/SW interface
•  Total 14,689,111
configuration possibilities
•  Verification of a given pin
assignment configuration
•  Finding a feasible/all
possible/best pin
assignment configuration
for the interface board
Mamun, Berger, and Hansson: Engineering the Hardware/SoLware Interface for RoboNc PlaOorms – A Comparison of Applied Model Checking with Prolog and Alloy. DSLRob’13 7
LED
Board
Camera
Flashing
LEDs
left
Braking
LEDs
Flashing
LEDs
left
P_039, P_138, P_140
PandaBoard ES + Linux
Wheel
Encoder 2
Sensor A
PA1
Wheel
Encoder 1
Sensor B
RCReceiver
Wheel
Encoder 2
Sensor B
PB14
PE5
PA8 PC6
PA7
Wheel
Encoder 1
Sensor A
PB7
Software/Hardware Interface Board
Application Board
Engineering the HW/SW interface
Motor
ESC
Steer
PC8
PC9
STM32F4 Discovery Board + ChibiOS
PC1
PC4
Infrared
Infrared
Ultrasonic
Ultrasonic
ADC
I2C
PD8 (TX)
PD9 (RX)
PC5
ICU
Infrared
PB6 (SCL)
PB9 (SDA) Razor
Board
Ultrasonic
PWM
UART
USB
LED
Board
Camera
Flashing
LEDs
left
Braking
LEDs
Flashing
LEDs
left
P_039, P_138, P_140
PandaBoard ES + Linux
Wheel
Encoder 2
Sensor A
PA1
Wheel
Encoder 1
Sensor B
RCReceiver
Wheel
Encoder 2
Sensor B
PB14
PE5
PA8 PC6
PA7
Wheel
Encoder 1
Sensor A
PB7
Software/Hardware Interface Board
Application Board
Engineering the HW/SW interface
Motor
ESC
Steer
PC8
PC9
STM32F4 Discovery Board + ChibiOS
PC1
PC4
Infrared
Infrared
Ultrasonic
Ultrasonic
ADC
I2C
PD8 (TX)
PD9 (RX)
PC5
ICU
Infrared
PB6 (SCL)
PB9 (SDA) Razor
Board
Ultrasonic
PWM
UART
USB
Model Checking & Code Generation
Model Checking & Code Generation
Conclusion
•  HW/SW integration is a constraint-satisfaction problem
•  Engineering the HW/SW interface with MDE:
–  Our embedded system: >14.5 million configuration possibilities
–  Automated verification of a given pin assignment configuration
–  Side effect: Finding a feasible/all possible/best pin assignment
configuration for the interface board
•  Intuitive workflow:
–  Description of facts
–  Description of desired setup
–  Let model transformation automagically do the rest!
http://www.christianberger.net/uproxy
12