We are excited to share that we are working on a new project to determine the best method to interface our 360° degree / 3D proximity sensor (IRCF360) to a Frsky XR8 receiver & a flight controller for supported & autonomous flight.
Any ideas from this community would be appreciated.
You can follow the progress of project here:
Very cool, and a great tutorial to understand how to decode an Sbus signal so thanks for sharing
I am curious about your 360 degree IR sensor, do you know what sort of range its capable of? But in terms of the project I think it will be interesting, especially for some indoor applications. Do you have any plans/idea of you you plan to interface with the flight controllers? Are you planning to send simple sbus stick commands to the autopilot to avoid a collision? So if the IR sensor detects something directly in-front it will send a stick command backwards to tell the quad to slow down? Not sure how well it will work in reality, but just my first thoughts. Integrating directly with the code might be better but since ardupilot is different to cleanflight I guess its quite alot more work. But still a very interesting project I will be keen to follow (I just dont have much spare time right now to help properly unfortunately, but will be more than happy to bounce ideas off)
Thanks for your interest in this project. Yes, at this time we are just thinking of indoor use on micro UAV’s, as the environment needs to be fairly predicable when using Infrared. The 360 degree IR sensor was developed originally for use in autonomous robot swarms, where close range sensing is more important (200-300mm diameter). however the range can be adjusted by changing the frequency of the IR pulse on the LED’s (sensor response peaks around 38KHz) and also using more powerful IR LED’s. The range can then be extended to a diameter of around 1 meter. This adds some other complications - but this is what we are testing now.
Some modifications to the 360 degree sensor are required for even longer ranges. However, based on the result of this PoC, we are designing a new longer range version using ultrasonic and infrared. The current 360 degree sensor also does simple IR data communications, which is used for inter-robot communication e.g. when a food source is found or to identify whether a ‘friend or foe’ is approaching; which may also be interesting when building micro autonomous UAV swarms.
Regarding interfacing to flight controllers; there are few ways we are looking to do this. One of them is exactly as you describe, - by sending modified S.BUS stick commands in the opposite direction. This of course requires quite some configuration / tuning to get the desired response. We are thinking of using spare channels connected to the sliders for “trimming” the response, so it’s then easier to adjust real-time during flight. The values can then be recorded, so the Arduino sketch can be updated accordingly. An overview of the concepts, ideas and discussions are available on our website → _http://www.robotmaker.eu/ROBOTmaker/quadcopter-3d-proximity-sensing_.
The other approach is as you also mention; a direct serial communication from the flight controller to the serial port on the 360 degree IR sensor. The data transmitted from the 360 degree sensor is just a simple 8 byte package of proximity data (N,NE,E,SE,S,SW,W,NW) @ 9600 baud - similar to a GPS. This however seems more daunting, as you say, as there are many flight controllers that would need modification. Who knows which one would be easiest to include in our PoC?
We’d welcome any suggestions and support in this direction with the PoC . We are just a small team of enthusiasts; so please feel free to contribute in any way.