Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

A Single Motor Nano Aerial Vehicle with Novel Peer-to-Peer Communication and Sensing Mechanism

Jingxian Wang4, Andrew G. Curtis4, Mark Yim2, and Michael Rubenstein4 4 Center for Robotics and Biosystems, Northwestern University 2GRASP Lab, University of Pennsylvania
Abstract

Communication and position sensing are among the most important capabilities for swarm robots to interact with their peers and perform tasks collaboratively. However, the hardware required to facilitate communication and position sensing is often too complicated, expensive, and bulky to be carried on swarm robots. Here we present Maneuverable Piccolissimo 3 (MP3), a minimalist, single motor drone capable of executing inter-robot communication via infrared light and triangulation-based sensing of relative bearing, distance, and elevation using message arrival time. Thanks to its novel design, MP3 can communicate with peers and localize itself using simple components, keeping its size and mass small and making it inherently safe for human interaction. We present the hardware and software design of MP3 and demonstrate its capability to localize itself, fly stably, and maneuver in the environment using peer-to-peer communication and sensing.

I Introduction

Uncrewed aerial vehicles (UAVs) have been extensively studied in recent years for their wide applications in photography [1], exploration [2], transportation [3], and drone shows [4]. UAVs that collaborate with each other can usually improve performance in these tasks, enabling the swarm to carry heavier objects [5, 6, 7], perform more complicated actions [8, 9], explore faster [10], or form more intricate shapes [11, 12].

In order to collaborate, UAVs in the swarm need inter-robot communication and position sensing capabilities [13]. In most systems, these capabilities are provided externally, by a WiFi router and an optical tracking system [9, 11, 14], Lighthouse systems [15], or RTK GPS [16]. Thus, these systems are usually limited to the particular environment in which they operate. There have been attempts to solve this problem by sensing using on-board sensors like depth cameras [17], Lidars [18], or less accurate ultra wide band (UWB) modules [19]. However, these modules, especially depth cameras and Lidar, are often expensive, heavy and bulky, not to mention that they also require powerful processors to process the data generated [17, 18]. The complexity and cost associated with manufacturing and maintaining such systems can limit the scalability of a swarm [20].

Additionally, a wide variety of tasks, including search and rescue, transportation, or drone shows, can involve direct or indirect interaction with humans. But highly capable multi-motor drones tend to be heavy and unsafe for human interaction without safety equipment [21], a risk that is amplified when interacting with a large number of UAVs. While there are impressive works on active avoidance of obstacles which partially addressed this issue [22, 17], it would be preferred if the drone could be light enough to be inherently safe [23] to interact with.

Refer to caption
Figure 1: A photo of MP3. MP3’s size is 112×3811238\varnothing 112\times 38∅ 112 × 38mm and weighs 20.0g. As MP3 flies, the whole robot rotates around the geometric axis indicated in the figure.

There is often a trade-off between simple, lightweight drones and drones with advanced capabilities. However, recent efforts in single actuator flyers [24, 25, 26, 27, 15] have overcome some of the flight and control limitations of simple drones while maintaining reduced complexity and weight. An interesting feature of these single-motor drones is that their bodies spin when flying. As the body rotates, sensors placed on the body can scan through the environment. This feature could be exploited to achieve omnidirectional communication and sensing [28, 29] while maintaining a simple, lightweight form factor.

In this paper, we present a single motor nano [30, 14] aerial vehicle, MP3, with a novel, minimalist peer-to-peer communication and sensing system. MP3 is similar to its predecessors: its only motor is offset from its center of mass to provide maneuvering ability similar to the original Maneuverable Piccolissimo (MP) [27] and its controller is similar to MP2 [15]. However, MP3 is equipped with a novel communication and sensing system as well as a completely new chassis, electrical, and software design. MP3 is capable of communicating with neighboring beacons or other MP3s using infrared light (IR), and sensing its relative bearing, distance, and elevation to neighbors using a single-drone triangulation method. Using this information, MP3 can subsequently determine its global Cartesian position with millimeter accuracy. Using the global position information, MP3 can control its position in 3D space with a single actuator. The simplicity of MP3 allows it to be 20.0g in weight and 112mm in diameter. The small mass and the partially enclosed propeller make MP3 inherently safe for human interaction even with collisions [23]. We present the hardware and software design of MP3, with emphasis on the novel communication and sensing system, and validate its capability with experiments.

Refer to caption
Figure 2: An exploded view of MP3. MP3 has 7 major parts: 3D printed main and top chassis, a main PCB, a top transmitter, a motor-propeller assembly, and two batteries. The bottom transmitter is placed at the center of the bottom side of the main PCB.

II Robot Design

II-A Overall Concept

MP3, as shown in Fig. 1 and 2, is a minimalist single-rotor drone with on-board communication and position sensing capabilities using a novel optical communication and sensing system. Unlike ordinary drones, MP3 has only one motor offset from its center of mass, two rigid bodies (the rotor fixed to a propeller and the stator fixed to the main chassis), and no inertial measurement unit (IMU). As the motor spins, the body of MP3 spins like a Frisbee in the opposite direction as shown in Fig. 1, and the gyroscopic effect of the spinning body keeps the MP3 stable. By pulsing the thrust at different times, we can tilt the MP3 and control its 3D position in flight [15].

MP3s operate in an environment with multiple MP3s and beacons, as shown in Fig. 3. In the environment, MP3s can communicate with and localize from other MP3s or beacons to execute tasks like position holding or waypoint following. It is worth noting that beacons share the same transmitter hardware and code as regular MP3s as shown in Fig. 4, so beacons are essentially immobile MP3s that are constantly transmitting their position. By using beacons that have identical electronics to the drones, we can replace beacons with actual drones. In the future, we hope to replace all beacons with drones, enabling a swarm-based positioning without any external fixtures and achieving "infrastructure-free" operation as proposed by Pourjabar et al. [31]. We will use “MP3s" to refer to both flying MP3s and beacons when talking about communication, sensing and localization in future discussions. .

Refer to caption
Figure 3: The setup of the test environment. Several beacons and MP3s are in the environment, communicating and providing others with localization. Two cameras, one on the top and one from the side, capture the trajectory of the drone, providing us with the drones’ reference trajectory for analysis only. Blue arrows indicate uni-direction transmission from the beacons to MP3s, and red arrows indicate bi-directional communication between MP3s. Figure is not drawn to scale.

While the non-stationary body reference frame of the robot may seem to make things difficult (the MP3 body spins at ~25Hz), we can actually take advantage of this property to achieve communication and sensing in all directions. As shown in Fig. 4(a), there are three directional infrared (IR) photodiodes fixed to MP3’s body acting as receivers. As MP3 spins, the receivers’ field of view (FOV) scans through its environment, enabling it to communicate with MP3s all around it. Furthermore, the three receivers pick up signals from other transmitters at different times, and we can use this timing information to achieve bearing, distance, and elevation sensing.

Refer to caption
Figure 4: MP3’s communication and sensing system. (a) shows the receiver system (RX) on MP3, (b) shows the top and bottom transmitter system (TX) on MP3, and (c) shows the transmitter system on the Beacon. Note that the transmitter system on the MP3 and on the Beacon are the same.

II-B The Communication and Sensing System

A MP3 can communicate with other MP3s using packets of encoded IR pulses, and it can determine its relative position to nearby MP3s by measuring when its directional receivers start to receive packets from them. Compared to measuring relative distance using received signal strength, our timing-based approach does not require the transmitter and receivers to be uniform in intensity and sensitivity and is less likely to be influenced by scattered signals or changing environmental lighting conditions, making the system more reliable and robust.

Based on this principle, we designed the communication and sensing system hardware as shown in Fig. 4. Omindirectional transmitters on MP3s blink their infrared (IR) LED to broadcast messages in the form of encoded pulses, and MP3s can receive messages and localize themselves using the three photodiodes on them.

II-B1 Theory of Operation

Refer to caption
Figure 5: A simplified model of MP3. (a) shows the environment MP3 operates in and (b) shows the field of view of all three receivers.

To illustrate how MP3s achieve relative position sensing and absolute localization, we consider a simplified theoretical model as shown in Fig. 5, where two point-like transmitters are constantly emitting light omnidirectionally and broadcasting their global position p1,p2subscript𝑝1subscript𝑝2\vec{p}_{1},\vec{p}_{2}over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT via IR communication. A simplified MP3 is trying to determine its relative bearing, distance, and elevation to the transmitters as well as its global position. The MP3 is modeled as a solid body rotating at a constant angular velocity ωz^𝜔^𝑧\omega\hat{z}italic_ω over^ start_ARG italic_z end_ARG, and is equipped with three light receivers with planer fields of view (FOV), i.e. a receiver will only pickup light signal when the transmitter is in its FOV. Two light receivers (right and left) are oriented orthogonal to the MP3 horizontal plane, and one light receiver (middle) is oriented at an angle (ϕitalic-ϕ\phiitalic_ϕ) from orthogonal. As the MP3 rotates, its left, middle, and right receiver will pickup signals from transmitter 1 at time t1L,t1M,t1Rsubscript𝑡1Lsubscript𝑡1Msubscript𝑡1Rt_{\text{1L}},t_{\text{1M}},t_{\text{1R}}italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1M end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT respectively, so we can determine the distance and elevation angle between the MP3 and transmitter 1 as:

r1subscript𝑟1\displaystyle r_{1}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =\displaystyle== Rsin(ω(t1Rt1L)/2)𝑅𝜔subscript𝑡1Rsubscript𝑡1L2\displaystyle\frac{R}{\sin{(\omega(t_{\text{1R}}-t_{\text{1L}})/2)}}divide start_ARG italic_R end_ARG start_ARG roman_sin ( italic_ω ( italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT ) / 2 ) end_ARG (1)
tanα1subscript𝛼1\displaystyle\tan{\alpha_{1}}roman_tan italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =\displaystyle== sin(ω(2t1Mt1Rt1L)/2)cotϕ𝜔2subscript𝑡1Msubscript𝑡1Rsubscript𝑡1L2italic-ϕ\displaystyle\sin{(\omega(2\,t_{\text{1M}}-t_{\text{1R}}-t_{\text{1L}})/2)}% \cot{\phi}roman_sin ( italic_ω ( 2 italic_t start_POSTSUBSCRIPT 1M end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT ) / 2 ) roman_cot italic_ϕ (2)

We can obtain r2,α2subscript𝑟2subscript𝛼2r_{2},\alpha_{2}italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_α start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT from transmitter 2 similarly. Furthermore, at time t1=(t1L+t1R)/2subscript𝑡1subscript𝑡1Lsubscript𝑡1R2t_{1}=(t_{\text{1L}}+t_{\text{1R}})/2italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT ) / 2 and t2=(t2L+t2R)/2subscript𝑡2subscript𝑡2𝐿subscript𝑡2𝑅2t_{2}=(t_{2L}+t_{2R})/2italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = ( italic_t start_POSTSUBSCRIPT 2 italic_L end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT 2 italic_R end_POSTSUBSCRIPT ) / 2, the MP3 is facing transmitter 1 and 2 respectively, so we can express the angle between transmitter 1 and transmitter 2 as

θ12=ω(t1t2)subscript𝜃12𝜔subscript𝑡1subscript𝑡2\theta_{12}=\omega(t_{1}-t_{2})italic_θ start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT = italic_ω ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) (3)

With this information, we could theoretically find the global position p𝑝\vec{p}over→ start_ARG italic_p end_ARG of the MP3 by incorporating the calculated relative distance and elevation angles with the communicated absolute positions of the transmitters (p1,p2subscript𝑝1subscript𝑝2\vec{p}_{1},\vec{p}_{2}over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT).

Furthermore, if we have a small uncertainty σtsubscript𝜎𝑡\sigma_{t}italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT for all timing measurements, we can also obtain uncertainty of r1subscript𝑟1r_{1}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, α1subscript𝛼1\alpha_{1}italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, and θ12subscript𝜃12\theta_{12}italic_θ start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT as follows:

σr1subscript𝜎subscript𝑟1\displaystyle\sigma_{r_{1}}italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT \displaystyle\approx r12ωσt2Rsuperscriptsubscript𝑟12𝜔subscript𝜎𝑡2𝑅\displaystyle\frac{r_{1}^{2}\,\omega\sigma_{t}}{\sqrt{2}R}divide start_ARG italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_ω italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_ARG start_ARG square-root start_ARG 2 end_ARG italic_R end_ARG (4)
σα1subscript𝜎subscript𝛼1\displaystyle\sigma_{\alpha_{1}}italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT \displaystyle\approx cotϕcos2α1ωσtitalic-ϕsuperscript2subscript𝛼1𝜔subscript𝜎𝑡\displaystyle\cot{\phi}\cos^{2}\alpha_{1}\,\omega\sigma_{t}roman_cot italic_ϕ roman_cos start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_ω italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT (5)
σθ12subscript𝜎subscript𝜃12\displaystyle\sigma_{\theta_{12}}italic_σ start_POSTSUBSCRIPT italic_θ start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT end_POSTSUBSCRIPT =\displaystyle== 2ωσt2𝜔subscript𝜎𝑡\displaystyle\sqrt{2}\,\omega\sigma_{t}square-root start_ARG 2 end_ARG italic_ω italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT (6)

While σα1subscript𝜎subscript𝛼1\sigma_{\alpha_{1}}italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT and σθ12subscript𝜎subscript𝜃12\sigma_{\theta_{12}}italic_σ start_POSTSUBSCRIPT italic_θ start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT end_POSTSUBSCRIPT are on the same order of magnitude as ωσt𝜔subscript𝜎𝑡\omega\sigma_{t}italic_ω italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT and are not very sensitive to relative position between robots, σr1subscript𝜎subscript𝑟1\sigma_{r_{1}}italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT is proportional to r12superscriptsubscript𝑟12r_{1}^{2}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, meaning that the localization is more accurate when drones are closer to each other. This feature is helpful for collision avoidance in dense swarms.

Unfortunately, non-ideal factors make the implementation of this theory more complicated. These factors include non-ideal sensor optics, limited time resolution constraints by the communications protocols, etc.

II-B2 Optical Design

When designing the optical system, we want it to be as close as possible to the ideal theoretical model of omnidirectional point-source transmitters and planar FOV receivers while keeping the design as simple as possible.

For the transmitter, we used three closely placed side view LEDs, oriented 120 degrees apart, to approximate a omnidirectional point light source. Moreover, MP3s have a light-blocking, cylindrical-shaped chassis, so if we only place one transmitter on top of the MP3, other MP3s will not be able to receive the light when below it as the light will be blocked by the chassis. The condition is similar when we only place one transmitter at the bottom. To address this issue, we placed two transmitters on each MP3, one above the chassis and one at the bottom, increasing the region where the transmitter could be seen, as shown in Fig. 6.

Refer to caption
Figure 6: Transmitters’ coverage region’s cross section. Blue and orange regions are where the receiver on another MP3 can receive the signal from the top and the bottom transmitter respectively, and the green region is where both transmitters can be seen.
Refer to caption
Figure 7: The receiver’s optical structure. (a) shows the structure of the left and right receivers, and (b) shows the structure of the middle receiver. There are two apertures in front of each photodiode to restrict the FOV to ±10plus-or-minussuperscript10\pm 10^{\circ}± 10 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT horizontal and ±50plus-or-minussuperscript50\pm 50^{\circ}± 50 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT vertical. The middle receiver’s aperture is tilted by 25superscript2525^{\circ}25 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT.

For the receiver, we used three high sensitivity IR photodiodes to sense the IR signals, and each of them is placed behind two narrow linear apertures to create an approximate plane-shaped FOV. In reality we have finite aperture and sensor sizes, so the FOV is not a perfect plane; it has some thickness. So, instead of using the time when the receivers pick up the signal from the transmitters to compute the distance and elevation as mentioned in section II-B1, we now use the time when receivers start to pick up the signal instead. The configuration of the apertures and the corresponding FOV are shown in Fig. 7.

Both the inner and outer apertures are important for creating a planar-like FOV. For the inner aperture, we want to increase its size to allow enough light to pass through. However, a finite-size inner aperture combined with a finite-size sensor creates a penumbra, where the light strength is reduced and varies depending on the direction. This introduces uncertainty about whether the signal will be received or not, which affects the accuracy of position sensing. Therefore, we also want to keep the inner aperture small to reduce this uncertainty. On the other hand, the outer aperture determines the FOV of the sensor, which influences how many transmitters could be seen at the same time and how long a transmitter will be in sight in a single rotation. These parameters are more important to communication and will be further explored in section II-B4. Eventually, we set the inner aperture size to 1.25×51.2551.25\times 51.25 × 5mm, horizontal FOV to ±10plus-or-minussuperscript10\pm 10^{\circ}± 10 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT, vertical FOV to ±50plus-or-minussuperscript50\pm 50^{\circ}± 50 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT, and the tilting angle of the aperture on the middle receiver to 25superscript2525^{\circ}25 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT.

II-B3 Electrical Design

MP3 can only receive messages from others when its receivers are facing a transmitting MP3. MP3s typically spin at 25Hz and each of their receivers have a ±10plus-or-minussuperscript10\pm 10^{\circ}± 10 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT horizontal FOV, meaning that, in each revolution, a MP3 only has approximately 2-5ms to communicate with another MP3, and in the worst case scenario this gives a communication latency of 40ms. To facilitate communication with multiple MP3s using time division multiple access (TDMA), each MP3 could take no more than 500~1000us to transmit all necessary information to a receiver. If we want to communicate tens of bytes over this period, we need a system capable of communicating at around 1Mbps. This means that we could not use commercially available IR transceivers but had to implement our own.

Heavily constrained by space, weight, power, and limited available hardware solutions for optical communication, we decided to use a relatively simple communication method: transmitters can only transmit information by turning on and off LEDs, and the receivers will pass the analog received signal through a comparator and convert it back to a binary signal before being processed by the on-board microcontroller. With these constraints in mind, our transmitter and receiver circuit are designed to facilitate high frequency (-3dB analog bandwidth of 10.5M) modulation and reliable reception of IR signals in multi-point to multi-point communication scheme over 5505505-505 - 50cm free space.

Transmitters are 940nm IR LEDs driven by FETs, offering high peak power and fast response [32]. Each LED consumes 700mA when turned on, and has a rise and fall time of 8ns and 4ns, respectively.

Refer to caption
Figure 8: Circuit architecture of the receiver. Amp. and A.L.C. stands for amplifier and ambient light cancellation respectively.

The receiver circuit is shown in Fig. 8. PCB layout and filter are designed to reduce electromagnetic interference of the motor and filter out almost all environmental light. The analog part of the circuit has a gain of 67mV/uA, an input referred noise as low as 36nA RMS, and a -3dB passband of [0.42MHz,10.5MHz]. The overall circuit can reliably pickup photocurrent as low as 140nA, enabling all manufactured MP3s to communicate across at least 50cm free space with more than 95% success rate using non-directional transmission and reception.

It is worth noting that while the system is capable of communicating over 2m if we remove or enlarge the apertures, we want to limit the communication range to prevent congestion issues in communication. We want drones to be as close to each other as possible to create a dense swarm, so we expect robots to be around 30cm away from each other, and that motivates us to artificially limit the communication range to around 1.5×1.5\times1.5 × the average expected distance, or around 50cm.

II-B4 Communication Protocol Design

When designing the communication protocol, we want it to be general-purpose, to be simple to implement, to have multiplexing ability, and to provide accurate enough timing information t1L,t1M,t1Rsubscript𝑡1Lsubscript𝑡1Msubscript𝑡1Rt_{\text{1L}},t_{\text{1M}},t_{\text{1R}}italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1M end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT to facilitate position sensing.

To make our protocol general-purpose, we want it to handle messages of different length and content in the same way. This would allow a MP3 to receive communicated positions from other MP3s, as well as other task-dependent messages in future work. A natural approach would be to use packets: a complete message is transmitted in one or multiple 30-bit packets, each containing 2 bytes of data and additional metadata like the ID of the MP3 transmitting the message, the ID of the packet, the cyclic redundancy check (CRC) value of the message, etc. A MP3 can obtain timing information by looking at when it starts to receive packets from another MP3.

We used pulse position modulation (PPM) for transmitting packets because it requires the LED to be on for less amount of time compared to other alternatives like pulse code modulation (PCM) or pulse width modulation (PWM), and PPM can be decoded faster on the microcontroller (ESP32-PICO-D4). Data are modulated in a modified 4-PPM format, where each symbol encodes 2 bits of data and lasts 22×200superscript222002^{2}\times 2002 start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT × 200ns, and a 200ns gap is inserted between symbols for the ease of decoding. The top and bottom transmitter start transmission at the same time and transmit the same content, but last pulse duration is 200ns if the packet is sent by the top transmitter and 400ns if sent by the bottom transmitter. This design helps with communication because when a MP3 can see both the top and the bottom transmitter on another MP3, it can still correctly receive the message. Furthermore, during sensing, a MP3 will know whether it is looking at the top or the bottom transmitter on another MP3, and can subsequently compensate for the elevation difference to obtain the actual relative position between MP3s.

Transmitters send packets at an irregular interval to enable pure ALOHA [33] multiple access. The time between two consecutive transmissions is randomly picked in the interval of 50~100us so that each MP3 is transmitting 20% of the time on average. This means congestion will not be significant when two MP3s are within the communication range and viewing angle of a MP3. As we have mentioned in section II-B3, in each revolution a MP3 will have approximately 2~5ms to communicate with another MP3, and a transmission interval of 75us means an MP3 can transmit about 100 bytes per revolution, allowing us to transmit the position estimates of MP3s for localization (6 bytes) while leaving enough capacity for other task-related information. Though limited compared to modern communication systems like WiFi, it is adequate for executing a wide range of swarm algorithms which often do not require high bandwidth between agents.

Furthermore, a message interval of 50~100us means the resolution for timing measurements t1L,t1M,t1Rsubscript𝑡1Lsubscript𝑡1Msubscript𝑡1Rt_{\text{1L}},t_{\text{1M}},t_{\text{1R}}italic_t start_POSTSUBSCRIPT 1L end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1M end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1R end_POSTSUBSCRIPT is also 50~100us, which corresponds to an angle resolution of 0.5~1superscript11^{\circ}1 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT. Such angle resolution is just enough to obtain useful distance measurements (<2cm RMS error when the distance between MP3s is 30cm). If we increase the FOV of the receivers or reduce the time between transmissions, multiplexing ability will be reduced; and if we decrease the FOV or increase the time between transmissions, MP3s will not be able to transmit as much information in a single rotation. Furthermore, if we increase the time between transmissions, we will also lose position sensing accuracy.

The modified PPM and the parameters we chose for communication also keep the power consumption of transmission in a reasonable range. As the LED is only on for 4% of the time on average, the total power consumption of the two transmitters is 0.5W, about 5% of the total power consumption of a flying MP3.

II-B5 Global Localization Algorithm

We can now bring everything together. In section II-B1, we have already presented the basic theory to use the time when we received messages from other transmitters to determine relative position. The optical and electrical designs (section II-B2 and section II-B3) make MP3s as close to the theoretical model as possible. Finally, we can use the proposed communication system (section II-B4) to obtain the global position of neighboring MP3s. In this section, we present a simple way of using these relative distance and angle measurements and neighboring MP3s’ global position information to determine MP3’s global position. We execute localization in three steps to simplify the computation without sacrificing much accuracy:

  1. 1.

    Determine the angular velocity ω𝜔\omegaitalic_ω using the time when MP3 is facing different transmitters in the last and second last revolution ti,tisubscript𝑡𝑖subscriptsuperscript𝑡𝑖t_{i},t^{\prime}_{i}italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, where i=1,2,,N𝑖12𝑁i=1,2,\dots,Nitalic_i = 1 , 2 , … , italic_N are the IDs of the transmitters being seen in both the last and second last revolution.

  2. 2.

    Determine the global horizontal position sX,sYsubscript𝑠𝑋subscript𝑠𝑌s_{X},s_{Y}italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT and the time txsubscript𝑡𝑥t_{x}italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT when MP3 is facing x^+superscript^𝑥\hat{x}^{+}over^ start_ARG italic_x end_ARG start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT direction using angular velocity of the drone ω𝜔\omegaitalic_ω, the global horizontal position of the transmitters (pi)XYsubscriptsubscript𝑝𝑖𝑋𝑌(\vec{p}_{i})_{XY}( over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_X italic_Y end_POSTSUBSCRIPT, the time when MP3 is facing these transmitters tisubscript𝑡𝑖t_{i}italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, and the measured relative horizontal distance risubscript𝑟𝑖r_{i}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT.

  3. 3.

    Determine the global vertical position sZsubscript𝑠𝑍s_{Z}italic_s start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT using the estimated global horizontal position sX,sYsubscript𝑠𝑋subscript𝑠𝑌s_{X},s_{Y}italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT, the global position of the transmitters pisubscript𝑝𝑖\vec{p}_{i}over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, and the measured relative elevation angle αisubscript𝛼𝑖\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT.

In the subsequent discussion, we make the following assumptions:

  1. a)

    MP3’s geometric axis is always vertical, and it spins along its geometric axis.

  2. b)

    MP3’s angular velocity ω𝜔\omegaitalic_ω changes slowly (i.e. is constant for a short period of time).

  3. c)

    MP3’s position changes slowly.

  4. d)

    All measurements, including the relative distance measurements risubscript𝑟𝑖r_{i}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, relative elevation angle measurements αisubscript𝛼𝑖\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, and the time when MP3 is facing other transmitters tisubscript𝑡𝑖t_{i}italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, have Gaussian error distributions and the errors are small.

The first assumption will introduce error into vertical position estimation as MP3s’ geometric axis and angular velocity axis will deviate slightly, but usually they are only off by a few degrees and we are willing to sacrifice the precision in vertical position for faster computation. The second and third assumptions are quite accurate as in experiments the angular velocity changes by <0.5% and the position usually changes by <5mm in one revolution. While the measured variables are not strictly Gaussian distributed, the fourth assumption is added for ease of explanation without compromising the core idea.

For the first step in the localization procedure, we have

ω=2πNi=1N(titi)𝜔2𝜋𝑁superscriptsubscript𝑖1𝑁subscript𝑡𝑖superscriptsubscript𝑡𝑖\omega=\frac{2\pi N}{\sum\limits_{i=1}^{N}(t_{i}-t_{i}^{\prime})}italic_ω = divide start_ARG 2 italic_π italic_N end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) end_ARG (7)

For the second step, we will determine the most likely tx,sX,sYsubscript𝑡𝑥subscript𝑠𝑋subscript𝑠𝑌t_{x},s_{X},s_{Y}italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT given pi,ri,tisubscript𝑝𝑖subscript𝑟𝑖subscript𝑡𝑖\vec{p}_{i},r_{i},t_{i}over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and their uncertainty estimates σri,σtsubscript𝜎subscript𝑟𝑖subscript𝜎𝑡\sigma_{r_{i}},\sigma_{t}italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT.

argmintx,sX,sYi=1N(ΔX2+ΔY2σri2+atan(ΔX,ΔY)ω(titx)ω2σt2)subscriptargminsubscript𝑡𝑥subscript𝑠𝑋subscript𝑠𝑌superscriptsubscript𝑖1𝑁superscriptsubscriptΔ𝑋2superscriptsubscriptΔ𝑌2superscriptsubscript𝜎subscript𝑟𝑖2atansubscriptΔ𝑋subscriptΔ𝑌𝜔subscript𝑡𝑖subscript𝑡𝑥superscript𝜔2superscriptsubscript𝜎𝑡2\mathop{\mathrm{argmin}}\limits_{t_{x},s_{X},s_{Y}}\sum\limits_{i=1}^{N}\left(% \frac{\Delta_{X}^{2}+\Delta_{Y}^{2}}{\sigma_{r_{i}}^{2}}\right.\left.+\frac{% \mathop{\mathrm{atan}}(\Delta_{X},\Delta_{Y})-\omega(t_{i}-t_{x})}{\omega^{2}% \sigma_{t}^{2}}\right)roman_argmin start_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT ( divide start_ARG roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + divide start_ARG roman_atan ( roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) - italic_ω ( italic_t start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) end_ARG start_ARG italic_ω start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ) (8)

where ΔX=(pi)XsX,ΔY=(pi)YsYformulae-sequencesubscriptΔ𝑋subscriptsubscript𝑝𝑖𝑋subscript𝑠𝑋subscriptΔ𝑌subscriptsubscript𝑝𝑖𝑌subscript𝑠𝑌\Delta_{X}=(\vec{p}_{i})_{X}-s_{X},\Delta_{Y}=(\vec{p}_{i})_{Y}-s_{Y}roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT = ( over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT - italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT = ( over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT - italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT. We can compute it on the microcontroller using gradient descent at a relative low cost. The covariance matrix Cov(sX,sY)Covsubscript𝑠𝑋subscript𝑠𝑌\mathop{\mathrm{Cov}}(s_{X},s_{Y})roman_Cov ( italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) of sX,sYsubscript𝑠𝑋subscript𝑠𝑌s_{X},s_{Y}italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT is given by

Cov(sX,sY)=f(sX,sY)Covsubscript𝑠𝑋subscript𝑠𝑌𝑓subscript𝑠𝑋subscript𝑠𝑌\mathop{\mathrm{Cov}}(s_{X},s_{Y})=\nabla\nabla f(s_{X},s_{Y})roman_Cov ( italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) = ∇ ∇ italic_f ( italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) (9)

where f𝑓fitalic_f is the summation in (8). We can also create a simple measure for the uncertainty of the position estimate as

σXY=Tr(Cov(sX,sY))/2=2f(sX,sY)/2subscript𝜎𝑋𝑌TrCovsubscript𝑠𝑋subscript𝑠𝑌2superscript2𝑓subscript𝑠𝑋subscript𝑠𝑌2\sigma_{XY}=\sqrt{\mathop{\mathrm{Tr}}(\mathop{\mathrm{Cov}}(s_{X},s_{Y}))/2}=% \sqrt{\nabla^{2}f(s_{X},s_{Y})/2}italic_σ start_POSTSUBSCRIPT italic_X italic_Y end_POSTSUBSCRIPT = square-root start_ARG roman_Tr ( roman_Cov ( italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) ) / 2 end_ARG = square-root start_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_f ( italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT ) / 2 end_ARG (10)

which is the root mean square (RMS) of uncertainty in X and Y direction. For simplicity of computation, in the third step we will consider sX,sYsubscript𝑠𝑋subscript𝑠𝑌s_{X},s_{Y}italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT as independent random variables that both have uncertainty of σXYsubscript𝜎𝑋𝑌\sigma_{XY}italic_σ start_POSTSUBSCRIPT italic_X italic_Y end_POSTSUBSCRIPT.

For the third step, we will determine the most likely sZsubscript𝑠𝑍s_{Z}italic_s start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT using pi,sX,sY,αisubscript𝑝𝑖subscript𝑠𝑋subscript𝑠𝑌subscript𝛼𝑖\vec{p}_{i},s_{X},s_{Y},\alpha_{i}over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT , italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and αisubscript𝛼𝑖\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT’s uncertainty σαisubscript𝜎subscript𝛼𝑖\sigma_{\alpha_{i}}italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT, but this time a analytical expression could be found:

sZ=i=0N1((pi)ZΔX2+ΔY2tanαi)δi2i=0N1δi2subscript𝑠𝑍superscriptsubscript𝑖0𝑁1subscriptsubscript𝑝𝑖𝑍superscriptsubscriptΔ𝑋2superscriptsubscriptΔ𝑌2subscript𝛼𝑖superscriptsubscript𝛿𝑖2superscriptsubscript𝑖0𝑁1superscriptsubscript𝛿𝑖2s_{Z}=\frac{\sum\limits_{i=0}^{N-1}((\vec{p}_{i})_{Z}-\sqrt{\Delta_{X}^{2}+% \Delta_{Y}^{2}}\tan\alpha_{i})\delta_{i}^{-2}}{\sum\limits_{i=0}^{N-1}\delta_{% i}^{-2}}italic_s start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT = divide start_ARG ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT ( ( over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT - square-root start_ARG roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG roman_tan italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT end_ARG (11)

where δisubscript𝛿𝑖\delta_{i}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the uncertainty of (pi)ZΔX2+ΔY2tanαisubscriptsubscript𝑝𝑖𝑍superscriptsubscriptΔ𝑋2superscriptsubscriptΔ𝑌2subscript𝛼𝑖(\vec{p}_{i})_{Z}-\sqrt{\Delta_{X}^{2}+\Delta_{Y}^{2}}\tan\alpha_{i}( over→ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT - square-root start_ARG roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG roman_tan italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT

δi2=(σXYtanαi)2+(ΔX2+ΔY2σαicos2αi)2superscriptsubscript𝛿𝑖2superscriptsubscript𝜎𝑋𝑌subscript𝛼𝑖2superscriptsuperscriptsubscriptΔ𝑋2superscriptsubscriptΔ𝑌2subscript𝜎subscript𝛼𝑖superscript2subscript𝛼𝑖2\delta_{i}^{2}=(\sigma_{XY}\tan\alpha_{i})^{2}+(\sqrt{\Delta_{X}^{2}+\Delta_{Y% }^{2}}\frac{\sigma_{\alpha_{i}}}{\cos^{2}\alpha_{i}})^{2}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = ( italic_σ start_POSTSUBSCRIPT italic_X italic_Y end_POSTSUBSCRIPT roman_tan italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( square-root start_ARG roman_Δ start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + roman_Δ start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG divide start_ARG italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT end_ARG start_ARG roman_cos start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (12)

Due to manufacturing error of apertures and the placement error of IR photodiodes, while the overall trend given by (1,2,4,5) is still valid, the exact value computed using these equations will have significant error. So instead of using these equations directly, we determine the equations for obtaining ri,αi,σri, and σαisubscript𝑟𝑖subscript𝛼𝑖subscript𝜎subscript𝑟𝑖 and subscript𝜎subscript𝛼𝑖r_{i},\alpha_{i},\sigma_{r_{i}},\text{ and }\sigma_{\alpha_{i}}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT , and italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT from raw timing tiL,tiM,tiRsubscript𝑡iLsubscript𝑡iMsubscript𝑡iRt_{\text{iL}},t_{\text{iM}},t_{\text{iR}}italic_t start_POSTSUBSCRIPT iL end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT iM end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT iR end_POSTSUBSCRIPT in a calibration experiment. In the experiment, we place a transmitter at different relative positions to a rotating MP3, record the timing data tiL,tiM,tiRsubscript𝑡iLsubscript𝑡iMsubscript𝑡iRt_{\text{iL}},t_{\text{iM}},t_{\text{iR}}italic_t start_POSTSUBSCRIPT iL end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT iM end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT iR end_POSTSUBSCRIPT, and find appropriate functions for ri,αi,σri,σαisubscript𝑟𝑖subscript𝛼𝑖subscript𝜎subscript𝑟𝑖subscript𝜎subscript𝛼𝑖r_{i},\alpha_{i},\sigma_{r_{i}},\sigma_{\alpha_{i}}italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_σ start_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_σ start_POSTSUBSCRIPT italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT that fits the data.

In experiments, we additionally applied an exponential filter with time constant of 0.06s to the obtained position sX,sY,sZsubscript𝑠𝑋subscript𝑠𝑌subscript𝑠𝑍{s_{X},s_{Y},s_{Z}}italic_s start_POSTSUBSCRIPT italic_X end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT italic_Z end_POSTSUBSCRIPT to reduce the noise of position estimates.

II-C The Mechanical System

The overall mechanical design of MP3 is similar to the original Maneuverable Piccolissimo described in [27], but with a few changes.

Refer to caption
Figure 9: A Photo of the launcher.

In MP3, we do not have the mechanism for changing the center of mass during launch like in [15], so we used a launcher (shown in Fig. 9) to spin up the drone at takeoff to achieve fast and repeatable launching. The gripper on the launcher seizes the MP3 during the motor’s spinning process. Once the MP3 reaches sufficient angular velocity and can maintain stability through the gyroscopic effect, the servo motor on the side of the launcher will hit a lever to release the key that secures the gripper. Subsequently, the pre-compressed spring will decompress and swiftly disengage the gripper in 5ms, launching MP3 into the air.

Several other changes include: a brushless motor instead of a brushed motor to improve longevity and battery life, carbon fiber-infused nylon for chassis to reduce weight and increase strength, and wings added to the side of MP3 to improve passive stability and reduce rotation rates.

II-D The Control Method

MP3’s control method is similar to the method employed in [15]. Specifically, MP3 generates two unique motor power commands per drone rotation to reconcile desired accelerations (both lateral and vertical). The average of the motor power commands determines the average vertical thrust and vertical acceleration. The difference in motor power commands and the switching time between commands determine the torque acting on MP3 which tilts the drone, resulting in horizontal acceleration. However, the drone does not have independent control of its tilt and position and does not have control over its yaw angle. In addition, because we are controlling MP3’s position using only thrust and tilt, the drone is not suitable for very agile and dynamic motions. Despite the limitations in dynamic motion, we believe its control should be sufficient for many swarm behaviors such as studying human-swarm interaction, 3D shape formation, and flocking. Note that MP3s are spinning too fast for most lightweight IMUs or gyroscopes to operate, so we use lateral acceleration to estimate the tilt.

Despite the overall similarity, a number of details in timing of motor commands, filtering of position, velocity, and acceleration, and the PID parameters have been changed to suit MP3’s particular case. Details can be found in the implementation repository [34].

III Drone Flight Experiments

We validated the proposed communication and sensing system in several series of experiments. In the experiments, we chose the beacons and MP3s’ position so they never block the communication of each other and can ensure three beacons or drones are always in sight of each MP3.

For each experiment, we collected the reference trajectory of the MP3s using two cameras, one over the apparatus and one on the side, and we also recorded the estimated trajectory of the MP3 which is computed on-board using only relative measurements and data communicated through our IR communication system. Data are recorded after MP3 is flying steadily, about 10~20s after launch.

Refer to caption
Figure 10: Setup for position holding experiments. Blue arrows mean the beacons can communicate with the MP3. Figure is not drawn to scale.

III-A Position Holding Experiment

In the position holding experiments, MP3 localizes itself by sensing three neighboring beacons. MP3 then tries to remain at a predefined set point at the center of the three beacons. The setup is shown in Fig. 10. We plot the reference trajectories of MP3 in all flights in Fig. 11. The trajectories indicate successful and stable position holding, since MP3 is staying within 30mm around the origin most of the time (in contrast, the radius of MP3 is 56mm). The root mean square error (RMSE) of the drone’s reference position is {17.6, 22.5, 12.7}mm in X, Y and Z direction respectively.

Refer to caption
Figure 11: Reference trajectories of MP3 in 6 position holding experiments. Lines of different colors represents trajectories of MP3 in different runs. The gray area’s size matches the size of MP3, and the red dots mark the target point.
Refer to caption
Figure 12: Distribution and spectrum of localization error of MP3 in position holding experiments. (a) shows the localization error’s distribution, and (b) shows the localization error’s spectrum.

A way to evaluate the precision of localization is to calculate the error between the robot-sensed trajectory and reference trajectory. Fig. 12(a) shows the distribution of the localization error in X, Y and Z direction, which resemble normal distribution with σ={2.4,2.0,3.6}𝜎2.42.03.6\sigma=\{2.4,2.0,3.6\}italic_σ = { 2.4 , 2.0 , 3.6 }mm respectively. This suggests that our sensing system and localization algorithm can achieve millimeter level accuracy. The distribution’s offset in X and Y direction may be due to inaccurate calibration of the camera over the entire flight arena or slight displacement of the beacons, and the offset in Z direction may also be caused by the MP3’s tilt.

Besides the localization error’s distribution, we are also interested in the spectrum of error, as the higher frequency components in error will be amplified more when we take derivatives to compute the velocity and acceleration. We split the obtained trajectory data into chunks of 5 seconds and resample them at 100Hz. We then compute the discrete Fourier transform (DFT) of the error samples and plot the RMS density of error signal at different frequencies in Fig. 12(b). The lower frequency (<2Hz) components are dominated by systematic error like the inaccurate placement of beacons or inaccuracy in the functions that converts time t1L,t1M,t1Rsubscript𝑡1𝐿subscript𝑡1𝑀subscript𝑡1𝑅t_{1L},t_{1M},t_{1R}italic_t start_POSTSUBSCRIPT 1 italic_L end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 italic_M end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 italic_R end_POSTSUBSCRIPT to distance and elevation angle. These sources are dependent on the position of the drone which is slowly changing. The higher frequency (>2Hz) components, however, mainly come from the discrete and random nature of timing measurements t1L,t1M,t1Rsubscript𝑡1𝐿subscript𝑡1𝑀subscript𝑡1𝑅t_{1L},t_{1M},t_{1R}italic_t start_POSTSUBSCRIPT 1 italic_L end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 italic_M end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 italic_R end_POSTSUBSCRIPT. Because the error of timing measurement is different and nearly independent in every relative distance measurement, the spectrum of the position error caused by this factor will spread to higher frequency range.

The high-frequency error component significantly effects the drone’s stability during hovering. When it is much higher, it will introduce a large error in velocity and acceleration estimates and saturate the PID controller, causing the drone to lose control.

Refer to caption
Figure 13: Setup for horizontal and vertical movement experiments. (a) shows the setup for the horizontal movement experiment, and (b) shows the setup for the vertical movement experiment. Blue arrows mean the beacons can communicate with the MP3, and green arrows show the target movement trajectory. Figure is not drawn to scale.

III-B Horizontal and Vertical Movement Experiment

In the movement experiments, instead of remaining at a position, MP3 moves between way points. The setup is shown in Fig. 13. MP3’s reference trajectory and its Y coordinate versus time in the 6 horizontal movement experiments are shown in Fig. 14. MP3’s reference trajectory and its Z coordinate versus time in the 6 vertical movement experiments are shown in Fig. 15. The experiments clearly show that MP3 is capable of controlled motion in 3D using the on-board communication and sensing system.

Refer to caption
Figure 14: Reference trajectories of MP3 in 6 horizontal movement experiments. (a) and (b) show the trajectory, and (c) shows the Y-T plot where the thick red line is the target trajectory.
Refer to caption
Figure 15: Reference trajectories of MP3 in 6 vertical movement experiments. (a) and (b) show the trajectory, and (c) shows the Z-T plot where the thick red line is the target trajectory.
Refer to caption
Figure 16: Setup for peer-to-peer communication and sensing experiments. Blue arrows mean the beacons can communicate with the MP3, and purple arrows means the MP3 can communicate with its peers. Figure is not drawn to scale.

III-C Peer-to-Peer Communication and Sensing Experiment

In this set of experiments, we demonstrate the capability of MP3 to do peer-to-peer communication and sensing. The setup is shown in Fig. 16. Unlike in previous experiments, MP3 #1 is actively transmitting its current sensed position to MP3 #2, acting like a beacon. In software, we made sure that MP3 #1 can only communicate with the first three beacons, and MP3 #2 can only communicate with the last two beacons and MP3 #1. MP3 #2 will record two sets of position estimates, one using both the information from the beacons and the relative measurements and position estimates of MP3 #1, and another using only the information from the beacons. The horizontal reference trajectory of MP3s in all 7 flights are shown in Fig. 17.

Refer to caption
Figure 17: Reference trajectories of MP3 #1 and MP3 #2 in 6 peer-to-peer communication and sensing experiments. The MP3 on the right and left are MP3 #1 and MP3 #2 respectively, and their respective trajectories in a single run are shown in the same color.
Refer to caption
Figure 18: Distribution and spectrum of localization error of MP3 #2 in peer-to-peer communication and localization experiments. (a) and (b) show the localization error’s distribution where MP3 #2 has used and not used peer-to-peer information for localization respectively. (c) compares the Y direction localization error’s spectrum in different scenarios. The purple dot dashed line in (c) shows the spectrum of Y localization error in position holding experiment (Fig. 12(b)), and the thicker lines in the background are the linear fits of high frequency components.

We are especially interested in the flight performance of MP3 #2 horizontally, which most directly shows the effect of the information provided by MP3 #1. The localization error’s distribution in X and Y direction with or without peer-to-peer information is shown in Fig. 18(a) and (b). While the peer-to-peer communication has little impact on the localization accuracy in Y direction, it reduces the RMS error of localization in X direction by approximately 50%. This result is consistent with the uncertainty given by (9).

We could also plot the spectrum of localization error in X direction in Fig. 18(c). It shows that the peer-to-peer communication and sensing with MP3 #1 helped to reduce the high frequency component by 6dB or 50%. This reduction in high frequency error is crucial for MP3 #2 to stay stable.

In fact, if there is no MP3 #1 and MP3 #2 is only localizing itself using two beacons, MP3 #2 will soon lose position stability due to the error in velocity and acceleration estimations.

IV Discussion

The MP3 prototype is designed to test the feasibility of the communication, sensing, localization, and flight control system. There are a few aspects that could improve the overall performance of MP3 and enable MP3 to form larger swarms.

One key improvement could be the flight time. Currently, the flight time of MP3 is approximately 3min and is limited by the operating voltage of the motor driver. However, the design of MP3 was not optimized for the flight time, and we anticipate that the flight time could be extended to 5-6min given small changes in motor driver and power circuit.

Another key improvement could be the communication system. Currently, we are using pulse position modulation and ALOHA multiple access for communication, which has low bandwidth, is less tolerant to error, and has congestion issues when more than two transmitters are trying to transmit information to the same receiver. These issues could be addressed using techniques like quadrature amplitude modulation (QAM) and frequency division multiple access (FDMA), though at a cost of hardware complexity. A simpler approach might be slotted ALOHA, which could relieve the congestion issue and approximately double the total bandwidth, but would require a time synchronization between MP3s.

Improvement could also be made to the localization and control system. We can create a more accurate sensing system by reducing ωσt𝜔subscript𝜎𝑡\omega\sigma_{t}italic_ω italic_σ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT. This can be accomplished by reducing the rotation speed of the drone or increasing the frequency of communication. In addition, we can improve the state estimation and control by having a better dynamic model of MP3 and higher resolution motor speed feedback..

We have also made some preliminary progress in enabling MP3 to actively sense the environment. Light transmitted by MP3 will be reflected by the objects in the environment, and then captured by the receivers on the same MP3. Objects reflecting the light are very similar to transmitters, and we can sense their relative position to the MP3 in the way similar to how we sense the relative position of other transmitters. In certain environments, it may be possible to achieve solo MP3 flights with just reflected light information.

V Conclusion

In this paper, we presented MP3, a minimalist, single propeller drone equipped with novel peer-to-peer communication and sensing mechanisms. We explained the hardware and software architecture of the drone, especially its communication and sensing system, and demonstrated its capability to localize itself by communicating with and sensing its relative bearing, distance, and elevation to neighboring MP3s. We also showed that MP3 is capable of flying stably alone as well as together with peers. Thanks to the single-motor design and the novel communication and sensing system, MP3 is about 50% lighter than the lightest drone known to the authors that has relative position sensing capabilities of similar accuracy [35]. Having these three key capabilities, MP3 is theoretically capable to execute a wide variety of swarm tasks like collaborative search or shape formation in a fully distributed manner.

Acknowledgments

Thanks to Marko Vejnovic for reviewing the program’s architecture and providing helpful feedback. This work was supported by The National Science Foundation, NRI2.0 grants 2024692 and 2024615.

References