chrono::copter::Copter< nop > Class Template Reference

Description

template<int nop>
class chrono::copter::Copter< nop >

Base class for any copter, template parameter nop is the number of propellers.

Propellers position, data, rotation verse, vertical axis and all mass porperties are settable.

#include <Copter.h>

Collaboration diagram for chrono::copter::Copter< nop >:

Public Member Functions

 Copter (ChSystem &sys, const ChVector3d &cpos, std::vector< ChVector3d > ppos, const bool clockwise[], bool are_prop_pos_rel=true, bool z_up=false)
 
std::shared_ptr< ChBodyGetChassis () const
 Get the chassis body.
 
void SetPropellerData (double mass, const ChVector3d &inerXX, double diam, double thrust_coeff, double power_coeff, double max_rpm)
 Set the propeller properties. More...
 
void SetLinearDragCoeff (double ldc)
 Set the drag coefficient.
 
double GetLinearDragCoeff () const
 Get the drag coefficient.
 
void SetLinearDragSurf (double dsurf)
 Set the area used in evaluation of drag force.
 
double GetLinearDragSurf () const
 Get the area used in evaluation of drag force.
 
void AddVisualizationAssets (const std::string &chassismesh, const std::string &propellermesh, const ChFrame<> &cor_m1, const ChFrame<> &cor_m2)
 Add generic triangular meshes to the chassis and the propellers.
 
void ControlIncremental (double inputs[nop])
 Increment propeller angular velocity.
 
void ControlAbsolute (double inputs[nop])
 Set Propellers angular velocity.
 
void Update (double timestep)
 Update the copter internal physics.
 
void SetGroundAirDensity (double rho)
 Set initial (h = 0) air density.
 
double GetAirPressure () const
 Get the air pressure at copter height.
 
double GetGroundAirPressure () const
 Get the air pressure at 0 height.
 
void SetGroundPressure (double p0)
 Set the air pressure at copter height.
 
double GetGroundAirDensity () const
 Get the air density at copter height.
 
double GetAirDensity () const
 Get the air density at copter height.
 
double GetAltitude () const
 Get the copter altitude.
 
double GetInitAltitude () const
 Get the initial copter altitude.
 
void SetInitAltitude (double alt)
 Set the initial copter altitude.
 
double GetTemperature () const
 Get air temperature.
 
void SetTemperature (double temp)
 Set air temperature.
 
double GetGroundTemperature () const
 Get ground air temperature.
 
void SetGroundTemperature (double temp)
 Set ground air temperature.
 
int GetNumProps () const
 Get the number of propellers.
 
std::vector< std::shared_ptr< ChBody > > GetProps () const
 Get the propellers bodies.
 
virtual const std::string & GetChassisMeshFilename () const
 Get the name of the Wavefront file with chassis visualization mesh. More...
 
virtual const std::string & GetPropellerMeshFilename () const
 Get the name of the Wavefront file with propeller visualization mesh. More...
 
void RotateCopter (ChMatrix33<> &A)
 Rotates the whole copter given a 3x3 rotation matrix.
 

Protected Attributes

std::shared_ptr< ChBodychassis
 Chassis body.
 
std::string chassis_mesh_path
 Visualization meshes.
 
std::string propeller_mesh_path
 Visualization meshes.
 
std::vector< std::shared_ptr< ChBody > > props
 Propeller bodies.
 
double rps_max
 Max propeller angular speed [rot/s].
 
double Dp
 Propeller diameter [m].
 
double Ct
 Thrust coefficient.
 
double Cp
 Power coefficient.
 
double u_p [nop]
 Propeller rotation as fraction of max rpm (in [0,1])
 
double rho = 1.225
 Air density [kg/m^3].
 
double rho0 = 1.225
 Ground Air density [kg/m^3].
 
double pressure = 101325
 Air pressure [Pa].
 
double pressure0 = 101325
 Ground Air pressure [Pa].
 
double Altitude
 Altitude [m].
 
double Temp0 = 298
 Ground Air Temperature [K].
 
double Temp = 298
 Air Temperature [K].
 
double Altitude0 = 0
 Initial Altitude [m].
 
double h0 = 0
 Initial Altitude in simulation [m].
 
ChVector3d up
 Vertical axis.
 
std::vector< std::shared_ptr< ChForce > > thrusts
 Thrust Forces.
 
std::vector< std::shared_ptr< ChForce > > backtorques
 Propeller Resistance torques.
 
std::vector< std::shared_ptr< ChLinkMotorRotationSpeed > > motors
 Propeller Motors.
 
std::vector< std::shared_ptr< ChFunctionConst > > speeds
 Propeller Motors Speed Functions.
 
double Cd = 0
 Drag coefficient.
 
std::shared_ptr< ChForcelin_drag
 Linear drag.
 
double Surf = 0
 Drag Surface.
 

Member Function Documentation

◆ GetChassisMeshFilename()

template<int nop>
virtual const std::string& chrono::copter::Copter< nop >::GetChassisMeshFilename ( ) const
inlinevirtual

Get the name of the Wavefront file with chassis visualization mesh.

An empty string is returned if no mesh was specified.

Reimplemented in chrono::copter::Little_Hexy.

◆ GetPropellerMeshFilename()

template<int nop>
virtual const std::string& chrono::copter::Copter< nop >::GetPropellerMeshFilename ( ) const
inlinevirtual

Get the name of the Wavefront file with propeller visualization mesh.

An empty string is returned if no mesh was specified.

Reimplemented in chrono::copter::Little_Hexy.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_models/robot/copters/Copter.h