So I am part of a research group that is trying to make drone AI that will avoid objects, search for objects, and etc. In the beginning of the semester we did some researching to find an api to interface with the drones and we stumbled across python-dronekit. We were using mission planner before but it was giving us troubles and it felt like we were using it in a way that it wasn't intended for but I now feel that we are using dronekit in the same way. We are using 3DR drones and we need complete control over the throttle, yaw, pitch, etc but the only way to access those is through overrides but the documentation tells us to not use those pretty much ever. So I guess what I am trying to ask is that we are wondering if we are using dronekit the way it was intended for or is there some other tool that we should be using. If we should be using a different tool is there some direction you could point us to?
Hi Ryan. It is true that using RC overrides is not recommended in favour of higher level commands. It really depends exactly how you are trying to control the UAV. If you have GPS you can use GUIDED mode which allows you to either use Position Control or Velocity Control. Velocity control would be suitable during object avoidance. But these depend on having a valid GPS fix for positioning the UAV.
See here for more information: http://python.dronekit.io/guide/copter/guided_mode.html
You mentioned you want complete control over throttle and RPY, so maybe this isn't suitable. Although the Velocity controller is pretty close. Can you explain abit more about what you are doing?
Another option is using PX4 stack and offboard control through Mavros ( a ROS node). This allows using MAVLINK_MSG_ID_SET_ATTITUDE_TARGET and MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED messages to control the attitude and position of the UAV.
These commands are in AC master but not any of the releases yet so I don't know the state of them.
Hi Glen. Thank you for the response! You did give us some ideas to try out which we will do hopefully soon. To explain a bit more, we are in an academic setting trying to make an AI for the drone that doesn't necessarily use GPS to navigate but instead uses sensors to detect objects and find objects to retrieve. We are basically trying to make a drone self-sufficient in respect to flying without colliding with objects.
Is the AI Drone you build is open source,if so can you please share