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

cmd_commutator

Данный модуль подписывается на топики всех включенных в данный момент задающих устройств (ПК, джойстики и т.д.), и выводит сообщения самого приоритетного из них. Поддерживает до четырех разных устройств.

ROS API

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

Параметры

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

  • frequency (по умолчанию: 40) - частота, на которой работает модуль
  • input1_cmd_vel_topic (по умолчанию: "ds4/cmd_vel") - название входящего топика желаемой скорости робота для устройства №1
  • input1_cmd_pose_topic (по умолчанию: "ds4/cmd_pose") - название входящего топика желаемого положения и ориентации корпуса для устройства №1
  • input1_cmd_ef_pose_topic (по умолчанию: "ds4/ef_position/command") - название входящего топика желаемого положения ступни робота для устройства №1
  • input1_cmd_joint_pos_topic (по умолчанию: "ds4/joint_group_position_controller/command") - название входящего топика желаемого положения сочленений робота для устройства №1
  • input1_status_topic (по умолчанию: "ds4/cur_device") - название входящего топика статуса подключения устройства №1
  • input2_cmd_vel_topic (по умолчанию: "radiolink/cmd_vel") - название входящего топика желаемой скорости робота для устройства №2
  • input2_cmd_pose_topic (по умолчанию: "radiolink/cmd_pose") - название входящего топика желаемого положения и ориентации корпуса для устройства №2
  • input2_cmd_ef_pose_topic (по умолчанию: "radiolink/ef_position/command") - название входящего топика желаемого положения ступни робота для устройства №2
  • input2_cmd_joint_pos_topic (по умолчанию: "radiolink/joint_group_position_controller/command") - название входящего топика желаемого положения сочленений робота для устройства №2
  • input2_status_topic (по умолчанию: "radiolink/status") - название входящего топика статуса подключения устройства №2
  • input3_cmd_vel_topic (по умолчанию: "nav/cmd_vel") - название входящего топика желаемой скорости робота для устройства №3
  • input3_cmd_pose_topic (по умолчанию: "nav/cmd_pose") - название входящего топика желаемого положения и ориентации корпуса для устройства №3
  • input3_cmd_ef_pose_topic (по умолчанию: "nav/ef_position/command") - название входящего топика желаемого положения ступни робота для устройства №3
  • input3_cmd_joint_pos_topic (по умолчанию: "nav/joint_group_position_controller/command") -
  • input3_status_topic (по умолчанию: "nav/status") - название входящего топика желаемого положения сочленений робота для устройства №3
  • input4_cmd_vel_topic (по умолчанию: "gui/cmd_vel") - название входящего топика желаемой скорости робота для устройства №4
  • input4_cmd_pose_topic (по умолчанию: "gui/cmd_pose") - название входящего топика желаемого положения и ориентации корпуса для устройства №4
  • input4_cmd_ef_pose_topic (по умолчанию: "gui/ef_position/command") - название входящего топика желаемого положения ступни робота для устройства №4
  • input4_cmd_joint_pos_topic (по умолчанию: "gui/joint_group_position_controller/command") -
  • input4_status_topic (по умолчанию: "gui/status") - название входящего топика желаемого положения сочленений робота для устройства №4
  • output_cmd_vel_topic (по умолчанию: "cmd_vel") - название исходящего топика желаемой скорости робота
  • output_cmd_pose_topic (по умолчанию: "cmd_pose") - название исходящего топика желаемого положения и ориентации корпуса
  • output_cmd_ef_pose_topic (по умолчанию: "ef_position/command") - название исходящего топика желаемого положения ступни робота
  • output_cmd_joint_pos_topic (по умолчанию: "joint_group_position_controller/command") - название исходящего топика желаемого положения сочленений робота
  • output_status_topic (по умолчанию: "cur_device") - название исходящего топика, отображающего номер подключенного сейчас наиболее приоритетного устройства

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

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

У входящих топиков, в зависимости от устройства, стоят разные приставки. При необходимости подключения иного устройства, вы можете переименовать приставки нужных вам топиков в config-файле на те, который нужны именно вам. Список приставок по умолчанию:

  • head - передача данных с джойстика Sony Dualshock 4
  • radiolink - передача данныз с джойстика Radiolink T8S
  • nav - передача данных с модуля навигации
  • gui - передача данный из ПО Robogui

В остальной части, топики дублируют свои имена и функции с исходящими, кроме топика status (std_msgs/Bool) . Он необходим для отображения информации о подключении устройства: True - устройство подключено, False - устройство не подключено.

Приоритет устройств идет в порядке возрастания по списку списку. Т.е., если у вас одновременно включены джойстик Radiolink T8S и ПО Robogui, то cmd_commutator на выходе будет давать данные из джойстика, так как у него больший приоритет.

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

  • cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота
  • cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота
  • ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота
  • joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота
  • cur_device (std_msgs/UInt8) - текущее подключенное устройство. 1 - Dualshock 4, 2 - Radiolink T8S, 3 - модуль навигации, 4 - Robogui, 0 - ни одного устройства.