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