User Tools

Site Tools


projects:lps:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:lps:index [2016-03-21 15:22]
kristoffer [Building and flashing]
projects:lps:index [2020-05-12 14:30] (current)
kimberly
Line 1: Line 1:
-<WRAP center round info+<WRAP center round important 60%
-//**Alpha production**// +This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https://www.bitcraze.io/documentation/system/]]
-Currently this product is only available as part if our [[https://www.bitcraze.io/2016/01/4966/|alpha release]] and not yet finalized. Information here will be changed at any time without notice.+
 </WRAP> </WRAP>
  
-====== System overview ====== +====== Loco Positioning System ======
-The local positioning system is based on the [[http://www.decawave.com/|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).+
  
-<WRAP group> +The loco positioning system (LPS) project is set of hardware and software designed to implement a local positioning system (LPS). The hardware is based on the Decawave DW1000 chipFor more information about the system see the [[doc:lps:index|Loco positioning system documentation]]
-<WRAP half column> +
-Our testsystem uses the following components: +
-  * 6 anchors (with power cables) using [[https://github.com/bitcraze/bitcraze-mechanics/blob/master/LPS-anchor-stand/anchor-stand.stl|this]] 3D printed stand +
-  * 1 deck +
-  * Computer running [[http://wiki.ros.org/indigo|ROS (Indigo)]] using the [[http://wiki.ros.org/crazyflie|Crazyflie ROS module]] +
-  * Crazyflie client with ZMQ to mix manual and automatic control +
-</WRAP> +
-<WRAP half column> +
-Here'video of the current state (January 2016). +
-{{youtube>HZC8yJE12r4}} +
-</WRAP> +
-</WRAP> +
- +
-====== Hardware description ====== +
-The hardware consists two parts, nodes and decks. +
-===== LPS Node ===== +
-{{:projects:lps:dwm1000-node-brd.png|}} +
-<WRAP group> +
-<WRAP half column> +
-Connects and buttons: +
-  - **uUSB**: Used to power board (and will have command-line interface) +
-  - **DC-jack**: Power (5V) +
-  - **Terminal**: Power (5V) +
-  - **Reset**: Reset the board +
-  - **Exp connector**: Designed for ESP8266 but can be used for other things. Contains 3V3 power, TX, RX and GND. +
-  - **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. +
-  - **SWD**: Connector for programming and debugging MCU. Uses same pin-out as Crazyflie 2.0 and [[http://www.seeedstudio.com/depot/Crazyflie-20-debug-adapter-kit-p-2114.html|this adapter]] can be used to connect debuggers. +
-  - **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. +
-  - **M3 mounting holes** +
-</WRAP> +
-<WRAP half column> +
-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 +
-</WRAP> +
-</WRAP> +
- +
-===== DWM deck ===== +
- +
-The DWM deck is designed to be installed on the Crazyflie 2.0 deck port. The orientation is indicated using the standard deck orientation [[projects:crazyflie2:expansionboards:index#mechanical_architecture|symbol]]. The UWB antenna is facing up on the front of the Crazyflie. +
- +
-The deck contains a row of 4 LEDs, all controlled by the DWM1000: +
-  * **TX**: Transmitting +
-  * **RX**: Receiving +
-  * **SFD**: Received packet timestamp +
-  * **RXOK**: Packet received without error +
-====== Firmware ====== +
- +
-===== DWM Node ===== +
- +
-==== Building and flashing ==== +
-Building and flashing is described in the [[https://github.com/bitcraze/lps-node-firmware|repository]]. It's possible to flash the board both using SWD and DFU. +
- +
-Flashing via DFU requires [[http://dfu-util.sourceforge.net/|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. +
- +
-To flash the firmware use +
-<code>make dfu</code> +
- +
- +
-===== 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 [[https://github.com/bitcraze/crazyflie-firmware|here]]. +
- +
-====== ROS ====== +
- +
-The ROS module for positioning with the LPS is available on Github: https://github.com/bitcraze/lps-ros. It has been developed and tested on ROS Indigo running on Ubuntu 14.04 +
- +
-To get started from a newly installed ubuntu: +
-  - Install ROS: http://wiki.ros.org/indigo/Installation/Ubuntu +
-  - Create your workspace: http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment#Create_a_ROS_Workspace +
-  - Clone https://github.com/bitcraze/lps-ros and https://github.com/whoenig/crazyflie_ros in the workspace src folder +
-  - Run //catkin_make// to build the packages +
-  - Source the workspace //devel/setup.bash// again +
-  - Run //rosdep install bitcraze_lps_estimator// to install dependencies +
- +
-The position of the anchor has to be entered in a configuration file. The file should be //data/anchor_pos.yaml//. An example is present in the data folder: +
-<file yaml anchor_pos.yaml> +
-n_anchors: 6 +
-anchor0_pos: [  0,   0, 1.85] +
-anchor1_pos: [  0,   2, 1.85] +
-anchor2_pos: [  4,   2, 1.85] +
-anchor3_pos: [  4,   0, 1.85] +
-anchor4_pos: [1.3,   1, 1.85] +
-anchor5_pos: [2.6,   1, 1.85] +
-</file> +
- +
-The positions are in meter, [x, y, z], from the origin. +
- +
-When this file is configured, the //dwm_loc.launch// launch configuration will connect the crazyflie with the right log setup, launch the particle filter and the visualization: +
-<code bash> +
-$ roslaunch bitcraze_lps_estimator dwm_loc.launch uri:=radio://0/40/2M +
-</code> +
-====== 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:+
  
-{{:projects:lps:dwm-setup.jpg|}}+===== Hardware description ===== 
 +The hardware consists multiple parts: 
 +  * [[projects:lps:node|Loco positioning node]]: Mainly aimed as an anchor but can be used as a tag or UWB radio transceiver and sniffer. 
 +  * [[projects:lps:deck|Loco positioning deck]]: USB radio deck to be installed on Crazyflie 2.X 
 +  * [[projects:lps:roadrunner|Roadrunner]]: Standalone tag aimed at enabling other robots to use the positioning
  
-Place the anchors at least 15 cm from the floor/wall/ceiling, and preferably at least 2 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 
  
-One of the main consideration for the anchor placement is the [[https://en.wikipedia.org/wiki/Dilution_of_precision_(GPS)|Dilution Of Precision]]. 
projects/lps/index.1458570127.txt.gz · Last modified: 2016-03-21 15:22 by kristoffer