A Swarm Intelligence Approach to Static Localization
4.2 Time Domain PulsON 410 RCMs
The PulsON 410 RCM is a single-board UWB radio module intended to be integrated into users’ electronic devices to enable high precision distance measurement coupled with wireless communications. The main feature of the PulsON 410 RCMs is that they provide accurate and reliable measures of inter-sensor distances at a high update rate. Two different range measurement techniques are supported, namely: Two-Way (TW) ToF ranging technique, which provides Precision Range Measurement (PRM), i.e., highly precise range measurements with high update rate; and Coarse Range Estimation (CRE) technique, according to which the range estimate is obtained from the signal strength.
Figure 4.1: A PulsON 410 RCM.
The frequency transmission of the PulsON 410 RCMs is centered at 4.3 GHz, and a bandwidth of more than 1 GHz is guaranteed, as the RF band spans from 3.1 GHz to 5.3 GHz. Each sensor is composed of a single small board (with dimensions 7.6 cm
×8.0 cm ×1.6 cm) and it needs to be connected to a power source (12 Volt). Each PulsON 410 RCM can support up to two UWB antennas [64]. A PulsON 410 RCM is shown in Figure 4.1.
Usually, the communication architecture encompasses many PulsON 410 RCMs and at least one host, connected to at least one module via USB connection. The requests are always originated from hosts and the RCMs provide confirmations for all requests. More precisely, the interface between host and RCMs consists of six request messages from host to RCM with their associated confirm messages. In addition, info messages are sent to the USB-connected host every time a UWB packet is received from other RCMs.
Figure 4.2: A typical PulsON 410 RCM communication architecture.
Each RCM can communicate, on the UWB channel, to all the RCMs in the con-sidered environment, and each message exchange is associated with a message identi-fier. Each RCM is associated with an ID and communications between pairs of RCMs can be performed either as broadcast or by directly addressing a given ID. A typical communication architecture is shown in Figure 4.2 [64].
The TW-ToF technique is packet-based and it involves some steps. First, the re-questing RCM (which is connected to a host) transmits a request packet, i.e., a long packet of pseudo-randomly encoded pulses. Once another RCM receives the packet, it transmits a response packet to the requester, which computes the precise time delay, with picoseconds accuracy, between the request packet transmission and the response packet reception.
The distance, in millimiters, between the two considered RCMs is then estimated by the receiver RCM by properly processing the time delay estimate, taking into ac-count the antenna delay offsets. After the reception of a UWB packet, the requester RCM communicates all received data to its host, which can process it. In the follow-ing, a pair of PulsON 410 RCMs is used to derive a statistical model for the estimated distances between them.
Listing 4.1: List of C library function prototypes 1 int rcmIfInit(rcmIfType ifType, char *destAddr);
2 void rcmIfClose(void);
3
4 int rcmBit(int *status);
5 int rcmOpModeSet(int opMode);
6 int rcmSleepModeSet(int sleepMode);
7 int rcmConfigGet(rcmConfiguration *config);
8 int rcmConfigSet(rcmConfiguration *config);
9 int rcmStatusInfoGet(rcmMsg_GetStatusInfoConfirm *c);
10 int rcmDataSend(int mode, int size, char *data);
11 int rcmRangeTo(unsigned long destNodeId, int mode, 12 int size, char *data, rcmMsg_RangeInfo *rangeInfo, 13 rcmMsg_DataInfo *dataInfo,
14 rcmMsg_ScanInfo *scanInfo,
15 rcmMsg_FullScanInfo *fullScanInfo);
The PulsON 410 RCM can be programmed using C or Matlab libraries, which provide functions to support host-RCM communications via USB and serial. Here, we focus on the main C library functions, which are enumerated in Listing 4.1.
The first two functions manage the communications between the host and the connected module. More precisely
• rcmIfInit(): opens communication with the module. TheifTypecan be rcmIfSerialorrcmIfUsband thedestAddrdepends on the chosen type (e.g.:/dev/usbmodem101for USB communications in MacOS 10.5.8).
• rcmIfClose(): closes the communications channel.
Once the communication channel is open, the library provides the following functions to wrap messages between the host and the RCM module
• rcmBit(): performs a built-in test of the module and returns the statusof the module. IfstatusequalsOK, the module passed the built-in test.
• rcmOpModeSet(): sets the operation mode. It can be used to make sure that the device is configured in the proper operation mode among the available modes. Only the RCM mode is used in the presented expertiment.
• rcmSleepModeSet(): sets the energy saving mode. This can be used to en-sure that the device is awake or to force a low consumpion mode.
• rcmConfigGet(): retrieves the current configuration of the module and fills theconfigstructure. For instance, this function can be used to read the node ID of the device (config.nodeId).
• rcmConfigSet(): sets the configuration of the module with the config structure. For instance, this function can be used to set the node ID of the device.
• rcmStatusInfoGet(): retrieves informations about the installed hardware and firmware, and also about the current measured temperature.
• rcmDataSend(): can be used to send applications-specific data to the device.
All RCM within range will receive the data and promiscuously send this data to their respective host (if attached). This function provides a mean to send data, over the UWB channel, to all devices and hosts in range.
• rcmRangeTo(): this function is used to get range informations from a TN (destNodeId). If destNodeId equals BROADCAST_NODE_ID, then all de-vices within range respond but only the first received reply is processed. Ob-serve that, by definition,BROADCAST_NODE_IDis equal to-1. The most im-portant return information is in therangeInfostructure, which provides three types of range measurements in millimeters. Other information inscanInfo andfullScanInfois tagged as debug-only by the official documentation. It is worth noting that together with the range request, the program can also send application-specific data which is received by all hosts in range, as in the case ofrcmDataSend.
We have defined a modified version of the functionrcmRangeTo()which takes the ID of the requester node as an additional input parameter. This function is denoted asrcmRangeToEx()and will be used in Chapter 5.
The functions previously described use data structures to pass parameters and to receive values. All such structures use platform independent data type
• rcm_uint32_t: unsigned 32-bit integer
• rcm_uint16_t: unsigned 16-bit integer
• rcm_uint8_t: unsigned 8-bit integer
A detailed list of the data structures that the C library provides can be found in offi-cial documentation [65]. For the sake of simplicity, we only show some of the main parameters ofrcmMsg_RangeInfo, as they will be used in the following. Such mes-sage is sent by the local requesting RCM to its host at the end of a full UWB ranging conversation.
- rcm_uint16_t msgId: identifier to correlate range requests with informa-tion messages.
- rcm_uint32_t responderId: ID of the responding module.
- rcm_uint8_t rangeStatus: status/error codes for the range conversation.
- rcm_uint8_t antennaMode: specifies the antenna to be used during this conversation.
- rcm_uint16_t stopwatchTime: how long the range conversation took, in milliseconds.
- rcm_uint32_t precisionRangeMm: distance in millimeters between a pair of UWB modules based on a TW-ToF measurement (PRM).
- rcm_uint32_t coarseRangeMm: coarse distance in millimeters based on direct path signal strength (CRE). Note that this value is recalibrated to the PRM value each time a PRM of the link is measured.
- rcm_uint32_t filteredRangeMm: filtered distance in millimeters based on the combination of PRM and CRE values passed through a recursive optimal Kalman estimator with two state variables.
- rcm_uint16_t vPeak: the absolute maximum value in the leading edge win-dow of the received waveform. This value is used to determine the CRE.
- rcm_uint32_t timestamp: milliseconds since the module boot at the time of the range conversation.
In the experimental results shown in this dissertation, the localization algorithms are performed on the basis of the distances rcm_uint32_t precisionRangeMm. We remark thatvPeakis a quality metrics which accompanies any range message.
ThevPeakis a measure of the maximum absolute value of the amplitude measured just after the leading edge offset. The leading edge offset is a parameter associated with the direct sequential scan of the pulse waveform. More precisely, the leading edge offset is the index in the scan where the system determines the ToA of the pulse.
The parametervPeakis an improved form of RSS and it rarely suffers from multipath fading [65].