User Tools

Site Tools


projects:lps:index

This is an old revision of the document!


Alpha production Currently this product is only available as part if our alpha release and not yet finalized. Information here will be changed at any time without notice.

System overview

The local positioning system is based on the DecaWave DWM1000 module. The system consists of a number of anchors that's continuously pinged from the Crazyflie 2.0 deck that's based on the same module. The anchors are placed around the room at known positions (for now).

Our testsystem uses the following components:

  • 6 anchors (with power cables) using <this> 3D printed stand
  • 1 deck
  • Computer running ROS (Indigo) using the Crazyflie ROS module
  • Crazyflie client with ZMQ to mix manual and automatic control

Here's a video of the current state (January 2016).

Hardware description

The hardware consists two parts, nodes and decks.

LPS Node

Connects and buttons:

  1. uUSB: Used to power board (and will have command-line interface)
  2. DC-jack: Power (5V)
  3. Terminal: Power (5V)
  4. Reset: Reset the board
  5. Exp connector: Designed for ESP8266 but can be used for other things. Contains 3V3 power, TX, RX and GND.
  6. USR & DFU: If pressed and held during reset or power on this will put the board into DFU bootloader mode. When the system is up and running the button is still unused, but could be used to trigger functionality in the firmware.
  7. SWD: Connector for programming and debugging MCU. Uses same pin-out as Crazyflie 2.0 and this adapter can be used to connect debuggers.
  8. FTDI: Connector designed for the FTDI serial-to-USB cable (TTL-232R-3V3). Except for getting a serial console for debugging it can also be used to power the board. Note that signals are 3V3 and power is 5V.
  9. M3 mounting holes

MCU controlled LEDs:

  • POWER: On when board is powered
  • RANGING: Blinking when ranging is in progress
  • SYNC: TDB
  • MODE: On in Anchor mode, off in Tag mode and blinking in Sniffer mode

DWM1000 controlled LEDs:

  • TX: Transmitting
  • RX: Receiving
  • SFD: Received packet timestamp
  • RXOK: Packet received without error

DWM deck

TBD

Firmware

DWM Node

Building and flashing

Building and flashing is described in the repository. It's possible to flash the board both using SWD and DFU.

Flashing via DFU requires dfu-utils (>=0.8) and Python (>=2.7). To enter DFU mode hold down the DFU button (see 6 above) while power on or resetting the board.

DWM deck

The firmware for the DWM deck is included in the Crazyflie 2.0 firmware build (recent) and activated when the deck is attached. The deck contains a small memory that holds the address of the board as well as the addresses of the anchors it will use for ranging.

More information on building the firmware and the firmware itself can be found here.

ROS

Set up

the dwm nodes can be configured in 3 different modes; tag, anchor or sniffer. By default they come pre-configured as anchors. The anchors are powered with 5v either through micro usb, power jack or screw terminal A nice way to power the anchors is to use usb power pack like we do here:

Place the anchors at least 15 cm from the floor/wall/ceiling, and at least 1 meter apart. We use 3d printed anchor-stands that can be found at: https://github.com/bitcraze/bitcraze-mechanics/blob/master/LPS-anchor-stand/anchor-stand.stl

The ideal way to place them is on the surface of a sphere around the target area. This might be hard but try to get some reasonable distribution.

projects/lps/index.1455209553.txt.gz · Last modified: 2016-02-11 17:52 by bjorn