Пакет gs_flight¶
Описание¶
Данный пакет предоставляет инструменты для взаимодействия с автопилотом.
Состав пакета¶
Классы¶
FlightController
CallbackEvent
Описание классов¶
FlightController¶
Класс взаимодействия с автопилотом
Создание объекта класса¶
- class FlightController¶
- fc = FlightController(callback)
- Аргументы:
callback-функция
- Результат:
объект класса FlightController
Cоздаёт объект класса FlightController.
Доступные поля класса¶
__alive - rospy.ServiceProxy: gs_interfaces.srv.Live
__event_service - rospy.ServiceProxy: gs_interfaces.srv.Event
__yaw_service - rospy.ServiceProxy: gs_interfaces.srv.Yaw
__local_position_service- rospy.ServiceProxy: gs_interfaces.srv.Position
__global_position_service - rospy.ServiceProxy: gs_interfaces.srv.PositionGPS
__callback_event - rospy.Subscriber: std_msgs.msg.Int32
Описание методов¶
- classmethod goToLocalPoint()¶
- Аргументы:
x,y,z,time - координаты в локальной системе позиционирования, время полёта в точку
- Результат:
bool
Приказывает автопилоту лететь в локальные координаты, x - координата точки по оси x, в метрах , y - координата точки по оси y, в метрах, z- координата точки по оси z, в метрах, time - время, за которое коптер перейдет в следующую точку, в секундах. Если значение не указано, коптер стремится к точке с максимальной скоростью
- classmethod goToPoint()¶
- Аргументы:
latitude,longitude,altitude
- Результат:
bool
Приказывает автопилоту лететь в GPS координаты, latitude – задается широта в градусах, умноженных на 10^(-7), longitude – задается долгота в градусах, умноженных на 10^(−7), altitude – задается высота в метрах
- classmethod updateYaw()¶
- Аргументы:
angle - угол поворота в радианах
- Результат:
bool
Устанавливает рыскание
- classmethod preflight()¶
- Аргументы:
нет
- Результат:
bool
Приказывает автопилоту выполнить предвзлётную подготовку
- classmethod takeoff()¶
- Аргументы:
нет
- Результат:
bool
Приказывает автопилоту выполнить взлёт
- classmethod landing()¶
- Аргументы:
нет
- Результат:
bool
Приказывает автопилоту произвести посадку
- classmethod disarm()¶
- Аргументы:
нет
- Результат:
bool
Приказывает автопилоту заглушить двигатели
Используемые сервисы ROS¶
geoscan/alive (gs_interfaces/Live)
geoscan/flight/set_event (gs_interfaces/Event)
geoscan/flight/set_yaw (gs_interfaces/Yaw)
geoscan/flight/set_local_position (gs_interfaces/Position)
geoscan/flight/set_global_position (gs_interfaces/PositionGPS)
Используемые топики ROS¶
geoscan/flight/callback_event (std_msgs/Int32)
CallbackEvent¶
Энумератор событий автопилота
Доступные значения¶
ALL - пустое событие
COPTER_LANDED - приземлился
LOW_VOLTAGE1 - низкий заряд АКБ, но заряда хватит, чтобы вернуться домой
LOW_VOLTAGE2 - низкий заряд АКБ, начата экстренная посадка
POINT_REACHED - точка достигнута
POINT_DECELERATION - близко к заданной точке
TAKEOFF_COMPLETE - взлет выполнен
ENGINES_STARTED - двигатели запущены
SHOCK - сильный удар, возможна потеря управления
Необходимые пакеты¶
Python:
gs_board
gs_flight
gs_module
gs_logger
gs_sensors
gs_navigation
ROS:
gs_interfaces
gs_core
std_msgs
geometry_msgs
Примечание¶
Все классы в данном пакете могут быть использованы только при запущеной ноде ros_plaz_node.py из пакета gs_core