We've recently started another Proof-of-Concept (PoC) to determine how best our IRCF360 sensor could be used as a 360 proximity sensor on a micro UAV / Drone / quadcopter for autonomous flight (such as through a 3D mazes ) or even pilot assisted flight modes; for example when flying in confined areas where the ceiling, walls and ground needs to be continuously monitored to avoid collisions.
Some robot controllers (e.g. Naze32) have the option of being able to connect an ultrasonic sensor, to assist with low-level flying at high speeds. We believe this concept could be extended even further to achieved a 360 degree proximity sensing in the X, and z axis to form a proximity sensing bubble; using a couple of modified IRCF360 sensors.
There are few ways we thought we could do this:
1. Parse the S.BUS signal that's sent from the FrySky receiver to a flight controller with modified control data from the IRCF360. So when an obstacle is detected within a 360 degree sphere (such as a wall, ceiling, ground) the IRCF360 modifies the S.BUS signal in the opposite direction.
2.Develop 2x serial interfaces on the Arduino; where one is connected to the IRCF360 and the other is connected to the flight controller. This means that when proximity data is received from the IRCF360 sensor, it is parsed by the Arduino and sent to the flight controller (such as the Naze32) as modified and corrected data.
3. Send Telemetry data back to the transmitter as audible warnings to the pilot. This is of course then up to the pilot to take action on the information received.
Here is a short video explaining the proof-of-concept in more detail.
For this PoC, we decided to start investigating the S.BUS option first. This was mainly because also due to being generally interested to understand the details of the S.BUS, so we could build other devices that could be controlled by directly from the radio such as a PICmicro and Arduino buzzers, leds, Cameras and Gimbals.
For this project we thought we'd use a small Arduino; such as a Micro, Nano or similar. To help us understand the S.BUS protocol, we wanted to created a real-time graphical representation of the 16 channel S-BUS protocol, so we could really visualize what's going on in the background.
We used the processsing.org java sketch which is an open source programming language based on Java to help the electronic arts and visual design communities and is also based on wiring as the Arduino IDE.
See this webpage for further details of the processing sketch and how we did this. See also also this YouTube video.
The porting of the processing.org sketch was relatively straight forward. There were some challenges due to the differences on how the serial port works in Arduino compared to processing.org.
See the following webpage for further details of this processing.org java sketch
The results of the project are being documented in this sections.as we go along See the breadcrumbs navigation at the top and bottom of these pages to navigate to other pages and topics:
As our current version of the 360° degree sensors have been designed for close-proximity, indoor robotics i.e. robot swarms; where the environment can be controlled and where the proximity range has been specially tailored for short range sensing and inter-robot communication - The starting point of the PoC will therefore be for experimental & in-door use.
Who knows what we'll discover on this journey. We welcome contributors to support development in this project and also to start new branches if they like.
Proximity avoidance challenges:
Some of the following challenges will be used to test the degree of success of use in autonomous flight:
This is of course dependent upon the number of interested volunteers and time available; but we hope to have some results by end-Q4 2016 with the current team.
For the 2nd approach we are reviewing various Ground Control System (GCS) that could be reused or modified for our project. This seems more challenging in the long run. The main criteria is that they are open source and supported by an active user group - such as the -> following
Blog: Please add your comments to the blog: