📖
translate_book
  • ROS by example vol 2 Indigo
  • Глава 6. Диагностика робота
  • 6.1 Диагностические сообщения о состоянии робота
  • 6.2 Конфигурационный файл анализатора
  • 6.3 Контроль температуры сервопривода Dynamixel
  • 6.4 Мониторинг батареи ноутбука
  • 6.5 Создание собственных диагностических сообщений
  • 6.6 Мониторинг других состояний оборудования
  • Глава 7 Динамическая реконфигурация
  • 7.1 Добавление динамических параметров к вашим собственным узлам
  • 7.2 Добавление возможности динамической реконфигурации в узел имитатора батареи
  • 7.3 Добавление поддержки клиента динамической реконфигурации к узлу ROS
  • 7.4 Динамическая перенастройка из командной строки
Powered by GitBook
On this page

6.4 Мониторинг батареи ноутбука

Previous6.3 Контроль температуры сервопривода DynamixelNext6.5 Создание собственных диагностических сообщений

Last updated 5 years ago

Was this helpful?

CtrlK

Was this helpful?

Если ваш робот содержит ноутбук на борту, то вы можете следить за состоянием батареи ноутбука и публиковать результат в массиве /diagnostics. Затем мы можем использовать эту информацию, чтобы узнать, когда аккумулятор находится в неисправном состоянии или компьютер нуждается в подзарядке.

К счастью для нас, люди в Willow Garage давным-давно создали узел для мониторинга батареи ноутбука Turtlebot с помощью системного файла /proc/acpi/battery/BAT1. Мы включили измененную версию этого сценария под названием laptop_battery.py и его можно найти в подкаталоге rbx2_bring up/nodes.

Если вы работаете на ноутбуке, когда читаете это, вы можете протестировать сценарий следующим образом:

$ roslaunch rbx2_bringup laptop_battery.launch

Файл запуска определяет скорость публикации диагностических данных (по умолчанию 1 Гц) и путь apci_path к файлу батареи (по умолчанию /proc/acpi/battery/BAT1). Предполагая, что файл запуска работает без ошибок, взгляните на данные, опубликованные в разделе /diagnostics:

$ rostopic echo /diagnostics | more

Вывод на экран должен выглядеть примерно так:

header:
  seq: 21 stamp:
secs: 1395878798
nsecs: 494307994
frame_id: ''
status:
 -      level: 0
name: Laptop Battery
message: OK
hardware_id: ''
values:
      -
key: Voltage (V)
value: 15.12
      -
key: Current (A)
value: -19.232
      -
key: Charge (Ah)
value: 27.412
      -
key: Capacity (Ah)
value: 33.46
      -
key: Design Capacity (Ah)
value: 46.472 --
      -

Как вы можете видеть, узел батареи ноутбука публикует исходные значения напряжения, заряда и емкости в виде пар «ключ-значение». То, что не очевидно, пока вы внимательно не посмотрите на сценарий laptop_battery.py,который заключается в том, что общий уровень диагностики всегда будет равен 0 (т. е. ОК) до тех пор, пока батарея обнаружена и ее состояние было своевременно обновлено. Другими словами, опубликованный здесь статус не связан с зарядом батареи—он только отражает, присутствует ли батарея или нет, и может быть отслежен. Новый сценарий, подробно описанный в следующем разделе, опубликует диагностическое сообщение, основанное на самой зарядке.