paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [4588]


From: antoine drouin
Subject: [paparazzi-commits] [4588]
Date: Wed, 24 Feb 2010 16:05:23 +0000

Revision: 4588
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4588
Author:   poine
Date:     2010-02-24 16:05:23 +0000 (Wed, 24 Feb 2010)
Log Message:
-----------


Modified Paths:
--------------
    paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_diff_flatness.sci
    paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_sbb.sci
    paparazzi3/trunk/sw/simulator/scilab/q6d/test_stop_stop.sce

Added Paths:
-----------
    paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_fo_traj_misc.sci

Modified: paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_diff_flatness.sci
===================================================================
--- paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_diff_flatness.sci      
2010-02-24 14:41:22 UTC (rev 4587)
+++ paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_diff_flatness.sci      
2010-02-24 16:05:23 UTC (rev 4588)
@@ -1,3 +1,9 @@
+DF_FO_X   = 1;
+DF_FO_Y   = 2;
+DF_FO_Z   = 3;
+DF_FO_PSI = 4;
+DF_FO_SIZE = 4;
+DF_FO_ORDER = 5;
 
 DF_REF_X      = 1;
 DF_REF_Y      = 2;
@@ -25,15 +31,15 @@
 function [state] = df_state_of_fo(fo)
 
   state = zeros(DF_REF_SIZE, 1);
-  state(DF_REF_X)      = fo(1,1);
-  state(DF_REF_Y)      = fo(2,1);
-  state(DF_REF_Z)      = fo(3,1);
+  state(DF_REF_X)      = fo(DF_FO_X,1);
+  state(DF_REF_Y)      = fo(DF_FO_Y,1);
+  state(DF_REF_Z)      = fo(DF_FO_Z,1);
 
-  state(DF_REF_XD)     = fo(1,2);
-  state(DF_REF_YD)     = fo(2,2);
-  state(DF_REF_ZD)     = fo(3,2);
+  state(DF_REF_XD)     = fo(DF_FO_X,2);
+  state(DF_REF_YD)     = fo(DF_FO_Y,2);
+  state(DF_REF_ZD)     = fo(DF_FO_Z,2);
 
-  state(DF_REF_PSI)    = fo(4,1);
+  state(DF_REF_PSI)    = fo(DF_FO_PSI,1);
   
   psi = state(DF_REF_PSI);
   cpsi = cos(psi);

Added: paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_fo_traj_misc.sci
===================================================================
--- paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_fo_traj_misc.sci               
                (rev 0)
+++ paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_fo_traj_misc.sci       
2010-02-24 16:05:23 UTC (rev 4588)
@@ -0,0 +1,31 @@
+
+
+function [fo_traj] = fo_traj_circle(time)
+
+  fo_traj = zeros(DF_FO_SIZE, DF_FO_ORDER, length(time));
+
+  radius = 3;
+  omega = rad_of_deg(60);
+  c = [0 0]';
+  
+  for i=1:length(time)
+
+    fo_traj(DF_FO_X,1,i) = c(1) + radius*cos(omega*time(i));
+    fo_traj(DF_FO_Y,1,i) = c(2) + radius*sin(omega*time(i));
+
+    fo_traj(DF_FO_X,2,i) = c(1) - omega*radius*sin(omega*time(i));
+    fo_traj(DF_FO_Y,2,i) = c(2) + omega*radius*cos(omega*time(i));
+  
+    fo_traj(DF_FO_X,3,i) = c(1) - omega^2*radius*cos(omega*time(i));
+    fo_traj(DF_FO_Y,3,i) = c(2) - omega^2*radius*sin(omega*time(i));
+    
+    fo_traj(DF_FO_X,4,i) = c(1) + omega^3*radius*sin(omega*time(i));
+    fo_traj(DF_FO_Y,4,i) = c(2) - omega^3*radius*cos(omega*time(i));
+    
+    fo_traj(DF_FO_X,5,i) = c(1) + omega^4*radius*cos(omega*time(i));
+    fo_traj(DF_FO_Y,5,i) = c(2) + omega^4*radius*sin(omega*time(i));
+  
+  end
+    
+endfunction
+

Modified: paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_sbb.sci
===================================================================
--- paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_sbb.sci        2010-02-24 
14:41:22 UTC (rev 4587)
+++ paparazzi3/trunk/sw/simulator/scilab/q6d/q6d_sbb.sci        2010-02-24 
16:05:23 UTC (rev 4588)
@@ -4,6 +4,8 @@
 //
 //
 
+
+
 SBB_TOLERANCE = 0.025;
 
 function [pulse_dt, pulse_ampl, traj_dt] = compute_step(dist, dyn, max_accel, 
max_speed)
@@ -36,16 +38,14 @@
 
 function [fo_traj] = sbb_gen_traj(time, dyn, max_speed, max_accel, b0, b1)
 
-  n_comp = 4;  // x, y, z, psi
-  order = 5;   
-  fo_traj = zeros(n_comp, order, length(time));
+  fo_traj = zeros(DF_FO_SIZE, DF_FO_ORDER, length(time));
 
   // psi
   omega = rad_of_deg(45);
   for i=1:length(time)
-    fo_traj(4,1,i) = sin(omega*time(i));
-    fo_traj(4,2,i) = omega*cos(omega*time(i));
-    fo_traj(4,3,i) = -omega^2*sin(omega*time(i));
+    fo_traj(DF_FO_PSI, 1, i) =          sin(omega*time(i));
+    fo_traj(DF_FO_PSI, 2, i) =  omega*  cos(omega*time(i));
+    fo_traj(DF_FO_PSI, 3, i) = -omega^2*sin(omega*time(i));
   end
   
   // x and y

Modified: paparazzi3/trunk/sw/simulator/scilab/q6d/test_stop_stop.sce
===================================================================
--- paparazzi3/trunk/sw/simulator/scilab/q6d/test_stop_stop.sce 2010-02-24 
14:41:22 UTC (rev 4587)
+++ paparazzi3/trunk/sw/simulator/scilab/q6d/test_stop_stop.sce 2010-02-24 
16:05:23 UTC (rev 4588)
@@ -1,6 +1,7 @@
 clear();
 
 exec('q6d_sbb.sci');
+exec('q6d_fo_traj_misc.sci');
 exec('q6d_diff_flatness.sci');
 exec('q6d_fdm.sci');
 exec('q6d_algebra.sci');
@@ -19,9 +20,9 @@
 //b1 = [-10   1  -2];
 b0 = [ 0   0   0 ];
 b1 = [ 1  -1  -1 ];
-[fo_traj] = sbb_gen_traj(time, dyn, max_speed, max_accel, b0, b1);
+//[fo_traj] = sbb_gen_traj(time, dyn, max_speed, max_accel, b0, b1);
+[fo_traj] = fo_traj_circle(time);
 
-
 set("current_figure",0);
 clf();
 display_fo_traj(time, fo_traj);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]