Show EOL distros:
Package Summary
Package for interfacing to the ROSflight autopilot firmware over MAVLink
- Maintainer status: developed
- Maintainer: Daniel Koch <daniel.p.koch AT gmail DOT com>
- Author: Daniel Koch <daniel.p.koch AT gmail DOT com>, James Jackson <superjax08 AT gmail DOT com>
- License: BSD
- External website: http://rosflight.org
- Bug / feature tracker: https://github.com/rosflight/rosflight/issues
- Source: git https://github.com/rosflight/rosflight.git (branch: master)
Package Summary
Package for interfacing to the ROSflight autopilot firmware over MAVLink
- Maintainer status: developed
- Maintainer: Daniel Koch <daniel.p.koch AT gmail DOT com>
- Author: Daniel Koch <daniel.p.koch AT gmail DOT com>, James Jackson <superjax08 AT gmail DOT com>
- License: BSD
- External website: http://rosflight.org
- Bug / feature tracker: https://github.com/rosflight/rosflight/issues
- Source: git https://github.com/rosflight/rosflight.git (branch: master)
Package Summary
Package for interfacing to the ROSflight autopilot firmware over MAVLink
- Maintainer status: developed
- Maintainer: Daniel Koch <daniel.p.koch AT gmail DOT com>
- Author: Daniel Koch <daniel.p.koch AT gmail DOT com>, James Jackson <superjax08 AT gmail DOT com>
- License: BSD
- External website: http://rosflight.org
- Bug / feature tracker: https://github.com/rosflight/rosflight/issues
- Source: git https://github.com/rosflight/rosflight.git (branch: master)
Contents
Overview
ROSflight provides a simple, low-latency interface between a flight controller running the ROSflight firmware and ROS. ROSflight can stream both sensor data and motor commands at high speed. ROSflight is written to work with a variety of airframes, including multirotor and fixed-wing aircraft. The ROSflight package provided the interface for autopilots, but does not include any control code. For examples of autopilots using ROSflight, see ROSPlane or ROSCopter. For documentation on the firmware, see https://docs.rosflight.org.
Sample Usage
The following command will run the node that interfaces the autopilot with ROS running on the onboard computer (this must be run on a computer that is physically connected to the autopilot via USB or serial):
$ rosrun rosflight rosflight_io _port:=/dev/ttyUSB0
Nodes
rosflight_io
Interfaces between ROS on the onboard computer and the ROSflight firmware on the autopilot. Streams sensor data to the onboard computer and control and configuration commands to the autopilot. Sensor stream topics are only advertised if they are being transmitted by the autopilot.Subscribed Topics
command (rosflight_msgs/Command)- Control setpoint to send to the autopilot. The interpretation of the setpoint values depends on the value of the mode field. Which setpoint values to listen to can be controlled by setting the bits of the ignore field.
- Auxiliary command for the flight controller. This sets motors and/or servos that are not used by the mixer for flight. The type_array selects outputs and indicates whether they are motors or servos, and the values array sets the output value of the motor/servo.
- Corrected value for the internal estimator. Use this if you have an external sensor providing better estimates of the current attitude of the aircraft than the onboard estimator, such as a motion capture system. In between external_attitude messages, the estimator continues running to keep the estimate current. For fixed-wing aircraft, the internal estimator is only used for the attitude topic.
Published Topics
airspeed (rosflight_msgs/Airspeed)- Airspeed (meters/second) and differential pressure measurement (Pascals) from a differential pressure sensor, if attached.
- Attitude estimate from the autopilot, including orientation and angular velocity in the body frame with NED axes.
- Attitude estimate from the autopilot as Euler angles, in the NED frame
- Barometer measurement, including pressure (Pascals), temperature (Kelvin), and computed altitude (meters). Computed altitude is relative to where the barometer was calibrated.
- Current battery status, including voltage (Volts) and current (Amps), if a battery monitor is present
- Information from a GNSS receiver connected directly to the flight contoller. For more details, see the message definition. Not available in version 1.3 and earlier.
- The complete GNSS position, velocity, and time message from the receiver. This topic is intended for debugging, but may contain useful information. Some fields have strange units; see the message definition for details. Not available in version 1.3 and earlier.
- Inertial measurement unit (IMU) data (3-axis accelerometer, 3-axis gyro) in the body frame with NED axes.
- Temperature from the IMU's internal sensor, in Degrees Celsius
- 3-axis magnetometer data in the NED frame, in Tesla
- GNSS information from the attached GNSS receiver. This is intended to duplicate the API provided by the nmea_navsat_driver package. Not currently functional.
- Provides the current GNSS time from the attached GNSS receiver. This is intended to duplicate the API provided by the nmea_navsat_driver package. The header contains the ROS time when the time was valid, and the time field contains GNSS time. Not currently functional.
- Velocity measurement from the attached GNSS receiver. Only the linear field is filled. This is intended to duplicate the API provided by the nmea_navsat_driver package. Not currently functional.
- Raw motor/servo outputs from the autopilot
- Raw RC inputs to the autopilot from the RC receiver
- Major error messages from the firmware. This topic is only used for errors that crash the firmware, which are very unlikely in unmodified firmware. In event of a firmware crash, the firmware will restart and publish a message to this topic. There is some logic that attempts to prevent the aircraft from crashing (i.e. into the ground) in such a situation. See the firmware documentation
- Distance measurement from an ultrasonic rangefinder, if attached
- Status of the autopilot, including armed state, failsafe state, and error states
- Whether there are parameters that have been set on the autopilot but not saved to non-volatile memory
- String describing the firmware version running on the autopilot
- Raw named integer value sent from autopilot (used for debugging purposes)
- Raw named floating point value sent from autopilot (used for debugging purposes)
Services
param_get (rosflight_msgs/ParamGet)- Gets the value of an autopilot parameter by name. There are many parameters; see the firmware documentation.
- Sets the value of an autopilot parameter by name. There are many parameters; see the firmware documentation.
- Writes all autopilot parameters to non-volatile memory
- Saves all current autopilot parameters to specified file on onboard computer
- Sets values of autopilot parameters to those saved in the specified file on the onboard computer
- Starts an IMU calibration. IMU calibration will fail if the flight controller is not level or moves. Calibration errors are indicated through rosout, not from the service response.
- Sets the equilibrium feed-forward commands to those specified by the current RC trim setpoints. After calibrating, set RC trims back to zero. Does not work while the aircraft is armed.
- Calibrates the barometer, setting the current altitude to 0. Calibration fails if the aircraft is moved during calibration.
- Calibrates the airspeed sensor, setting the current airspeed to 0. To prevent errors, shield the airspeed sensor from wind during calibration. Calibration fails if the aircraft is moved during calibration.
- Reboots the autopilot. Does nothing while armed.
- Reboots the autopilot to the bootloader for flashing firmware. Does nothing while armed. May not work on all flight controllers.
Parameters
~port (string, default: /dev/ttyACM0)- Serial port to which the autopilot is connected
- Baud rate for the autopilot serial connection
- The frame in which sensor data will be returned
- If true, use UDP instead of UART serial. Used for Gazebo software-in-the-loop simulator.
- UDP bind host name
- UDP bind port
- UDP remote host name
- UDP remote port