I'm relatively new to drones, so bear with me, but I think I know enough to make this an intelligent request for assistance.
I'm trying to determine the best setup for a rather unusual task. I need a multi-rotor that can fly indoors or outdoors. It needs to be autonomous in both indoors and outdoors. This is tricky because there is no GPS signal indoors, but instead we have a Vicon motion capture system that is extremely precise. It gives a position and orientation output.
So, I need a setup that can do the following:
- fly outside autonomously with waypoints sent from a ground control computer via MAVlink or some other API
- fly inside and receive roll-pitch-yaw-throttle commands (i.e. the same commands sent from a remote control) over MAVlink from a ground computer (which receives position/orientation data from the Vicon system and runs its own closed-loop controller and then sends the RPYT commands over MAVlink)
- alternatively, perhaps there's a way to wirelessly send the position data from the Vicon ground computer to a receiver on the multi-rotor, which would then feed the position into the PixHawk in much the same way as the GPS/IMU would? This would be nice because then it would use the same flight controller and I wouldn't have to build a second one on the ground station.
- stream HD video over a downlink to the same ground control computer, which would access the video frames from some sort of (preferably C++) API, run image recognition algorithms on the video frames, and use that data to determine new waypoints
With that in mind, here's my current idea for a setup:
- DJI S1000+ frame
- PixHawk controller
- 3DR GPS/IMU
- 3DR radio for MAVlink communication
- Linux ground control computer
- control software on ground computer written in C++ for ROS (Robot Operating System)
- Roscopter ROS package for integration with MAVLink
- Vicon_Bridge ROS package for integration with Vicon system
- custom path (waypoint) planning software
- Amimon Connex for video downlink
- ground computer has NVIDIA Quadro card with HDMI input/capture capability
- Amimon Connex outputs into ground computer, ground computer runs image recognition on video frames, feeds into custom waypoint planning software
In both indoor/outdoor modes, the video downlink would feed into the planning software to determine waypoints. In indoor mode, the ground computer would receive positions from the Vicon system and use that combined with the predetermined waypoint to send roll/pitch/yaw/throttle commands over MAVLink (via Roscopter ROS package) to the PixHawk controller. In outdoor mode, the waypoint would be send directly to the PixHawk controller which would reach that waypoint autonomously.
I would also like to consider the possibility of making this simulation-compatible as well, but I'm not sure what simulation software would work with both the indoor/outdoor modes and would simulate video downlink as well.
I've been reading a bit about the Dronecode project, and in their flow chart it shows that ROS can be run on-board the vehicle. Maybe that would be a good way to integrate the indoor/outdoor modes? If there was a way to transmit the Vicon positions via ROS to the on-board ROS node, then the control algorithm could all be done onboard instead of closing the loop in the ground computer.
In any case, there's just a lot of stuff to consider and I want to make sure I've selected the best setup before purchasing this expensive equipment. Any advice/input on how to simplify this would be highly appreciated. Thanks!
Not sure if you have received any responses to this post, but if not, it is possible to send the Vicon data directly over Wifi using a simple UDP based streaming protocol that is new to Tracker 3.0. These UDP packets just contain the position and orientation of the object(s) being tracked.
The benefit of using this new protocol as opposed to the old one is that, since it's simple & UDP based, it can be implemented within any target platform that can receive UDP - whereas our more complete DataStream SDK was based on TCP.
The downside of course is that it's a connectionless broadcast and there is a danger that packets will get lost. But then that's not much different to GPS.
This new streaming protocol was designed to allow Simulink to directly access the Vicon data, but it works very well for streaming data directly to embedded platforms also.
Hope that helps.
Not sure how you are going, but we have Lightbridge and Connex. Don't go Connex, the support is non-existent. You have to fill out a form to get the configuration software and it never arrived. You then contact support and they just tell you to configure using the configuration software and send you a dropbox link that is non-existent.