paparazzi-commits
[Top][All Lists]
Advanced

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

[paparazzi-commits] [5661] more toward modular vi


From: antoine drouin
Subject: [paparazzi-commits] [5661] more toward modular vi
Date: Tue, 24 Aug 2010 16:47:57 +0000

Revision: 5661
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5661
Author:   poine
Date:     2010-08-24 16:47:56 +0000 (Tue, 24 Aug 2010)
Log Message:
-----------
more toward modular vi

Modified Paths:
--------------
    paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml
    paparazzi3/trunk/sw/airborne/booz/booz2_navigation.c
    paparazzi3/trunk/sw/airborne/booz/booz2_navigation.h
    paparazzi3/trunk/sw/airborne/booz/guidance/booz2_guidance_h.c
    
paparazzi3/trunk/sw/airborne/booz/stabilization/booz_stabilization_attitude_ref_int.h
    paparazzi3/trunk/sw/airborne/math/pprz_algebra_int.h
    paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi.h
    paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.c
    paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.h

Modified: paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml
===================================================================
--- paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml  2010-08-24 16:33:19 UTC 
(rev 5660)
+++ paparazzi3/trunk/conf/airframes/Poine/booz2_a7.xml  2010-08-24 16:47:56 UTC 
(rev 5661)
@@ -162,6 +162,9 @@
    <define name="BOOZ2_FACE_REINJ_1"  value="1024"/>
  </section>
 
+ <modules main_freq="512">
+   <load name="vehicle_interface_datalink.xml"/>
+ </modules>
  
   <firmware name="rotorcraft">
     <target name="ap" board="lisa_l_1.0"/>

Modified: paparazzi3/trunk/sw/airborne/booz/booz2_navigation.c
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/booz2_navigation.c        2010-08-24 
16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/booz/booz2_navigation.c        2010-08-24 
16:47:56 UTC (rev 5661)
@@ -315,18 +315,23 @@
 }
 
 void navigation_update_wp_from_speed(uint8_t wp, struct Int16Vect3 speed_sp, 
int16_t heading_rate_sp ) {
-  MY_ASSERT(_wp < nb_waypoint);
+  MY_ASSERT(wp < nb_waypoint);
   int32_t s_heading, c_heading;
   PPRZ_ITRIG_SIN(s_heading, nav_heading);
   PPRZ_ITRIG_COS(c_heading, nav_heading);
+  // FIXME : scale POS to SPEED
   struct Int32Vect3 delta_pos;
-  VECT3_SDIV(delta_pos, speed_sp,BOOZ2_NAV_FREQ); /* fixme :make sure the 
division is really a >> */ 
-  waypoints[_wp].x += (s_heading * delta_pos.x + c_heading * delta_pos.y) >> 
INT32_TRIG_FRAC;
-  waypoints[_wp].y += (c_heading * delta_pos.x - s_heading * delta_pos.y) >> 
INT32_TRIG_FRAC;
-  waypoints[_wp].z += delta_pos.z;
-  nav_heading += heading_rate_sp / BOOZ2_NAV_FREQ;
+  VECT3_SDIV(delta_pos, speed_sp,BOOZ2_NAV_FREQ); /* fixme :make sure the 
division is really a >> */
+  INT32_VECT3_RSHIFT(delta_pos, delta_pos, (INT32_SPEED_FRAC-INT32_POS_FRAC));
+  waypoints[wp].x += (s_heading * delta_pos.x + c_heading * delta_pos.y) >> 
INT32_TRIG_FRAC;
+  waypoints[wp].y += (c_heading * delta_pos.x - s_heading * delta_pos.y) >> 
INT32_TRIG_FRAC;
+  waypoints[wp].z += delta_pos.z;
+  int32_t delta_heading = heading_rate_sp / BOOZ2_NAV_FREQ;
+  delta_heading = delta_heading >> (INT32_SPEED_FRAC-INT32_POS_FRAC);
+  nav_heading += delta_heading;
+  
   INT32_COURSE_NORMALIZE(nav_heading);
-  RunOnceEvery(10,DOWNLINK_SEND_WP_MOVED_ENU(DefaultChannel, &_wp, 
&(waypoints[_wp].x), &(waypoints[_wp].y), &(waypoints[_wp].z)));
+  RunOnceEvery(10,DOWNLINK_SEND_WP_MOVED_ENU(DefaultChannel, &wp, 
&(waypoints[wp].x), &(waypoints[wp].y), &(waypoints[wp].z)));
 }
 
 bool_t nav_detect_ground(void) {

Modified: paparazzi3/trunk/sw/airborne/booz/booz2_navigation.h
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/booz2_navigation.h        2010-08-24 
16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/booz/booz2_navigation.h        2010-08-24 
16:47:56 UTC (rev 5661)
@@ -29,7 +29,8 @@
 #include "math/pprz_geodetic_float.h"
 
 #define BOOZ2_NAV_FREQ 16
-#define BOOZ2_NAV_PRESCALER (PERIODIC_FREQ/BOOZ2_NAV_FREQ)
+// FIXME use periodic FREQ   
+#define BOOZ2_NAV_PRESCALER (512/BOOZ2_NAV_FREQ)
 
 extern struct EnuCoor_i booz2_navigation_target;
 extern struct EnuCoor_i booz2_navigation_carrot;

Modified: paparazzi3/trunk/sw/airborne/booz/guidance/booz2_guidance_h.c
===================================================================
--- paparazzi3/trunk/sw/airborne/booz/guidance/booz2_guidance_h.c       
2010-08-24 16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/booz/guidance/booz2_guidance_h.c       
2010-08-24 16:47:56 UTC (rev 5661)
@@ -132,6 +132,7 @@
 
 }
 
+
 void booz2_guidance_h_read_rc(bool_t  in_flight) {
 
   switch ( booz2_guidance_h_mode ) {
@@ -142,17 +143,9 @@
 
   case BOOZ2_GUIDANCE_H_MODE_ATTITUDE:
     booz_stabilization_attitude_read_rc(in_flight);
-#ifdef USE_FMS
-    if (fms.enabled && fms.input.h_mode == BOOZ2_GUIDANCE_H_MODE_ATTITUDE)
-      BOOZ_STABILIZATION_ATTITUDE_ADD_SP(fms.input.h_sp.attitude);
-#endif
     break;
 
   case BOOZ2_GUIDANCE_H_MODE_HOVER:
-#ifdef USE_FMS
-    if (fms.enabled && fms.input.h_mode >= BOOZ2_GUIDANCE_H_MODE_HOVER)
-      
BOOZ2_FMS_SET_POS_SP(booz2_guidance_h_pos_sp,booz_stabilization_att_sp.psi);
-#endif
     BOOZ_STABILIZATION_ATTITUDE_READ_RC(booz2_guidance_h_rc_sp, in_flight);
     break;
 
@@ -168,7 +161,7 @@
   default:
     break;
   }
-
+  
 }
 
 
@@ -383,9 +376,6 @@
 
   INT_VECT2_ZERO(booz2_guidance_h_pos_err_sum);
 
-#ifdef USE_FMS
-  BOOZ2_FMS_POS_INIT(booz2_guidance_h_pos_sp,booz2_guidance_h_rc_sp.psi);
-#endif
 }
 
 static inline void booz2_guidance_h_nav_enter(void) {

Modified: 
paparazzi3/trunk/sw/airborne/booz/stabilization/booz_stabilization_attitude_ref_int.h
===================================================================
--- 
paparazzi3/trunk/sw/airborne/booz/stabilization/booz_stabilization_attitude_ref_int.h
       2010-08-24 16:33:19 UTC (rev 5660)
+++ 
paparazzi3/trunk/sw/airborne/booz/stabilization/booz_stabilization_attitude_ref_int.h
       2010-08-24 16:47:56 UTC (rev 5661)
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *  
- * Copyright (C) 2008-2009 Antoine Drouin <address@hidden>
+ * Copyright (C) 2008-2010 The Paparazzi Team
  *
  * This file is part of paparazzi.
  *
@@ -23,7 +23,9 @@
 #ifndef BOOZ_STABILISATION_ATTITUDE_REF_INT_H
 #define BOOZ_STABILISATION_ATTITUDE_REF_INT_H
 
-extern struct Int32Eulers booz_stab_att_sp_euler;
+extern struct Int32Eulers booz_stab_att_sp_vi_euler; /* vehicle interface */
+extern struct Int32Eulers booz_stab_att_sp_rc_euler; /* radio control     */
+extern struct Int32Eulers booz_stab_att_sp_euler;    /* sum of the above  */
 extern struct Int32Quat   booz_stab_att_sp_quat;
 extern struct Int32Eulers booz_stab_att_ref_euler;
 extern struct Int32Quat   booz_stab_att_ref_quat;

Modified: paparazzi3/trunk/sw/airborne/math/pprz_algebra_int.h
===================================================================
--- paparazzi3/trunk/sw/airborne/math/pprz_algebra_int.h        2010-08-24 
16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/math/pprz_algebra_int.h        2010-08-24 
16:47:56 UTC (rev 5661)
@@ -238,12 +238,26 @@
   }
 
 
-#define INT32_VECT3_NORM(n, v) {                                       \
-    int32_t n2 = v.x*v.x + v.y*v.y + v.z*v.z;                          \
-    INT32_SQRT(n, n2);                                                 \
+#define INT32_VECT3_NORM(n, v) {                       \
+    int32_t n2 = v.x*v.x + v.y*v.y + v.z*v.z;          \
+    INT32_SQRT(n, n2);                                 \
   }
 
+#define INT32_VECT3_RSHIFT(_o, _i, _r) { \
+    (_o).x = ((_i).x >> (_r));          \
+    (_o).y = ((_i).y >> (_r));          \
+    (_o).z = ((_i).z >> (_r));          \
+  }
 
+#define INT32_VECT3_LSHIFT(_o, _i, _l) { \
+    (_o).x = ((_i).x << (_l));          \
+    (_o).y = ((_i).y << (_l));          \
+    (_o).z = ((_i).z << (_l));          \
+  }
+
+
+
+
 /*
  * 3x3 Matrices
  */

Modified: paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi.h
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi.h 2010-08-24 
16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi.h 2010-08-24 
16:47:56 UTC (rev 5661)
@@ -31,6 +31,7 @@
 #include "std.h"
 #include "math/pprz_algebra_int.h"
 #include "booz/booz2_autopilot.h"
+#include "booz/booz_stabilization.h"
 #include "booz/booz_guidance.h"
 #include "booz/booz2_navigation.h"
 

Modified: paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.c
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.c        
2010-08-24 16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.c        
2010-08-24 16:47:56 UTC (rev 5661)
@@ -43,7 +43,9 @@
   wp_speed.x = ViMaxHSpeed * vi.input.h_sp.speed.x / 128;
   wp_speed.y = ViMaxHSpeed * vi.input.h_sp.speed.y / 128;
   wp_speed.z = ViMaxVSpeed * vi.input.v_sp.climb / 128;
-  VECT3_BOUND_BOX(wp_speed, wp_speed_max);
-  int16_t heading_rate = BoundAbs(vi.input.h_sp.speed.z,ViMaxHeadingRate);
-  navigation_update_update_wp_from_speed(wp_id , wp_speed, heading_rate);
+  VECT3_BOUND_BOX(wp_speed, wp_speed, wp_speed_max);
+  int16_t heading_rate = vi.input.h_sp.speed.z;
+  BoundAbs(heading_rate, ViMaxHeadingRate);
+  navigation_update_wp_from_speed(wp_id , wp_speed, heading_rate);
+
 }

Modified: paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.h
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.h        
2010-08-24 16:33:19 UTC (rev 5660)
+++ paparazzi3/trunk/sw/airborne/modules/vehicle_interface/vi_datalink.h        
2010-08-24 16:47:56 UTC (rev 5661)
@@ -25,7 +25,6 @@
 #include "std.h"
 #include "vehicle_interface/vi.h"
 #include "math/pprz_algebra_int.h"
-#include "booz/booz_guidance.h"
 
 #ifndef VI_MAX_H_SPEED
 #define VI_MAX_H_SPEED 4.




reply via email to

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