Пакет gs_module

Описание

Пакет gs_module предоставляет классы для управления внешними модулями такими как:
  • Светодиоды на базовой плате Пионер

  • LED модуль Пионер

  • Модуль магнитного захвата Пионер Макс

Предупреждение

Все классы, кроме CargoController, могут быть использованы только при запущеной ноде ros_plaz_node.py из пакета gs_core

Состав пакета

Классы

  • BoardLedController

  • ModuleLedController

  • CargoController

Описание классов

BoardLedController

Класс для управления светодиодами на базовой плате Пионера.

Важно

Данный класс является оберткой для сервисов ROS.

Создание объекта класса

class BoardLedController
boardLed = BoardLedController()
Аргументы:

нет

Результат:

объект класса BoardLedController

Cоздаёт объект класса BoardLedController.

Описание методов

classmethod changeColor(i, r, g, b)
Аргументы:

i - номер светодиода на базовой плате, принимает значение от 0 до 3; r, g, b — каналы по управлению красным, зелёным и синим свечением светодиода, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления одним светодиодом на базовой плате Пионера.

classmethod changeAllColor(r, g, b)
Аргументы:

r, g, b — каналы по управлению красным, зелёным и синим свечением светодиода, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления всеми светодиодами на базовой плате Пионера.

Используемые сервисы ROS

  • geoscan/alive (gs_interfaces/Live)

  • geoscan/led/board/set (gs_interfaces/Led)

ModuleLedController

Класс для управления светодидами на LED модуле.

Важно

Данный класс является оберткой для сервисов ROS.

Создание объекта класса

class ModuleLedController
moduleLed = ModuleLedController()
Аргументы:

нет

Результат:

объект класса ModuleLedController

Cоздаёт объект класса ModuleLedController.

Доступные поля класса

  • __leds - list: std_msgs.msg.ColorRGBA

  • __alive - rospy.ServiceProxy: gs_interfaces.srv.Live

  • __led_service - rospy.ServiceProxy: gs_interfaces.srv.Led

Описание методов

classmethod changeColor(i, r, g, b)
Аргументы:

i - номер светодиода на LED модуле, принимает значение от 0 до 24; r, g, b — каналы по управлению красным, зелёным и синим свечением светодиода, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления одним светодиодом на LED модуле.

classmethod changeAllColor(r, g, b)
Аргументы:

r, g, b — каналы по управлению красным, зелёным и синим свечением светодиодов, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления всеми светодиодами на LED модуле.

Используемые сервисы ROS

  • geoscan/alive (gs_interfaces/Live)

  • geoscan/led/module/set (gs_interfaces/Led)

Класс CargoController

Класс для управления модулем магнитного захвата Пионер Макс.

Предупреждение

Магнитный захват использует GPIO17 и GPIO18

Создание объекта класса

class CargoController
cargo = CargoController()
Аргументы:

нет

Результат:

объект класса CargoController

Cоздаёт объект класса CargoController.

Описание методов

classmethod on()
Аргументы:

нет

Результат:

нет

Включает магнит на модуле.

classmethod off()
Аргументы:

нет

Результат:

нет

Выключает магнит на модуле.

classmethod changeColor(r=0, g=0, b=0, n=0)
Аргументы:

n - номер светодиода на модуле захвата, принимает значение от 0 до 24; r, g, b — каналы по управлению красным, зелёным и синим свечением светодиода, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления одним светодиодом на модуле захвата.

classmethod changeAllColor(r=0, g=0, b=0)
Аргументы:

r, g, b — каналы по управлению красным, зелёным и синим свечением светодиодов, принимает значения от 0.0 до 255.0 - интенсивность соответствующего канала.

Результат:

нет

Метод управления всеми светодиодами на модуле захвата.

Необходимые пакеты

Python:

  • RPi.GPIO

  • json

  • socket

ROS:

  • gs_core

  • gs_interfaces

  • std_msgs

Примечание

Все классы, кроме CargoController, могут быть использованы только при запущеной ноде ros_plaz_node.py из пакета gs_core