2
3
4
5
6
7
8
9
10
11
12
13
14
15
17
18
19
20
22#ifndef MODELS_ASSEMBLIES_SPACECRAFT_H
23#define MODELS_ASSEMBLIES_SPACECRAFT_H
25#include "core/macros.h"
26#include "core/CartesianVector.hpp"
27#include "six_dof_dynamics/Body.hpp"
28#include "six_dof_dynamics/Node.hpp"
29#include "models/states/FrameStateSensorModel.h"
30#include "models/environment/AsphericalGravityModel.h"
31#include "models/assemblies/SimplePlanet.h"
32#include "models/assemblies/SpicePlanet.h"
33#include "models/states/PlanetRelativeStatesModel.h"
34#include "models/environment/GravityGradientModel.h"
35#include "models/support/LvlhFrameManagerModel.h"
36#include "models/actuators/TimedImpulsiveBurnModel.h"
41
42
43
44
45
46
47
48
49
50
51
52
53
68
73
110 SimpleSpacecraft(
Model &pnt,
const std::string &m_name=
"spacecraft");
143 FrameD* frame_ptr=
nullptr);
153 FrameD* frame_ptr=
nullptr);
DataIO(GraphTreeObject *data_parent, std::string data_name, T initial_value)
Constructor for the DataIO object.
Definition DataIO.hpp:134
Aspherical gravity model with J2 and J3 effects.
Definition AsphericalGravityModel.h:45
Frame state sensor model.
Definition FrameStateSensorModel.h:45
Gravity Gradient Model.
Definition GravityGradientModel.h:49
LVLV Frame Manager Model.
Definition LvlhFrameManagerModel.h:51
Base model class for derived implementation.
Definition Model.h:56
Planet relative states model.
Definition PlanetRelativeStatesModel.h:52
Simple Spacecraft Model.
Definition SimpleSpacecraft.h:54
void _mapInternal()
Function to internally map relationships between sensors.
Definition SimpleSpacecraft.cpp:64
int _initializePositionVelocity(clockwerk::CartesianVector< double, 3 > position_sc_frame__frame, clockwerk::CartesianVector< double, 3 > velocity_sc_frame__frame, clockwerk::Frame< double > *frame_ptr=nullptr)
Initialize position and velocity of the spacecraft body frame.
Definition SimpleSpacecraft.cpp:126
int start()
Function to perform task startup activities (step once after creation)
Definition SimpleSpacecraft.cpp:196
modelspace::GravityGradientModel * gravityGradientModel()
Function to get a handle to the gravity gradient model contained within this model.
Definition SimpleSpacecraft.h:128
modelspace::AsphericalGravityModel * gravityModel()
Function to get a handle to the aspherical gravity model contained within this model.
Definition SimpleSpacecraft.h:122
modelspace::FrameStateSensorModel * planetInertialStateSensor()
Function to get a handle to the frame state sensor relative to the planet inertial frame.
Definition SimpleSpacecraft.h:116
modelspace::PlanetRelativeStatesModel * planetRelativeModel()
Function to get a handle to the planet relative state model contained within this model.
Definition SimpleSpacecraft.h:125
modelspace::FrameStateSensorModel * planetRotatingStateSensor()
Function to get a handle to the frame state sensor relative to the planet rotating frame.
Definition SimpleSpacecraft.h:119
int _initializeAttitude(clockwerk::Quaternion< double > quat_sc_frame__frame, clockwerk::CartesianVector< double, 3 > ang_vel_sc_frame__sc, clockwerk::Frame< double > *frame_ptr=nullptr)
Initialize attitude and angular velocity of the spacecraft body frame.
Definition SimpleSpacecraft.cpp:167
Implementation of the executive class for simulation.
Definition SimulationExecutive.h:63
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition macros.h:87
#define BodyD
Definition macros.h:66
#define START_PARAMS
Definition macros.h:96
#define CartesianVector3D
Definition macros.h:54
#define END_OUTPUTS
Definition macros.h:90
#define END_PARAMS
Definition macros.h:98
#define NodeD
Definition macros.h:68
#define QuaternionD
Definition macros.h:78
#define START_OUTPUTS
Definition macros.h:88
#define FrameD
Definition macros.h:64
#define END_INPUTS
Definition macros.h:94
#define START_INPUTS
Definition macros.h:92
Class to propagate CR3BP dynamics in characteristic units.
Definition ConfigurationWriter.cpp:18
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > vel_sc_pci
Definition SimpleSpacecraft.h:97
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > pos_sc_pci
Definition SimpleSpacecraft.h:95
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > ang_vel_sc_pci__body
Definition SimpleSpacecraft.h:101
clockwerk::DataIO< double > altitude_detic
Definition SimpleSpacecraft.h:107
clockwerk::DataIO< clockwerk::Quaternion< double > > quat_sc_pci
Definition SimpleSpacecraft.h:99
clockwerk::DataIO< clockwerk::Frame< double > * > lvlh
Definition SimpleSpacecraft.h:93
clockwerk::DataIO< double > longitude
Definition SimpleSpacecraft.h:105
clockwerk::DataIO< double > latitude_detic
Definition SimpleSpacecraft.h:103
clockwerk::DataIO< clockwerk::Frame< double > * > body
Definition SimpleSpacecraft.h:91
clockwerk::DataIO< void * > planet_configuration
Definition SimpleSpacecraft.h:74
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > initial_velocity
Definition SimpleSpacecraft.h:62
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > initial_position
Definition SimpleSpacecraft.h:60
clockwerk::DataIO< clockwerk::Frame< double > * > pos_vel_init_frame
Definition SimpleSpacecraft.h:64
clockwerk::DataIO< clockwerk::Quaternion< double > > initial_attitude
Definition SimpleSpacecraft.h:66
clockwerk::DataIO< clockwerk::Frame< double > * > planet_inertial_frame
Definition SimpleSpacecraft.h:76
clockwerk::DataIO< clockwerk::Frame< double > * > att_init_frame
Definition SimpleSpacecraft.h:71
clockwerk::DataIO< clockwerk::Frame< double > * > planet_rotating_frame
Definition SimpleSpacecraft.h:78
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > initial_ang_vel
Definition SimpleSpacecraft.h:69