[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] Appointment
From: |
Pascal Brisset |
Subject: |
Re: [Paparazzi-devel] Appointment |
Date: |
Thu, 14 Feb 2008 11:26:37 +0100 |
User-agent: |
Icedove 1.5.0.14pre (X11/20080208) |
Hi,
Marcus Wolschon wrote:
So the aircraft is computing a circle to fly to arrive
at a given timestamp at a given location and altitude?
And a given course (here towards waypoint 2) :
First set a default timestamp, here 200s from now (GPS time of week in
seconds is used, there is an issue concerning week change):
<set var="snav_desired_tow" value="gps_itow / 1000. + 200."/>
Computes the trajectory to go to waypoint 1, with a course towards 2,
with a given circle radius:
<call fun="snav_init(WP_1,
M_PI_2-atan2(WaypointY(WP_2)-WaypointY(WP_1),WaypointX(WP_2)-WaypointX(WP_1)),
DEFAULT_CIRCLE_RADIUS/2.)"/>
Navigate to the waypoint 1:
<call fun="snav_circle1()"/>
<call fun="snav_route()"/>
<call fun="snav_circle2()"/>
Circle next to the waypoint until timestamp is reached:
<call fun="snav_on_time(DEFAULT_CIRCLE_RADIUS)"/>
Go to waypoint 2:
<go from="1" hmode="route" wp="2"/>
What does the code do, if there is no solution?
In this example, the waypoint 1 is always reached, not taking into
account the time, using a shortest path with the given circle radius
(Gautier, could you give the reference for this trajectory ?)
snav_on_time() does the regulation and exits as soon as the timestamp
is reached, so immediately if the airplane arrives too late on waypoint 1.
This code is a first try to take into account time in navigation. I
hope contributors will propose a smarter solution !
Note that we did not measure the required CPU time :-(
--Pascal