I am intending to develop a project using NAVIO2 and RPI3 and need help for guidance and support or idea for this task.
The features of this project are as follows:
- (1) Avoidance system using 4 x HC-SR04 sensors (front, back and sides).
- (2) Avoidance system through the use of RPI3 cameras, in the case of two cameras.
- (3) Ground Station where it is possible to monitor the collision sensor data.
- (4) During the flight it is possible to stop the copter and set up an action through the ground station and Gimbal make this task, like a mechanical arm.
My questions in this case are as follows:
- Only one NAVIO2 + RPI3 has enough ports to perform these tasks?
- Is it necessary to add another RPI3 or Arduino?
- What about the possibility of using two cameras at the same time the ports of the RPI + 3 + NAVIO2 are sufficient and this is possible?
- On the development language for this solution what would be the best?
- Is it possible to use another type of development interface for Navio2 as used in RPI3 where it is possible to program without using the command terminal?
- Regarding ground station what kind of solution can I use or what language can I develop?
- Is it possible besides the stabilization of Gimbal to execute specific actions that are sent by the ground station?
Thanks if anyone can help me.
Since no one else answered by now, I will answer the points I know about.
HC-SR04 are cheap, but not very comfortable to work with. They need 4 pins (3 pins with arduinos newping library). If you are using a Navio board, there are only 2 GPIOs accessible by default. You would need 8+power+ground. If I remeber correctly, the HC-SR04 uses 5V logic, so you can not connect them directly to RPis GPIOs anyway. You would need to use some sort of microcontroller as a point where the sensors connect to and then transfer the data to the RPi via USB/UART/I2C.
You can only connect one camera to the RPi. There is a multiplexer board to connect up to 8 cameras (two boards stacked), but it is using the GPIO header, which is blocked by the Navio. Even if it was possible to connect them, I doubt a single RPi has enough processing power to do object recognition for two cameras and run the flightstack. So you would have to use a second RPi for that.
For the rest of your questions, it is not clear if you intend to use APM/PX4 with the associated groundstations, or if you want to develop everything on your own.
Ardupilot has a wide range of possible actions the copter can perform during a programmed mission, like release payloads, move/point a gimbal etc.
If you want to add to those features, you could use ROS or dronecode:
Good luck with your project,
I am almost positive there is no way your going to be running a dual camera computer vision tasks on an RPi handling critical flight task. I would highly recommend not running this on a RPi regardless if you have the money take a look at the tegra (TX1 I think it was) its not cheap but what your looking to do with the cameras is not a simple task either. I recommend OpenCV btw.
Also frankly looking to cameras for avoidance systems is a waste. Their generally unreliable (compared to other options), limited (greatly affected by light and weather), require too much processing and therefor battery.
Sonar such as what your looking at is probably the most practical/ideal option for cheap, although realize they are limited and affected by noise. Honestly, this much cheaper option is more practical and likely more effective than the camera option. Think about it Tesla doesn’t use cameras for avoidance, really no one does. The few systems using cameras generally use them to track things such as the white lines to stay in a lane, they are not trying to create depth maps and other such less reliable methods.
The best option is definitely lidar. You 360 degree rotating ones or build your own mount, they are generally weather resistant and better at handling poor weather and dont care wether its light or dark, inside or outside (the good ones are less affected by light). Also they offer ranges from 25m to 100m much greater than a camera with higher accuracy, speed, reliability, and much less processing or battery consumption. Some can even be used for speed measurements (though I’m not sure the 360 rotating ones can). Something like the sw20 would be amazing, though definitely expensive! Then again, same price as a TX1 ($300 education discount, without almost needed expansion board) and better than the camera solution in your case a sw20 on a custom motor for 360 rotation would work wonders, check diydrones for custom lidar solutions. Also this option is expandable you could use the same setup for accurate mapping at no extra charge.
I hope my answer is not too discouraging, just trying to bring you down to reality. It would stink to invest a lot of time into a system that would give nowhere near the results you are searching for.