Перейти к основному содержимому

robogui

Данный модуль является реализацией ПО с графическим пользовательским интерфейсом Robogui. О том, как работать с самой программой, можно почитать в разделе Графический интерфейс.

ROS API

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

Параметры

Файл параметров располагается в папке config

  • general
    • frequency (по умолчанию: 40) - частота, на которой работает модуль
  • cmd_topics - название публикуемых топиков
    • cmd_vel (по умолчанию: "gui/cmd_vel") - топик для публикации желаемой скорости движения робота
    • cmd_pose (по умолчанию: "gui/cmd_pose") - топик для публикации желаемых положения и ориентации корпуса
    • cmd_ef_pose (по умолчанию: "gui/ef_position/command") - топик для публикации желаемых положений ступней робота
    • cmd_joint_pose (по умолчанию: "gui/joint_group_position_controlle/command") - топик для публикации желаемых угловых положений сервоприводов
    • status (по умолчанию: "gui/status") - топик для публикации готовности программы к работе
  • state_topics - названия для входящих топиков
    • cur_device (по умолчанию: "cur_device") - имя топика с информацией о текущем подключенном наиболее приоритетном устройстве
    • joint_state (по умолчанию: "joint_states") - имя топика для получения информации о состоянии сочленений
    • imu_data (по умолчанию: "imu/data") - имя топика для получения информации о состоянии IMU
    • temperature_data (по умолчанию: "imu/temp") - имя топика для получения информации о температуре IMU
    • cmd_vel (по умолчанию: "cmd_vel") - топик для получения информации о желаемой скорости движения робота
    • cmd_pose (по умолчанию: "cmd_pose") - топик для получения информации о публикации желаемых положения и ориентации корпуса
    • cmd_ef_pose (по умолчанию: "ef_position/command") - топик для получения информации о желаемых положений ступней робота
    • cmd_joint_pose (по умолчанию: "joint_group_position_controlle/command") - топик для получения информации о желаемых угловых положений сервоприводов
    • ef_pose (по умолчанию: "ef_position/states") - топик для получения информации о текущих положения ступней ног
    • ll_cmd_joint_pos (по умолчанию: "lcm/servo_cmd") - топик для получения информации о том, какие команды отправляются на аппаратный уровень по протоколу LCM
  • gait - параметры для передвижения робота
    • max_speed_x (по умолчанию: 0.3) - максимальная желаемая скорость по оси X
    • max_speed_y (по умолчанию: 0.2) - максимальная желаемая скорость по оси Y
    • max_speed_z (по умолчанию: 0.8) - максимальный радиус поворота вокруг оси Z
  • pose - параметры для желаемых положений корпуса робота
    • max_angle_x (по умолчанию: 0.33) - максимально возможный угол поворота по крену
    • max_angle_y (по умолчанию: 0.33) - максимально возможный угол поворота по тангажу
    • max_angle_z (по умолчанию: 0.33) - максимально возможный угол рысканья
    • max_lin_x (по умолчанию: 0.1) - максимально возможное смещение корпуса по оси X
    • max_lin_y (по умолчанию: 0.1) - максимально возможное смещение корпуса по оси Y
    • max_lin_z (по умолчанию: 0.1) - максимально возможное смещение корпуса по оси Z в положительном направлении
    • min_lin_z (по умолчанию: 0.15) - максимально возможное смещение корпуса по оси Z в отрицательном направлении
  • ef - параметры для желаемых положений ступней робота
    • max_pos_x (по умолчанию: 0.05) - максимально возможное смещение ступни по оси X
    • max_pos_y (по умолчанию: 0.05) - максимально возможное смещение ступни по оси Y
    • max_pos_z (по умолчанию: 0.05) - максимально возможное смещение ступни по оси Z в положительном направлении
    • min_pos_z (по умолчанию: 0.05) - максимально возможное смещение ступни по оси Z в отрицательном направлении
  • joints - параметры для желаемых угловых положений сочленений робота
    • max_abad (по умолчанию: 1.57) - максимальный угол отклонения плечевых сочленений
    • max_hip (по умолчанию: 1.57) - максимальный угол отклонения бедренных сочленений
    • max_knee (по умолчанию: 1.57) - максимальный угол отклонения коленных сочленений
    • max_vel (по умолчанию: 5.0) - максимальная скорость сочленений
    • max_torq (по умолчанию: 5.0) - максимальный момент сочленений
    • max_kp (по умолчанию: 24.0) - максимальное значение пропорционального коэффициента обратной связи
    • max_kd (по умолчанию: 1.0) - максимальное значение дифференциального коэффициента обратной связи
  • modes - параметры режимов робота
    • walk (по умолчанию: 0) - какой номер присваивается режиму шагания
    • ef (по умолчанию: 1) - какой номер присваивается режиму перемещения ноги
    • body (по умолчанию: 2) - какой номер присваивается режиму перемешения корпуса
    • joint (по умолчанию: 3) - какой номер присваивается режиму вращения сочленений

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

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

  • gui/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота
  • gui/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота
  • gui/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота
  • gui/joint_group_position_controlle/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота
  • gui/status (std_msgs/Bool) - статус готовности программы к работе

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

  • cur_device (std_msgs/UInt8) - текущее подключенное устройство. 1 - Dualshock 4, 2 - Radiolink T8S, 3 - модуль навигации, 4 - Robogui, 0 - ни одного устройства.
  • joint_states (sensor_msgs/JointState) - состояние всех электроприводов робота (угол, скорость момент)
  • imu/data (sensor_msgs/Imu) - данные с IMU (линейное ускорение, угловая скорость, ориентация)
  • imu/temp (sensor_msgs/Temperature) - температура IMU
  • cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота
  • cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота
  • ef_position/command (geometry_msgs/PoseArray) - желаемые положения стоп робота
  • joint_group_position_controlle/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота
  • ef_position/states (geometry_msgs/PoseArray) - текущее положение ступней ног робота
  • lcm/servo_cmd (trajectory_msgs/JointTrajectoryPoint) - команды на сервоприводы, отправляемые на аппаратный уровень по протоколу LCM

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

  • robot_mode (QuadrupedCmd) - переключение между режимами управления роботом: шагание/корпус/ступни/сочленения.)
  • robot_action (QuadrupedCmd) - вызывает действия, совершаемые роботом, такие как встать, лечь, дать лапу.
  • stride_height (QuadrupedCmd) - задает максимальную высоту шага.
  • joints_kp (JointsCmd) - задает массив пропорциональных коэффициентов для сервоприводов.
  • joints_kd (JointsCmd) - задает массив дифференциальных коэффициентов для сервоприводов.