Description

Little hexy (hexacopter) model.

#include <Little_Hexy.h>

Inheritance diagram for chrono::copter::Little_Hexy:
Collaboration diagram for chrono::copter::Little_Hexy:

Public Member Functions

 Little_Hexy (ChSystem &sys, const ChVector3d &cpos)
 
void AddVisualizationAssets ()
 Add specific visualization shapes to shapes and propellers.
 
void AddCollisionShapes (std::shared_ptr< ChContactMaterial > material)
 Add collision shapes. More...
 
void Pitch_Down (double delta)
 Pitch down by the specified angle.
 
void Pitch_Up (double delta)
 Pitch up by the specified angle.
 
void Roll_Right (double delta)
 Roll to the right by the specified angle.
 
void Roll_Left (double delta)
 Roll to the right by the specified angle.
 
void Yaw_Right (double delta)
 Yaw to the right by the specified angle.
 
void Yaw_Left (double delta)
 Yaw to the left by the specified angle.
 
void Throttle (double delta)
 Increase all propellers speeds. More...
 
virtual const std::string & GetChassisMeshFilename () const override
 Get the name of the Wavefront file with chassis visualization mesh. More...
 
virtual const std::string & GetPropellerMeshFilename () const override
 Get the name of the Wavefront file with propeller visualization mesh. More...
 
- Public Member Functions inherited from chrono::copter::Copter< 6 >
 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.
 
void RotateCopter (ChMatrix33<> &A)
 Rotates the whole copter given a 3x3 rotation matrix.
 

Static Protected Member Functions

static std::vector< ChVector3dgetPosVect ()
 

Additional Inherited Members

- Protected Attributes inherited from chrono::copter::Copter< 6 >
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
 Air density [kg/m^3].
 
double rho0
 Ground Air density [kg/m^3].
 
double pressure
 Air pressure [Pa].
 
double pressure0
 Ground Air pressure [Pa].
 
double Altitude
 Altitude [m].
 
double Temp0
 Ground Air Temperature [K].
 
double Temp
 Air Temperature [K].
 
double Altitude0
 Initial Altitude [m].
 
double h0
 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
 Drag coefficient.
 
std::shared_ptr< ChForcelin_drag
 Linear drag.
 
double Surf
 Drag Surface.
 

Member Function Documentation

◆ AddCollisionShapes()

void chrono::copter::Little_Hexy::AddCollisionShapes ( std::shared_ptr< ChContactMaterial material)

Add collision shapes.

The collision shape is a box + cylinder.

◆ GetChassisMeshFilename()

virtual const std::string& chrono::copter::Little_Hexy::GetChassisMeshFilename ( ) const
inlineoverridevirtual

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

An empty string is returned if no mesh was specified.

Reimplemented from chrono::copter::Copter< 6 >.

◆ GetPropellerMeshFilename()

virtual const std::string& chrono::copter::Little_Hexy::GetPropellerMeshFilename ( ) const
inlineoverridevirtual

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

An empty string is returned if no mesh was specified.

Reimplemented from chrono::copter::Copter< 6 >.

◆ Throttle()

void chrono::copter::Little_Hexy::Throttle ( double  delta)

Increase all propellers speeds.

Use a negative delta to decrease all.


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