mirror of
https://github.com/nasa/trick.git
synced 2025-01-26 22:29:23 +00:00
496de8c7a9
* Disambiguate python use #1250 Changed all calls to /usr/bin/python to /usr/bin/env python3. Removed execute permissions on a lot of files that are not executable. closes #1250
71 lines
2.6 KiB
C++
71 lines
2.6 KiB
C++
/************************************************************************
|
|
PURPOSE: (Simulate a lander.)
|
|
LIBRARY DEPENDENCIES:
|
|
((lander/src/Lander.o))
|
|
**************************************************************************/
|
|
#ifndef _lander_hh_
|
|
#define _lander_hh_
|
|
|
|
#include "PIDController/include/PIDController.hh"
|
|
|
|
class Lander {
|
|
|
|
public:
|
|
double pos[2] ; /* (m) xy-position */
|
|
double vel[2] ; /* (m/s) xy-velocity */
|
|
double acc[2] ; /* (m/s2) xy-acceleration */
|
|
|
|
double pitch; /* (rad) pitch angle */
|
|
double pitchDot; /* (rad/s) pitch angular-rate */
|
|
double pitchDDot; /* (rad/s2) pitch angular-acceleration */
|
|
|
|
double nozzle_angle; /* (rad) */
|
|
double main_engine_offset; /* (m) distance of main engine swivel from vehicle center of gravity. */
|
|
double thrust_max; /* (N) Maximum thrust that the main engine can produce. */
|
|
double rcs_thrust; /* (N) Thrust produced when RCS motor is "On". */
|
|
double rcs_offset; /* (m) distance of RCS motors from vehicle center of gravity. */
|
|
double mass; /* (kg) */
|
|
double moment_of_inertia; /* (kg/m2) */
|
|
double g; /* (m/s2) - acceleration of gravity. */
|
|
int throttle; /* -- Percentage of thrust_max. Range: 0 .. 100. */
|
|
int rcs_command; /* -- -1 = counter-clockwise, 0 = no torque, 1 = clockwise */
|
|
|
|
// Controls from the client
|
|
int manual_throttle_change_command; /* add to throttle */
|
|
int manual_rcs_command; /* -1 = counter-clockwise, 0 = no torque, 1 = clockwise */
|
|
|
|
int altitudeCtrlEnabled; /* -- 0= disabled, 1=ensabled */
|
|
int downRangeCtrlEnabled;
|
|
|
|
PIDController* posxCntrl;
|
|
PIDController* posyCntrl;
|
|
PIDController* energy_controller;
|
|
PIDController* velxCntrl;
|
|
PIDController* velyCntrl;
|
|
PIDController* nozzlePitchController;
|
|
PIDController* nozzlePitchRateController;
|
|
PIDController* RCSpitchController;
|
|
PIDController* RCSpitchRateController;
|
|
|
|
double RCS_pitch_dot_limit;
|
|
double RCS_pitch_ddot_limit;
|
|
|
|
double x_cmd;
|
|
double y_cmd;
|
|
double vy_cmd;
|
|
double vx_cmd;
|
|
double ay_cmd;
|
|
double ax_cmd;
|
|
double pitch_cmd;
|
|
double pitch_dot_cmd;
|
|
double pitch_ddot_cmd;
|
|
|
|
int default_data();
|
|
int state_init();
|
|
int state_deriv();
|
|
int state_integ();
|
|
int check_ground_contact();
|
|
int control();
|
|
};
|
|
#endif
|