9.3.4. Console
C++ class is mtsIntuitiveResearchKitConsole.
9.3.4.1. General
console/power_offcisst: void command
ROS: subscriber
std_msgs/EmptydVRK specific: trigger power off sequence for the whole system.
console/power_oncisst: void command
ROS: subscriber
std_msgs/EmptydVRK specific: trigger power on sequence for the whole system. If some arms are in
FAULTstate, this method will firstdisablethem.
console/homecisst: void command
ROS: subscriber
std_msgs/EmptydVRK specific: triggers homing procedure for the whole system, including powering if the system is not yet powered. Note that “homing” means findind where the arm is. It doesn’t always imply moving to the zero position.
console/cameracisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the console assumes it should tele-operate the ECM if all conditions are met: operator is present and tele-operation is enabled. When in camera mode, the console disables the PSM tele-operation components (if any) and enables the ECM tele-operation component (if present).
console/clutchcisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the console assumes it should clutch the active tele-operation components. The console component simple passes the clutch state to the tele-operation components who then have to handle the clutch.
console/operator_presentcisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the console assumes the operator is present (either through a dead man switch/foot pedal, head sensor or emulated).
console/emulate_cameracisst: write command
prmEventButtonROS: subscriber
sensor_msgs/JoydVRK specific: emulate the camera pedal press.
console/emulate_clutchcisst: write command
prmEventButtonROS: subscriber
sensor_msgs/JoydVRK specific: emulate the clutch pedal press.
console/emulate_operator_presentcisst: write command
prmEventButtonROS: subscriber
sensor_msgs/JoydVRK specific: emulate the operator presence sensor.
9.3.4.2. Tele-operation
console/teleop/enabledcisst: event write
boolROS: publisher
std_msgs/BooldVRK specific: indicate if the tele-operation is enabled at the console level.
console/teleop/enablecisst: write command
boolROS: subscriber
std_msgs/BooldVRK specific: enable or disable the tele-operation at the console level. When tele-operation is enabled for the console, the console will manage with tele-operation components should be enabled using the following logic:
Tele-operation components must be declared in the console JSON configuration file:
MTMR-PSM1,MTML-PSM2,MTMR-PSM3,MTML-MTMR-ECM…For PSM tele-operation, the pair (e.g.
MTMR-PSM1) also needs to be selected (there should be one pair per MTM selected by default when the console starts).Finally the console determines which type of tele-operation component should be enabled based on the camera input:
If the camera input is off (i.e. camera foot pedal not pressed), the console will enable the PSM tele-operation components that have been selected.
If the camera input is on, the console will enable the ECM tele-operation component (if declared in the console configuration file)
When a tele-operation is enabled, it will perform its own logic before getting into
followingmode…
console/teleop/scalecisst: event write
doubleROS: publisher
std_msgs::Float64dVRK specific: last scale sent to all tele-operation components. If a scale is set directly for a specific tele-operation component (i.e. not using the console tele-operation scale), said component can potentially use a different scale from the others.
console/teleop/set_scalecisst: write command
doubleROS: subscriber
std_msgs/Float64dVRK specific: set the scale for all the tele-operation components declared in the console configuration file.
console/teleop/teleop_psm_selectedcisst: event write
prmKeyValueROS: publisher
diagnostic_msgs/KeyValuedVRK specific: indicate which pairs of MTM-PSMs are currently selected (PSM tele-operation components).
console/teleop/teleop_psm_unselectedcisst: event write
prmKeyValueROS: publisher
diagnostic_msgs/KeyValuedVRK specific: indicate which pairs of MTM-PSMs are currently unselected (PSM tele-operation components).
console/teleop/cycle_teleop_psm_by_mtmcisst: write command
std::stringROS: subscriber
std_msgs/StringdVRK specific: cycle PSM tele-operation for a given MTM. For example, if the console has the pairs
MTML-PSM2andMTML-PSM3andMTML-PSM2is currently selected, usingcycle_teleop_by_mtm(MTML)will unselectMTML-PSM2and selectMTML-PSM3. There is a special case hard-coded in the console code to mimic the behavior of a clinical da Vinci system. A quick-tap on the clutch pedal will trigger acycle_teleop_psm_by_mtmfor the MTM that has been used for two PSM tele-operations declared in the console configuration file.
console/teleop/select_teleop_psmcisst: write command
prmKeyValueROS: subscriber
diagnostic_msgs/KeyValuedVRK specific: select a specific MTM-PSM tele-operation. The KeyValue message allows to send two strings, i.e. the names of the MTM and PSM for the tele-operation component to select. If the MTM is currently associated to a selected pair, said pair will first be unselected. If the second value of the message is an empty string, the command deactivates the tele-operation currently using the MTM (first value in message)
9.3.4.3. Foot pedals
footpedals/clutchcisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal clutch is released (
0), pressed (1) or a quick tap happened (2).
footpedals/cameracisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal camera is released (
0), pressed (1) or a quick tap happened (2).
footpedals/cam_minuscisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal camera - is released (
0), pressed (1) or a quick tap happened (2).
footpedals/cam_pluscisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal camera + is released (
0), pressed (1) or a quick tap happened (2).
footpedals/bicoagcisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal bicoag is released (
0), pressed (1) or a quick tap happened (2).
footpedals/coagcisst: event write
prmEventButtonROS: publisher
sensor_msgs/JoydVRK specific: indicate if the physical pedal coag is released (
0), pressed (1) or a quick tap happened (2).