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 - ни одного устройства.