hector_quadrotor: hector_quadrotor_demo | hector_quadrotor_gazebo | hector_quadrotor_gazebo_plugins | hector_quadrotor_teleop | hector_quadrotor_urdf

Package Summary

hector_quadrotor_gazebo_plugins provides gazebo plugins for using quadrotors in gazebo. The main plugin is a simple controller allowing to command the quadrotor's velocity using a geometry_msgs/Twist message for teleoperation. The hector_gazebo_ros_baro sensor plugin simulates an altimeter based on barometric pressure.

Available Plugins

GazeboQuadrotorSimpleController

The simple quadrotor plugin is a generic controller for quadrotors that enables teleoperated flying in Gazebo. PID controllers are used to control the velocities and yaw rate by calculating the necessary forces and torques acting on the body. It is called "simple controller" as it makes some assumptions that usually hold for quadrotors during hovering and non-aerobatic maneuvers.

The controller uses a cascade of two PID controllers for the horizontal movement and two separate PID controllers for the yaw rate and vertical velocity.

The plugin currently does not provide position, heading or altitude control. You can implement your own position controller on top of it.

Subscribed Topics

  • cmd_vel (geometry_msgs/Twist):

    • The desired velocities and yaw rate of the quadrotor. The angular velocities around x- and y-axis are ignored.

XML Parameters

  • updateRate (double): output rate of the sensor in milliseconds

  • robotNamespace (string): namespace prefix for topic names

  • bodyName (string): name of the quadrotor body link in Gazebo

  • topicName (string): name of the twist command input topic (defaults to cmd_vel)

  • imuTopic (string): name of the imu topic (sensor_msgs/Imu) to be subscribed and used as current orientation and angular rates source. If empty, ground truth information from Gazebo is used for control (default).

  • stateTopic (string): name of the state topic (nav_msgs/Odometry) to be subscribed and used as current velocity and acceleration source. If empty, ground truth information from Gazebo is used for control (default).

  • maxForce (double): if greater than 0, upper limit of total thrust along the z-axis (defaults to unlimited)

Controller parameters

You can modify the dynamics of the controller by modifying the control parameters. See sample launch file in quadrotor_base.urdf.xacro for details.

GazeboRosBaro

This plugin simulates a sensor that measures the altitude of the vehicle based on barometric pressure according to the International Standard Atmosphere (ISA). See http://en.wikipedia.org/wiki/Atmospheric_pressure for details.

Published Topics

  • pressure_height (geometry_msgs/PointStamped):

    • The z value of the Point contains the current altitude minus the configured elevation. x and y are always zero.

XML Parameters

  • updateRate (double): output rate of the sensor in milliseconds

  • robotNamespace (string): namespace prefix for topic names

  • frameId (string): frame_id included in the message header

  • topicName (string): name of the sensor output topic (defaults to pressure_height)

  • elevation (double): elevation of the ground or zero for altitude above Mean Sea Level MSL (defaults to 0.0)

  • qnh (double): barometric pressure adjusted to sea level in hPa/mbar (defaults to standard pressure 1013.25 hPa, see http://en.wikipedia.org/wiki/QNH)

  • offset (double): a constant offset added to the range

  • drift (double): standard deviation of the drift error

  • driftFrequency (double): mean frequency of the drift

  • gaussianNoise (double): standard deviation of the additive Gaussian noise

Notes:

  • mav_msgs/Height can be used as alternate message type if compiled with -DUSE_MAV_MSGS.

  • There is no direct output of the atmospheric pressure. The parameter qnh is currently unused.

  • The plugin uses the sensor error model from package hector_gazebo_plugins.

Wiki: hector_quadrotor_gazebo_plugins (last edited 2012-03-15 08:51:31 by JohannesMeyer)