Skip to content

UAL interfaces

arturotorresg edited this page Aug 1, 2017 · 7 revisions

There are two ways of interfacing with UAL: via ROS services/topics and directly via C++ object.

C++ class interface

The UAL class is defined in ual.h. You can directly create one UAL object in your app and access its public methods.

  • pose() -> Get the latest pose estimation of the robot
  • velocity() -> Get the latest velocity estimation of the robot
  • transform() -> Get the latest transform estimation of the robot
  • takeOff(double _height, bool _blocking = true) -> Perform a take off maneuver
  • land(bool _blocking = true) -> Land on the current position
  • goToWaypoint(const Waypoint& _wp, bool _blocking = true) -> Go to the specified waypoint, following a straight line
  • setVelocity(const Velocity& _vel) -> Set velocities
  • setPositionError(const PositionError& _pos_error) -> Set position error control
  • recoverFromManual() -> Recover from manual flight mode

ROS interface

The UAL class offers a ROS interface based on topics and services when it is created with the argument -ual_server=on.

Topics

Each topic publishes periodically (10Hz) the information got from the corresponding methods.

  • uav_X/ual/pose
  • uav_X/ual/velocity
  • /tf

Services

Each service provides access to each corresponding method.

  • uav_X/ual/take_off
  • uav_X/ual/land
  • uav_X/ual/go_to_waypoint
  • uav_X/ual/set_velocity
  • uav_X/ual/set_position_error
  • uav_X/ual/recover_from_manual
Clone this wiki locally