32
Loco Positioning An Open Source Local Positioning System Arnaud Taffanel Bitcraze AB FOSDEM 2017

Loco Positioning System - FOSDEM 2017

Embed Size (px)

Citation preview

Page 1: Loco Positioning System - FOSDEM 2017

Loco PositioningAn Open Source Local Positioning System

Arnaud TaffanelBitcraze AB

FOSDEM 2017

Page 2: Loco Positioning System - FOSDEM 2017

Crazyflie 2.0

● Open source flying development platform● Designed to be expandable in both software and

hardware○ 168MHz Cortex-M4 CPU with FPU (stm32f405)○ Deck expansion port

2

Page 3: Loco Positioning System - FOSDEM 2017

Our autonomous flight attempts

3

Page 4: Loco Positioning System - FOSDEM 2017

The decawave DW1000

● Radio chip available of the shelf● Standard based: IEEE802.15.4a UWB PHY● 500MHz bandwidth with 5 channels from 3 to 7GHz● Radio that can range: potential to be used as a base for a

Local Positioning System

4

Page 5: Loco Positioning System - FOSDEM 2017

What is a local positioning system ?

● Similar to GPS but local (ie. indoor)● Provides absolute position

5

Page 6: Loco Positioning System - FOSDEM 2017

Why a local positioning system ?

● Indoor navigation● Assets tracking● Bitcraze focuses on indoor positioning and navigation for

robotics

6

Page 7: Loco Positioning System - FOSDEM 2017

Existing systems: Optical

● Motion capture systems○ State of the art for flying robotic and swarm research

○ Very precise but expensive● Optical flow mounted on platform

7

Page 8: Loco Positioning System - FOSDEM 2017

Existing systems: Radio-based

● Received signal strength (ex. Bluetooth low energy tag)○ Coarse accuracy

● Angle detection○ Angle of arrival○ Azimut from the transmitting antenna (ex. VOR system used

for airplanes)● Time of flight

○ Requires wide bandwidth to be resilient to multipath

8

Page 9: Loco Positioning System - FOSDEM 2017

Ultra Wideband (UWB) radio: What is it ?

9

Page 10: Loco Positioning System - FOSDEM 2017

Ultra Wideband radio: Multipath

10

Page 11: Loco Positioning System - FOSDEM 2017

Ultra Wideband: Packet format and timing

● Very long preamble● SFD (start frame delimiter) is the timestamped instant● Packets can carry up to 127 Bytes of data

○ 1024 with a Decawave proprietary extension● Packets contains source and destination address

○ IEEE802 MAC header (MAC addresses)

11

Page 12: Loco Positioning System - FOSDEM 2017

Ultra Wideband: Preamble detection

12

Page 13: Loco Positioning System - FOSDEM 2017

Ultra Wideband radio: Timestamping

● Precise timestamping of packets at transmission and reception○ 64GHz timer, 1.5ps timer tick -> ~5mm○ Decawave DW1000 specifies +/-100mm distance

measurement accuracy● Robust to multipath● Not so robust to non-line-of-sight (NLOS)● NLOS induces an offset measurement

13

Page 14: Loco Positioning System - FOSDEM 2017

UWB-based LPS architecture

● Anchors are part of the infrastructure: UWB radios placed at known location

● Tag is what we want to locate: mobile UWB radio14

Page 15: Loco Positioning System - FOSDEM 2017

Two Way Ranging (TWR): 2 Packets

● Basically ping:

● Anchor and tag have different clocks: very big error if anchor response time is not close to 0

15

Page 16: Loco Positioning System - FOSDEM 2017

Two Way Ranging (TWR): 3 Packets

● One exchange added to cancel clock drift error

● Now there is information left in the anchor

16

Page 17: Loco Positioning System - FOSDEM 2017

Two Way Ranging (TWR): 4 Packets

● Last packet transfers timestamps to the tag● Active distance measurement

○ The tag controls the distance measurement rate○ Bi-directional communication

17

Page 18: Loco Positioning System - FOSDEM 2017

Two Way Ranging (TWR): Positioning

● Tag at intersection of○ 2D: circles○ 3D: spheres

● Noise properties scale well with distance

● Good performance in and near the Anchor convex hull

● Requires active distance measurements: does not scale with number of Tags

18

Page 19: Loco Positioning System - FOSDEM 2017

Time Difference of Arrival (TDoA)

● If packets were sent at the same time○ Difference between receive time is the difference of time flight○ Can be used to calculate relative distance to Anchor 1

compared to Anchor 2

19

Page 20: Loco Positioning System - FOSDEM 2017

Time Difference of Arrival (TDoA)

● Sending many packets at the same time is not possible so:○ We assign one time slot to each anchor○ At the reception the time slot time is subtracted from TDoA○ Two packets from the same anchor can be used to synchronize

the local clock to the remote clock● How to synchronize transmit times between anchors?

20

Page 21: Loco Positioning System - FOSDEM 2017

Time Difference of Arrival (TDoA)

● Packets are broadcast● The same packet are used for measuring time of flight

between anchor (TWR!)○ If we have time of flight between two anchors we can

synchronize their clock

21

Page 22: Loco Positioning System - FOSDEM 2017

Time Difference of Arrival: Positioning

● Tag at intersection of○ 2D: parabola○ 3D: paraboloid

● Tag needs to be in anchor convex hull for good precision

● Scales very well: Tags just listen

22

Page 23: Loco Positioning System - FOSDEM 2017

Loco Positioning System (LPS)

● Based on of-the-shelf UWB radio: DWM1000● Open source local positioning system for robotic

○ Currently with a focus on Crazyflie 2.0● Useful for robotics and more generally anything that

needs real time absolute positioning23

Page 24: Loco Positioning System - FOSDEM 2017

LPS Architecture: Nodes

● STM32F072 Cortex-M0 MCU● DWM1000 UWB module● Firmware using FreeRTOS● Open source DW1000 driver● Can be used as Anchor, Tag

or UWB sniffer○ This is why it is called Node

and not Anchor● Upgradable and configurable

via USB○ Radio (OTA) update and

configuration in development24

Page 25: Loco Positioning System - FOSDEM 2017

LPS Architecture: Crazyflie 2.0 deck

● Based on DWM1000 UWB module

● Ranging, positioning and control implemented in Crazyflie 2.0 firmware

25

Page 26: Loco Positioning System - FOSDEM 2017

LPS Architecture: Firmware

● TWR stable, TDoA experimental● More than just ranging required for autonomous robotics

○ Positioning using sensor fusion (Kalman)○ Position and trajectory control

26

Page 27: Loco Positioning System - FOSDEM 2017

LPS Architecture: Software

● ROS Support● Support by Crazyflie lib and client in development● System configuration and management tools in

development

27

Page 28: Loco Positioning System - FOSDEM 2017

Project status and future

● Currently used by universities and industry● Tech artists very interested by an open flying swarm for

shows● Lots of software planed or in development

○ Blender choreography authoring plugin○ Swarm management software○ Automatic anchor position measurement

● Small Tag with IMU and LPS planned

28

Page 29: Loco Positioning System - FOSDEM 2017

Our next autonomous flight attempts?

29

Page 30: Loco Positioning System - FOSDEM 2017

Demo!

30

Page 31: Loco Positioning System - FOSDEM 2017

Non-linear Quaternion controller

31

Page 32: Loco Positioning System - FOSDEM 2017

Questions?

Arnaud [email protected]

Web: bitcraze.ioTwitter: @bitcraze_se