|
Marine systems simulation
|
#include <Winch.h>
Collaboration diagram for CoRiBoDynamics::Structures::Winch:Classes | |
| struct | AttachedElement |
| class | InitialStatesLoader |
| struct | ObjectAndStates |
| class | SpatialPartition |
| class | SpoolingDevice |
| struct | StateData |
Public Member Functions | |
| Winch (double drum_length, double drum_diameter, double flange_diameter, double flange_thickness, double beta) | |
| vec6 | ReactionForces () |
| void | SetWinchRotation (double theta, double omega) |
| double | GetWinchTheta () |
| double | GetWinchOmega () |
| Quat | GetStandardizedOrientationNED () |
| void | SetStates (const vec3 &P, const Quat &Q, const vec3 &V, const vec3 &W) |
| Returns orientation in a standardized Forward-Starboard-Down oriented coordinate system in a Roll/Pitch/Yaw convention. | |
| JointConstraint::ExternalRigidCoupling * | WinchCoupling (DiscreteElement *connection_element) |
| void | PushElement (AttachedElement &attached_element) |
| void | PushElement (DiscreteElement *element, const vec3 &P, const Quat &Q) |
| void | PushElement (DiscreteElement *element, const double *X) |
| void | PopElement (ObjectFactoryStack< DiscreteElement::TempStates > &temp_states_buffer) |
| vec3 | P () |
| Quat | Q () |
| vec3 | V () |
| vec3 | W () |
| Quat | baseQ () |
| const std::vector< AttachedElement, Eigen::aligned_allocator< AttachedElement > > | GetAttachedCableElements () |
| std::vector< std::vector< CollisionManager::ExternalObject * > > | GetAttachedGeometry (const std::vector< CollisionManager::InternalObject * > &InternalObjects) |
| std::vector< CollisionManager::ExternalObject * > | CollisionCandidates (GeometryTools::AABB aabb) |
| double | DrumVirtualRadius () |
| double | DrumRadius () |
| double | DrumDiameter () |
| double | DrumLength () |
| double | FlangeRadius () |
| double | FlangeDiameter () |
| void | SetLineStructure (SupergridWinchCable *line_structure) |
| virtual void | XmlInfo (TiXmlElement &xml_node) |
| double | GetRetractedLength () |
| void | WriteAttachedGeometryDataToFile (std::string filename) |
| void | LoadAttachedGeometryDataFromFile (InitialStatesLoader states, std::vector< DiscreteElement * > &super_elements, size_t &super_ix, size_t &sub_ix, const vec3 &target_point) |
| GeometryTools::AABB | GetWinchAABB () |
| void | SetSpoolingDevice (vec3 relative_position, double rail_radius) |
| SpoolingDevice * | GetSpoolingDevice () |
| CollisionManager::ExternalObject * | GetSpoolingDeviceContactGeometry () |
Static Public Member Functions | |
| static void | WinchInitFileInfo (std::string filename, std::vector< double > &angle, std::vector< double > &retracted_length) |
Protected Member Functions | |
| void | UpdateWinchDrumGeometry () |
Protected Attributes | |
| SpatialPartition | m_spatial_partition |
| SupergridWinchCable * | m_line_structure |
| double | m_beta |
| ObjectFactoryStack< ObjectAndStates > | m_attached_geometry |
| std::map< int, ObjectAndStates * > | m_accumulated_candidates |
| std::vector< AttachedElement, Eigen::aligned_allocator< AttachedElement > > | m_attached_elements |
| std::vector< CollisionManager::ExternalObject * > | m_winch_geometry |
| relative position and orientation of attached cable elements | |
| CollisionManager::ExternalObject | m_drum_capsule |
| CollisionManager::ExternalObject | m_flange1_disk |
| CollisionManager::ExternalObject | m_flange2_disk |
| CollisionManager::ExternalObject | m_block_pin_upper |
| CollisionManager::ExternalObject | m_block_pin_lower |
| double | m_drum_length |
| double | m_drum_diameter |
| double | m_flange_diameter |
| double | m_flange_thickness |
| double | m_virtual_radius |
| double | m_nominal_cable_radius |
| double | m_base_Q_array [4] |
| double | m_block_upper_V_array [3] |
| double | m_block_lower_V_array [3] |
| double | m_block_upper_P_array [3] |
| double | m_block_lower_P_array [3] |
| double | m_winch_Q_array [4] |
| double | m_flange1_V_array [3] |
| double | m_flange2_V_array [3] |
| double | m_flange1_P_array [3] |
| double | m_flange2_P_array [3] |
| double | m_theta |
| double | m_omega |
| winch rotation | |
| Quat | m_base_Q |
| winch rotation speed | |
| vec3 | m_base_W |
| winch base orientation | |
| vec3 | m_P |
| winch base rotation speed | |
| Quat | m_Q |
| center position | |
| vec3 | m_V |
| center orientation | |
| vec3 | m_W |
| center velocity | |
| vec3 | m_winch_base_pin_connection |
| center angular velocity | |
| vec3 | m_winch_base_flange_connection |
| vec3 | m_winch_base_connection_vector |
| JointConstraint::ExternalRigidCoupling | m_winch_connection |
| SpoolingDevice * | m_spooling_device |
Implements a winch drum with physical collition contact. Cable elements are "added" to the winch as they are deactivated from dynamic simulation. The deactivated elements are merged into a contact mesh that the active cable elements can collide with.
|
inline |
returns all cable elements that are currently retracted on to the winch"
| vec6 CoRiBoDynamics::Structures::Winch::ReactionForces | ( | ) |
Get the sum of all forces [N] and torques [Nm] acting on the winch by the cable. Includes the weight of cable "on the drum"
| void CoRiBoDynamics::Structures::Winch::SetStates | ( | const vec3 & | P, |
| const Quat & | Q, | ||
| const vec3 & | V, | ||
| const vec3 & | W | ||
| ) |
Update the position and velocities of the winch. Note that the "identity rotation quaternion" refers to a winch laying flat on its side.
| void CoRiBoDynamics::Structures::Winch::SetWinchRotation | ( | double | theta, |
| double | omega | ||
| ) |
Update the rotation state of the winch. {theta} is rotation in radians and {omega} is rotation speed in radians per second