Топик выводит информацию о срабатывании емкостного датчика в голове и ладонях робота. Через топик можно сымитировать прикосновение к роботу. При срабатывании При срабатывании Топик выводит следующую информацию: Через топик можно отправить реплику роботу на распознавание. Топик выводит информацию о реплике, которую робот произносит. Через топик можно отправить роботу реплику на произношение. Топик выводит информацию об уровне громкости динамиков. Через топик можно выставить значение уровня громкости. Топик выводит информацию о чувствительности микрофона. Через топик можно выставить значение чувствительности микрофона. Топик выводит следующую информацию: Через топик можно отправить робота на зарядную станцию. Топик выводит следующую информацию: Через топик можно запустить приложение отправки на зарядную станцию. Топик выводит информацию о версии прошивок: платы ушей робота Топик выводит информацию о текущем статусе калибровки. Топик выводит информацию о данных с колес робота. Топик выводит информацию об активных сервоприводах. Топик выводит информацию о расстоянии между передвижной платформой робота и препятствием. Красная кнопка находится в положении отключения серв и колес при выполнении двух условий: Топик выводит информацию о статусах и ошибках чекового принтера. Топик выводит информацию о напряжениях линий платы power. Топик выводит значения тока основных линий платы power. Топик отвечает за управление питанием того или иного устройства, питающимся через плату power. Топик выводит информацию о напряжениях линий платы main. Топик выводит значения тока основных линий платы main.Общая информация:
rostopic info /<topic name>
rostopic echo /<topic name>
rostopic pub /<topic name> ...
Датчики прикосновений sens:
Данные с топика:
rostopic echo /sens
# полученные данные
left_hand: False # емкостной датчик в левой ладони
right_hand: False # емкостной датчик в правой ладони
head_left: False # емкостной датчик в левом ухе
head_right: False # емкостной датчик в правом ухе
head_center: False # емкостной датчик в центре головы
right_hand
или left_hand
в ладонях, робот начнет сгибать пальцы правой или левой руки соответственно.head_left
или head_right или
head_center
в голове, уши робота загорятся желтым цветом.Публикация данных в топик:
rostopic pub /sens promobot_msgs/TouchSens "{left_hand: false, right_hand: false, head_left: false, head_right: false, head_center: false}" -1
# передача любому ключу значение true сымитирует прикосновение к датчику
Распознавание речи asr:
Данные с топика:
rostopic echo /asr
#полученные данные
data: True # если робот сейчас не произносит текст и готов слушать собеседника
---
data: False # если робот сейчас произносит текст и не может услышать собеседника
---
rostopic echo /asr/result
#полученные данные
header:
seq: 127 # кол-во итераций распознавания с момента запуска
stamp: # время публикации
secs: 1617172367
nsecs: 814594122
frame_id: "asr" # индентификатор asr
source: 0 # источник звука
uuid: "7d607d83-a98d-42cf-8e83-f0bcce857c91" # уникальный идентификатор
text: "hello" # распознанный текст
final: 1 # статус распознавания (1 - завершен, 0 - в процессе)
conf: 0.899999976158 # данные с google, коэффициент уверенности в распознавании
---
Публикация данных в топик:
rostopic pub /asr std_msgs/Bool "data: true" -1 # включить распознавание речи
rostopic pub /asr std_msgs/Bool "data: false" -1 # выключить распознавание речи
rostopic pub /asr/result promobot_msgs/ASRResult "header:
seq: 0
stamp: {secs: 0, nsecs: 0}
frame_id: ''
source: 0
uuid: 'cb2726de-91f2-11eb-a8b3-0242ac130003' # можно сгенерировать на https://www.uuidgenerator.net/version1
text: 'test' # что отправляем на распознавание
final: 1 # сообщаем сервису, что реплика завершена
conf: 1.0" # указываем коэффициент
Произношение текста tts:
Данные с топика:
rostopic echo /tts/process
#полученные данные
status: True # реплика сейчас произносится
uuid: "{460467e7-bdee-4b28-804b-fe35dbf296a1}" # уникальный идентификатор реплики
---
status: False #произношение реплики завершено
uuid: "{460467e7-bdee-4b28-804b-fe35dbf296a1}" # уникальный идентификатор реплики
---
rostopic echo /tts/start
# полученные данные
text: "My name is Promobot" # текст, который робот произносит
terminate: True # может ли реплика быть прервана
uuid: "{9597cd61-8eb5-4dfc-a5c9-994492f5355a}" # уникальный идентификатор реплики
ignore_saving: False # данная логика используется в микрофонном массиве
Публикация данных в топик:
rostopic pub /tts/cancel std_msgs/Empty "{}" -1 # отменяет произношение реплики
rostopic pub /tts/start promobot_msgs/TTSCommand "text: 'test phrase' # отправка реплики на произношение
terminate: false
uuid: ''
ignore_saving: false"
Уровень громкости volume:
Данные с топика:
rostopic echo /volume
# полученные данные
data: 81 # уровень громкости
---
Изменение громкости:
pactl set-sink-volume $PROMOBOT_SINK_DEFAULT 30% # установить уровень громкости в 30%
Чувствительность микрофона mic:
Данные с топика:
rostopic echo /mic
# полученные данные
data: 81 # уровень чувствительности микрофона
---
Изменение чувствительности микрофона:
pactl set-source-volume $PROMOBOT_SOURCE_DEFAULT 30% # установить уровень чувствительности микрофона в 30%
Режим езды drive:
Данные с топика:
rostopic echo /drive/mode
# полученные данные
data: 0 # режим джойстика
---
data: 1 # режим авто
---
rostopic echo /drive/radius
# полученные данные
data: 5 # радиус в метрах
---
rostopic echo /drive/pause
# полученные данные
data: False # робот собирается поехать / едет
---
data: True # робот на паузе
---
rostopic echo /drive/station
# полученные данные
data: True # робот едет на зарядную станцию
---
data: False # робот не пытается ехать на зарядную станцию
---
rostopic echo /drive/status
# полученные данные
data: X
---
X - статусы:
0 - ожидание
1 - начало движения
2 - конец движения
3 - отмена
4 - препятствие
5 - робот не может повернуться
6 - робот вне радиусе движения
7 - модуль завершил свою работу по таймауту
8 - модуль завершил свою работу с ошибкой
9 - модуль успешно завершил свою работу
Публикация данных в топик:
rostopic pub /drive/mode std_msgs/UInt16 "data: 0" -1 # активировать режим джойстик
rostopic pub /drive/mode std_msgs/UInt16 "data: 1" -1 # активировать режим авто
rostopic pub /drive/mode/switch std_msgs/Empty "{}" -1 # переключить режим
rostopic pub /drive/radius std_msgs/UInt8 "data: X" -1 # задать радиус (в метрах)
rostopic pub /drive/station std_msgs/Bool "data: true" -1 # включить алгоритм поиска зарядной станции
rostopic pub /drive/station std_msgs/Bool "data: false" -1 # отключить алгоритм поиска зарядной станции
rostopic pub /drive/pause std_msgs/Bool "data: false" -1 # снять робота с паузы
rostopic pub /drive/pause std_msgs/Bool "data: true" -1 # поставить робота на паузу
rostopic pub /drive/point std_msgs/UInt16 "data: X" -1 # отправить робота на точку X (int) (используется в навигации)
Статус зарядки charge:
Данные с топика:
rostopic echo /charge/cur
# полученные данные
data: x # ток заряда (float)
---
rostopic echo /charge/state
# полученные данные
data: True # робот заряжается
---
data: False # робот не на зарядке
---
rostopic echo /charge/type
#полученные данные
data: 0 # не заряжается
---
data: 1 # заряжается по кабелю
---
data: 2 # заряжается через контакты зарядной станции
---
Публикация данных в топик:
rostopic pub /charge/runApplication std_msgs/Empty "{}" -1 # запустить приложение отправки на зарядную станцию
Просмотр версии прошивки с плат управления узлами робота:
rosparam get /main_controller/firmwares
# полученные данные
['Servo 31: 56', 'Servo 32: 56', 'Servo 33: 56', 'Servo 34: 56', 'Servo 35: 56', 'Servo
36: 13', 'Servo 21: 56', 'Servo 22: 56', 'Servo 23: 56', 'Servo 24: 56', 'Servo
25: 56', 'Servo 26: 13', 'Servo 11: 56', 'Servo 12: 56', 'Servo 13: 56', 'Servo
41: 56', 'Servo 42: 56', 'Power_board: 229', 'Ear_left: 7', 'Ear_right: 7', 'Face_board:
10001']
'Servo XX: XX' - версия прошивки плат управления двигателем робота
'Power_board: XXX' - версия прошивки платы питания робота
'Ear_left: X' - версия прошивки платы уха робота
'Face_board: XXXXX' - версия прошивки лица робота
Статусы калибровки:
Данные с топика:
rostopic echo /promobot_servos/calibration_step
# полученные данные
data: X
---
X - статусы:
0 - сброс текущей позиции в 0
1 - активация питания мотора на сервоприводах
2 - старт движения всех узлов до срабатывания датчика Холла (ограничителя движения)
3 - возвращение сервоприводов в калибровочное значение
4 - сброс текущей позиции в 0
5 - отключение датчиков холла
6 - активация питания мотора на сервоприводах
Данные с колес wheel:
Данные с топика:
rostopic echo /wheel/left/sensors/core # левое колесо
rostopic echo /wheel/right/sensors/core # правое колесо
# полученные данные
header:
seq: 40816 # кол-во итераций опроса с момента запуска
stamp: # текущее время
secs: 1619435012
nsecs: 708189702
frame_id: '' # идентификатор топика (отсутствует)
state:
voltage_input: 28.1 # напряжение на входе
temperature_pcb: 0.0 # температура платы управления колесом
current_motor: 0.0 # ток на моторе
current_input: 0.0 # ток на плате управления колесом
speed: 0.0 # скорость
duty_cycle: 0.0 # параметр платы управления колесом
charge_drawn: 10.0 # параметр платы управления колесом
charge_regen: 0.0 # параметр платы управления колесом
energy_drawn: 299.0 # параметр платы управления колесом
energy_regen: 0.0 # параметр платы управления колесом
displacement: 1814.0 # смещение относительно места включения робота
distance_traveled: 4745.0 # пройденное расстояние
fault_code: 0 # код ошибки
---
Данные с серв promobot_servos:
Данные с топика:
rostopic echo /promobot_servos/core
# полученные данные (пример для одного из узлов, в states публикуются все активные сервоприводы)
states:
-
id: X # id сервы
name: "X_joint" # название джойнта
command: X # команда управления сервоприводом
torque: False # статус питания мотора сервопривода
setPoint: -41 # заданная позиция
fault_code: 0 # номер ошибки
fault_code_str: "[]" # описание ошибки
encoderValue: 4293 # текущее положение энкодера
position: -40 # фактическая позиция
velocity: 0 # скорость
motorCurrent: 2 #ток
sensors: # данные с датчика холла
leftSensor: False
rightSensor: False
-
Датчики расстояния ranges:
Данные с топика:
rostopic echo /rangesUS
rostopic echo /rangesTOF
# полученные данные датчиков 1 - 16
---
s_1: 255
s_2: 255
s_3: 255
s_4: 255
s_5: 255
s_6: 255
s_7: 255
s_8: 255
s_9: 255
s_10: 255
s_11: 255
s_12: 255
s_13: 255
s_14: 255
s_15: 255
s_16: 255
s_66: 0 # датчик v3 (не актуален)
Публикация эмоций animation:
Публикация данных в топик:
rostopic pub /animation/file std_msgs/String "data: 'X'" # X - название gif файлов. Доступные gif файлы находятся в /opt/promobot/share/promobot_face_manager/images
Проверка красной кнопки:
rostopic echo /main_board/voltages
# полученные данные
values:
-
name: "PC_win"
value: 15.7399997711
-
name: "PC_linux"
value: 15.7259998322
-
name: "router"
value: 28.202999115
-
name: "printer_photo"
value: 24.1870002747
-
name: "display"
value: 11.9259996414
-
name: "printer_cheque"
value: 24.1149997711
-
name: "servos"
value: 0.0 # значение напряжение равно нулю
---
rostopic echo /wheel/left/sensors/core # в топики колес ничего не публикуется
Статусы и ошибки чекового принтера:
rostopic echo /printer_thermal/status
# полученные данные
data: X
---
X - статусы:
0 - Ожидание печати
1 - Находится в процессе печати
2 - Ошибка принтера
3 - Принтер не подключен
rostopic echo /printer_thermal/error
# полученные данные
code: X
description: "X"
---
X - код ошибки + описание:
NOT_ERROR = 0,
NO_PAPER = 1,
LOW_PAPER = 2,
PAPER_JAM = 3,
HEAD_OVERHEATED = 4,
POWER_SUPPLY = 5,
CUTTER_ERROR = 6,
RAM_ERROR = 7,
NOT_CONNECTED = 100
Топики power_board:
rostopic echo /power_board/voltages
# полученные данные
values:
-
name: "reserve_battery"
value: 4.04500007629
-
name: "internal"
value: 4.84899997711
-
name: "USB_HUB"
value: 5.20100021362
-
name: "ranger_sensor"
value: 9.10999965668
-
name: "16V"
value: 18.716999054
-
name: "33V_TPS"
value: 29.4580001831
-
name: "33V_divider"
value: 28.5520000458
rostopic echo /power_board/currents
# полученные данные
values:
-
name: "charge"
value: 0.0
-
name: "PC"
value: 1.36699998379
-
name: "mainboard"
value: 0.234999999404
-
name: "wheels"
value: 0.0
rostopic pub -1 /power_board/power/hub std_msgs/ Bool "data: false" или "data: true"
rostopic pub -1 /power_board/power/pc Bool "data: false" или "data: true"
rostopic pub -1 /power_board/power/mainboard Bool "data: false" или "data: true"
rostopic pub -1 /power_board/power/rangers Bool "data: false" или "data: true"
Топики main_board:
rostopic echo /main_board/voltages
# полученные данные
values:
-
name: "PC_win"
value: 0.00999999977648
-
name: "PC_linux"
value: 17.5669994354
-
name: "router"
value: 0.0
-
name: "printer_photo"
value: 24.1060009003
-
name: "display"
value: 11.7620000839
-
name: "printer_cheque"
value: 24.0349998474
-
name: "servos"
value: 29.1930007935
rostopic echo /main_board/currents
# полученные данные
values:
-
name: "PC_win"
value: 0.0
-
name: "PC_linux"
value: 0.0
-
name: "router"
value: 0.00079999997979
-
name: "printer_photo"
value: 0.0
-
name: "display"
value: 0.439399987459
-
name: "printer_cheque"
value: 0.0
-
name: "servos_hand_left"
value: 0.0960000008345
-
name: "servos_head"
value: 0.0299999993294
-
name: "servos_torso"
value: 0.0299999993294
-
name: "servos_hand_right"
value: 0.109999999404
Получить информацию о топике
Получить данные с топика
Опубликовать данные в топик
Обзор
Инструменты контента
2 Комментариев
Konstantin Pokladok
Konstantin Pokladok