status_tracker

Пакет status_tracker наблюдает за состоянием питания и кнопок на роботе, и, в случае необходимости, управляет светодиодной подсветкой кнопок и блокирует другие ноды. Его логика работы следующая:

  • если нажата красная кнопка экстренного прекращения работы, то он блокирует работу нод locomotion_controller и radiolink_teleop

  • если нажата пользовательская кнопка (слева от кнопки питания), то робот переходит в режим переноски. Он тоже блокирует работу нод locomotion_controller и radiolink_teleop, но при этом подает на электродвигатели Kp=0 и Kd=0.7, благодаря чему движения приводов становятся "вязкими" и ноги не падают, когда вы переносите робота.

ROS API

ROS API состоит из вызова сервисов, входящих и исходящих топиков.

Входящие топики

  • /power/buttons (power_bridge/PowerButtons) - получает информацию о нажатых пользовательской кнопки и кнопки экстренного прекращения работы

Исходящие топики

Здесь описываются названия топиков, которые установлены в пакете по умолчанию.

  • /disable (std_msgs/Bool) - если True, то блокирует всех, кто на него подписан. В данном случае блокируются ноды locomotion_controller и radiolink_teleop

  • /hmi_beeper (power_bridge/HMIBeeper) - управляет пищалкой в роботе

  • /hmi_led (/power_bridge/HMILed) - управляет светодиодом на кнопке питания

Вызываемые сервисы

  • robot_mode (QuadrupedCmd) - переключение между режимами управления роботом: шагание/корпус/ступни/сочленения)

  • joints_kp (JointsCmd) - задает массив пропорциональных коэффициентов для сервоприводов.

  • joints_kd (JointsCmd) - задает массив дифференциальных коэффициентов для сервоприводов.

Last updated