8 #include <argos3/core/utility/logging/argos_log.h>
16 m_pcQuadRotorEntity(nullptr) {
34 THROW_ARGOSEXCEPTION(
"Can't associate a quadrotor position actuator to entity \"" << c_entity.
GetId() <<
"\" because it conflicts with a previously associated quadrotor actuator.");
110 "quadrotor_position",
"default",
111 "Carlo Pinciroli [ilpincy@gmail.com]",
113 "The quadrotor position actuator.",
115 "This actuator controls the position of a quadrotor robot. For a\n"
116 "complete description of its usage, refer to the\n"
117 "ci_quadrotor_position_actuator.h file.\n\n"
119 "REQUIRED XML CONFIGURATION\n\n"
123 " <my_controller ...>\n"
127 " <quadrotor_position implementation=\"default\" />\n"
131 " </my_controller>\n"
133 " </controllers>\n\n"
135 "OPTIONAL XML CONFIGURATION\n\n"
137 "None for the time being.\n\n"
#define THROW_ARGOSEXCEPTION_NESTED(message, nested)
This macro throws an ARGoS exception with the passed message and nesting the passed exception.
#define THROW_ARGOSEXCEPTION(message)
This macro throws an ARGoS exception with the passed message.
REGISTER_ACTUATOR(CQuadRotorPositionDefaultActuator, "quadrotor_position", "default", "Carlo Pinciroli [ilpincy@gmail.com]", "1.0", "The quadrotor position actuator.", "This actuator controls the position of a quadrotor robot. For a\n" "complete description of its usage, refer to the\n" "ci_quadrotor_position_actuator.h file.\n\n" "REQUIRED XML CONFIGURATION\n\n" " <controllers>\n" " ...\n" " <my_controller ...>\n" " ...\n" " <actuators>\n" " ...\n" " <quadrotor_position implementation=\"default\" />\n" " ...\n" " </actuators>\n" " ...\n" " </my_controller>\n" " ...\n" " </controllers>\n\n" "OPTIONAL XML CONFIGURATION\n\n" "None for the time being.\n\n", "Usable")
The namespace containing all the ARGoS related code.
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
virtual void Init(TConfigurationNode &t_node)
Initializes the actuator from the XML configuration tree.
Basic class for an entity that contains other entities.
CEntity & GetComponent(const std::string &str_component)
Returns the component with the passed string label.
This entity is a link to a body in the physics engine.
const SAnchor & GetOriginAnchor() const
Returns a const reference to the origin anchor associated to this entity.
const std::string & GetId() const
Returns the id of this entity.
CQuaternion Orientation
The orientation of the anchor wrt the global coordinate system.
CVector3 Position
The position of the anchor wrt the global coordinate system.
The exception that wraps all errors in ARGoS.
It defines the basic type CRadians, used to store an angle value in radians.
void ToEulerAngles(CRadians &c_z_angle, CRadians &c_y_angle, CRadians &c_x_angle) const
CVector3 & Rotate(const CQuaternion &c_quaternion)
Rotates this vector by the given quaternion.
virtual void Init(TConfigurationNode &t_tree)
Initializes the actuator from the XML configuration tree.
virtual void Update()
Updates the state of the entity associated to this actuator.
virtual void SetAbsoluteYaw(const CRadians &c_yaw)
Sets the absolute yaw of the robot in the world.
CQuadRotorEntity * m_pcQuadRotorEntity
CQuadRotorPositionDefaultActuator()
virtual void SetRelativePosition(const CVector3 &c_pos)
Sets the position of the robot in the environment relative to the current position and attitude.
virtual void SetAbsolutePosition(const CVector3 &c_pos)
Sets the absolute position of the robot in the environment.
virtual void SetRelativeYaw(const CRadians &c_yaw)
Sets the yaw of the robot in the environment relative to the current position and attitude.
CEmbodiedEntity * m_pcEmbodiedEntity
virtual void SetRobot(CComposableEntity &c_entity)
Sets the entity associated to this actuator.
CQuadRotorEntity::SPositionControlData m_sDesiredPosData
virtual void Reset()
Resets the actuator to the state it had just after Init().
void SetControlMethod(EControlMethod e_control_method)
void SetPositionControlData(const SPositionControlData &s_data)
EControlMethod GetControlMethod() const