LibrePilot Forum

Users => Applications - Autonomous Flight => Topic started by: gon on May 26, 2017, 01:06:11 pm

Title: Waypoints UAVO
Post by: gon on May 26, 2017, 01:06:11 pm
Hi!

I'm writing a computer program which will be sending commands to my quad like: go to a position, land, take off, and roll.

I want it to only upload one waypoint at a time. And I have several doubts (There's not much documentation about this...):

1- Which UAVO should I send to upload a waypoint? I've seen the "PathAction" (which isn't single instance) and I guess it's this one, but it doesn't have any attribute for lat/lng/alt nor velocity, etc. It just has flight mode and conditions. How should I upload a waypoint then?

2- I want the drone to go to an EndPoint, wait there in position hold until my program detects it has arrived, and then remove the PathPlan and upload a new waypoint and so on. How can I achieve the position hold? Is it the "FixedAttitude" mode? So each time I upload a waypoint, I add a second one for just position hold. (If I only have one, maybe my program will read the "fractional_progress" a bit late and then the drone will repeat the pathplan). (I don't want it to repeat the pathplan)

3- I've already tried the pathplanner before from the GCS map and the "GoToEndpoint" works quite well. But in the flight modes, there are "land" and "autotakeoff" modes which I haven't been able to use properly. What happens if I put a "land" waypoint in a position? Will the drone go to that position and then land? Or will just ignore that fields and land in its actual position? What effect will have "Altitude" to these modes? How am I supposed to use them?

4- I don't understand entirely how the fields from the GCS waypoint editor work:
    4.1- What happens when I put the RelativeToHome to true? I guess that the altitude will be relative to the homeposition altitude, but what about the position? Will it be relative to home? If so, will be interpreted as in meters displacement?
    4.2- For what is the Bearing field? The 0 value will point the drone to north or to the waypoint direction? Does it actually work?
    4.3- Am I supposed to fill a "Distance" field like the waypoint editor one when I send the UAVO to the drone? It wouldn't make sense, so for what is that field? What happens If I change it?

5- How can I roll the drone? I would like to change its orientation so I say: look at 50ยบ from north and it maintains that orientation all the flight. (I suppose I will have to achieve this using another thing, not inside the pathplan, won't I?)

I'm sorry, there are a lot of questions but I'm a bit confused right now.

I would thank any indications! Thanks!
Title: Re: Waypoints UAVO
Post by: TheOtherCliff on May 27, 2017, 04:30:24 pm
Much of what you ask I would have to research to give a definitive answer to.

There is/was a thing called magic waypoint (right click on the map to get to it?) that does a lot of what you want.  I hear that it would fly the quad to where ever you clicked on the map.

There is a setting for yaw control in System->Settings->VtolPathFollowerSettings that specifies where the quad points as it flies autonomously.  One option is manual where you control the yaw.  If you want something automated, you may be able to figure out POI.  One simple code change might be to make all the non-manual yaw control options add in the yaw stick position so that you could get 30 degrees left from the current course by holding some left yaw in some mode.
Title: Re: Waypoints UAVO
Post by: gon on May 28, 2017, 02:20:01 am
Okay thanks! I'll take a look.

And could you explain me how do you "link" a waypoint with a "pathaction"? I believe that you create "n" waypoints and "m" path actions, and somehow you say that the pathaction "i" refers to waypoint "j". Is it right? If so, in which field of the pathaction UAVO you define this?

Thanks!
Title: Re: Waypoints UAVO
Post by: TheOtherCliff on May 28, 2017, 05:40:54 am
Sorry, I have flown waypoint, but I haven't studied the code closely enough to comment.

There are multiple waypoints, and they get loaded individually into PathDesired.