|
Paparazzi UAS v7.1_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
#include "nps_fdm.h"#include <stdlib.h>#include <stdio.h>#include <Python.h>#include "math/pprz_geodetic.h"#include "math/pprz_geodetic_double.h"#include "math/pprz_geodetic_float.h"#include "math/pprz_algebra.h"#include "math/pprz_algebra_float.h"#include "math/pprz_isa.h"#include "generated/airframe.h"#include "generated/flight_plan.h"#include "state.h"
Include dependency graph for nps_fdm_pybullet.c:Go to the source code of this file.
Macros | |
| #define | _WIDEN(x) L ## x |
| #define | WIDEN(x) _WIDEN(x) |
| #define | NPS_PYTHON_EXEC "python3" |
| #define | NPS_PYBULLET_GUI TRUE |
| #define | NPS_PYBULLET_MODULE "simple_quad_sim" |
| #define | NPS_PYBULLET_URDF "robobee.urdf" |
Variables | |
| struct NpsFdm | fdm |
| Holds all necessary NPS FDM state information. | |
| static struct LtpDef_d | ltpdef |
| struct DoubleQuat | quat_to_pprz |
| PyObject * | fdm_module = NULL |
| PyObject * | bullet_fdm = NULL |
| #define _WIDEN | ( | x | ) | L ## x |
Definition at line 25 of file nps_fdm_pybullet.c.
Definition at line 35 of file nps_fdm_pybullet.c.
| #define NPS_PYBULLET_MODULE "simple_quad_sim" |
Definition at line 45 of file nps_fdm_pybullet.c.
| #define NPS_PYBULLET_URDF "robobee.urdf" |
Definition at line 51 of file nps_fdm_pybullet.c.
| #define NPS_PYTHON_EXEC "python3" |
Definition at line 29 of file nps_fdm_pybullet.c.
Definition at line 26 of file nps_fdm_pybullet.c.
accel in ltppprz frame, wrt ECEF frame
acceleration in LTP frame, wrt ECEF frame
acceleration in ECEF frame, wrt ECEF frame
acceleration in body frame as measured by an accelerometer (incl. gravity)
Definition at line 193 of file nps_fdm_pybullet.c.
References NpsFdm::body_accel, double_quat_vmult(), NpsFdm::ecef_ecef_accel, ecef_of_enu_vect_d(), fdm, foo, NpsFdm::ltp_ecef_accel, NpsFdm::ltp_to_body_quat, ltpdef, NpsFdm::ltpprz_ecef_accel, VECT3_COPY, VECT3_NED_OF_ENU, NedCoor_d::x, NedCoor_d::y, and NedCoor_d::z.
Referenced by nps_fdm_run_step().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 256 of file nps_fdm_pybullet.c.
References NpsFdm::body_ecef_rotaccel, NpsFdm::body_inertial_rotaccel, fdm, foo, DoubleRates::p, DoubleRates::q, DoubleRates::r, and DoubleVect3::x.
Referenced by nps_fdm_run_step().
Here is the caller graph for this function:Definition at line 241 of file nps_fdm_pybullet.c.
References NpsFdm::body_ecef_rotvel, NpsFdm::body_inertial_rotvel, fdm, foo, DoubleRates::p, DoubleRates::q, DoubleRates::r, and DoubleVect3::x.
Referenced by nps_fdm_run_step().
Here is the caller graph for this function:Definition at line 224 of file nps_fdm_pybullet.c.
References double_eulers_of_quat(), double_quat_comp(), EULERS_COPY, fdm, foo, NpsFdm::ltp_to_body_eulers, NpsFdm::ltp_to_body_quat, NpsFdm::ltpprz_to_body_eulers, NpsFdm::ltpprz_to_body_quat, QUAT_COPY, and quat_to_pprz.
Referenced by nps_fdm_run_step().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 158 of file nps_fdm_pybullet.c.
References NpsFdm::agl, ecef_of_enu_point_d(), NpsFdm::ecef_pos, fdm, foo, NpsFdm::hmsl, lla_of_ecef_d(), NpsFdm::lla_pos, ltpdef, NpsFdm::ltpprz_pos, py_check(), VECT3_NED_OF_ENU, EnuCoor_d::x, and NedCoor_d::z.
Referenced by nps_fdm_run_step().
Here is the call graph for this function:
Here is the caller graph for this function:velocity in LTP frame, wrt ECEF frame (NedCoor_d)
velocity in ECEF frame, wrt ECEF frame
Definition at line 174 of file nps_fdm_pybullet.c.
References NpsFdm::ecef_ecef_vel, ecef_of_enu_vect_d(), fdm, foo, NpsFdm::ltp_ecef_vel, ltpdef, NpsFdm::ltpprz_ecef_vel, py_check(), VECT3_NED_OF_ENU, and EnuCoor_d::x.
Referenced by nps_fdm_run_step().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 277 of file nps_fdm_pybullet.c.
References ecef_of_lla_d(), NpsFdm::ecef_pos, fdm, foo, LlaCoor_d::lat, ltp_def_from_ecef_d(), NpsFdm::ltp_g, NpsFdm::ltp_h, ltpdef, PRINT_CONFIG_MSG(), DoubleVect3::x, DoubleVect3::y, and DoubleVect3::z.
Referenced by nps_fdm_init().
Here is the call graph for this function:
Here is the caller graph for this function:NPS FDM rover init.
NPS FDM rover init.
| dt |
Definition at line 91 of file nps_fdm_pybullet.c.
References NpsFdm::curr_dt, NpsFdm::dynamic_pressure, fdm, NpsFdm::init_dt, init_ltp(), NpsFdm::ltpprz_to_body_eulers, NpsFdm::nan_count, NpsFdm::on_ground, PPRZ_ISA_SEA_LEVEL_PRESSURE, NpsFdm::pressure, NpsFdm::pressure_sl, DoubleEulers::psi, NpsFdm::temperature, NpsFdm::time, NpsFdm::total_pressure, and TRUE.
Here is the call graph for this function:Definition at line 110 of file nps_fdm_pybullet.c.
References fdm, foo, NpsFdm::init_dt, nps_fdm_run_step(), and python_init().
Here is the call graph for this function:Minimum complexity flight dynamic model In legacy Paparazzi simulator, was implemented in OCaml and correspond to the 'sim' target.
Johnson, E.N., Fontaine, S.G., and Kahn, A.D., “Minimum Complexity Uninhabited Air Vehicle Guidance And Flight Control System,” Proceedings of the 20th Digital Avionics Systems Conference, 2001. http://www.ae.gatech.edu/~ejohnson/JohnsonFontaineKahn.pdf
Johnson, E.N. and Fontaine, S.G., “Use Of Flight Simulation To Complement Flight Testing Of Low-Cost UAVs,” Proceedings of the AIAA Modeling and Simulation Technology Conference, 2001. http://www.ae.gatech.edu/~ejohnson/AIAA%202001-4059.pdf
Minimum complexity flight dynamic model In legacy Paparazzi simulator, was implemented in OCaml and correspond to the 'sim' target.
| launch | |
| act_commands | |
| commands_nb |
Definition at line 119 of file nps_fdm_pybullet.c.
References bullet_fdm, commands, foo, get_acc(), get_ang_acc(), get_ang_vel(), get_orient(), get_pos(), get_vel(), and py_check().
Referenced by nps_fdm_run_init_step().
Here is the call graph for this function:
Here is the caller graph for this function:Set temperature in degrees Celcius at given height h above MSL.
Definition at line 329 of file nps_fdm_pybullet.c.
Definition at line 324 of file nps_fdm_pybullet.c.
Definition at line 313 of file nps_fdm_pybullet.c.
Definition at line 318 of file nps_fdm_pybullet.c.
Definition at line 379 of file nps_fdm_pybullet.c.
References foo.
Referenced by get_pos(), get_vel(), nps_fdm_run_step(), and python_init().
Here is the caller graph for this function:Definition at line 369 of file nps_fdm_pybullet.c.
Referenced by python_init().
Here is the caller graph for this function:Definition at line 334 of file nps_fdm_pybullet.c.
References bullet_fdm, fdm_module, foo, NPS_PYBULLET_GUI, NPS_PYBULLET_MODULE, NPS_PYBULLET_URDF, NPS_PYTHON_EXEC, py_check(), py_check_status(), status, and WIDEN.
Referenced by nps_fdm_run_init_step().
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 73 of file nps_fdm_pybullet.c.
Referenced by nps_fdm_run_step(), and python_init().
| struct NpsFdm fdm |
Holds all necessary NPS FDM state information.
Definition at line 57 of file nps_fdm_pybullet.c.
Referenced by get_acc(), get_ang_acc(), get_ang_vel(), get_orient(), get_pos(), get_vel(), init_ltp(), nps_fdm_init(), and nps_fdm_run_init_step().
Definition at line 72 of file nps_fdm_pybullet.c.
Referenced by python_init().
|
static |
Definition at line 60 of file nps_fdm_pybullet.c.
Referenced by get_acc(), get_pos(), get_vel(), and init_ltp().
| struct DoubleQuat quat_to_pprz |
Definition at line 64 of file nps_fdm_pybullet.c.
Referenced by get_orient().