The Robot Remote Control is a component of the Isaac AMR Navigation Stack. It can be used to remote control a robot with a gamepad. It can only remote control robots that can consume a differential base control input, ie. linear and angular velocity.
In addition to pure remote control, this extension can also be used to manually override a robot that is moving autonomously with the navigation stack and it can be used to implement a deadman switch on robot (s.t. a robot only moves when a button is pressed).
Joystick State: Message containing the state of the joystick/gamepad. See Linux Joystick.
Automoy Command: Optionally the command from an autonomy stack can be provided. The remote control will either forward this command or override it with the values from the joystick.
Command: The command containing linear and angular velocity that can be sent to the robot.
The Robot Remote Control can also be used on a robot that is using the autonomy stack. In that case per default the robot remote control will forward the autonomy commands to the robot. But if the joysticks on the gamepad are used / touched the remote control will override the autonomy commands and send the manual commands from the gamepad instead.
When the deadman switch mode is enabled the robot will only move when the specified deadman switch button is pressed. This holds for both autonomous or manual mode, meaning that for the robot to move the button needs to be pressed, both in manual or autonomous mode.
NvIsaacRobotRemoteControlExtension
Reads Joystick messages and generates base commands
nvidia::isaac::RobotRemoteControl
Codelet to translate from joystick messages to differential base commands. (Deprecated, will be replaced by JoystickToCommandMapper)
Parameters:
- name
- lookup_name
- description
- flags
- type
- default
Joystick State
rx_joystick_state
Current state of the Joystick
GXF_PARAMETER_FLAGS_OPTIONAL
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Autonomy Command
rx_autonomy_command
Command calculated by the autonomy stack
GXF_PARAMETER_FLAGS_OPTIONAL
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Command Output Channel
tx_command
Target differential drive robot state
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Memory Allocator
allocator
Handle to the memory allocator used for output messages
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Atlas Frontend
atlas
Handle to atlas frontend to access pose tree
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Linear Speed Limit
speed_limit_linear
Maximum linear speed allowed to travel at (m/s)
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_FLOAT64
1.1
- name
- lookup_name
- description
- flags
- type
- default
Angular Speed Limit
speed_limit_angular
Maximum angular speed allowed to rotate at (rad/s)
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_FLOAT64
1.0
- name
- lookup_name
- description
- flags
- type
- default
Timeout (in seconds)
timeout_s
Duration for which a received message (e.g. joystick state or autonomy command is valid. If nothing is valid a null command is used instead.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_FLOAT64
N/A
- name
- lookup_name
- description
- flags
- type
- default
Linear Speed Joystick Axis
linear_speed_axis
Which axis or stick to use for linear speed control
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Angular Speed Joystick Axis
angular_speed_axis
Which axis or stick to use for angular speed control
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Deadman Switch Button Index
deadman_switch_button_idx
Index of the button used as a deadman switch. Is only used if enable_deadman_switch is true.
GXF_PARAMETER_FLAGS_OPTIONAL
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Invert Linear Speed Axis Values
invert_linear_speed_axis
Use to invert the direction for the linear speed control stick
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_BOOL
False
- name
- lookup_name
- description
- flags
- type
- default
Invert Angular Speed Axis Values
invert_angular_speed_axis
Use to invert the direction for the angular speed control stick
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_BOOL
False
- name
- lookup_name
- description
- flags
- type
- default
Enable Deadman Switch
enable_deadman_switch
Use to enable/disable the deadman switch. If true the button specied with deadman_switch_button_idx has to be pressed for the robot to move.
GXF_PARAMETER_FLAGS_DYNAMIC
GXF_PARAMETER_TYPE_BOOL
True
- name
- lookup_name
- description
- flags
- type
- default
Robot Frame
robot_frame
Robot pose frame.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
nvidia::isaac::JoystickToCommandMapper
Codelet to translate from joystick messages to differential base commands.
Parameters:
- name
- lookup_name
- description
- flags
- type
- default
Joystick State
rx_joystick_state
Current state of the Joystick
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Command Output Channel
tx_command
Message channel containing the produced command.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Toggle Mode Signal Channel
tx_toggle_mode
Message channel that is used to trigger a mode switch.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Deadman Switch Heartbeat Channel
tx_deadman_switch_heartbeat
Message channel that is used to send the deadman switch’s heartbeat
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Memory Allocator
allocator
N/A
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Composite Schema Server
composite_schema_server
N/A
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_HANDLE
N/A
- name
- lookup_name
- description
- flags
- type
- default
Linear Speed Joystick Axis
linear_speed_axis
Which axis or stick to use for linear speed control
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Reverse Linear Speed Axis Values
reverse_linear_speed_axis
Use to reverse the direction for the linear speed control stick
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_BOOL
False
- name
- lookup_name
- description
- flags
- type
- default
Linear Speed Limit
speed_limit_linear
Maximum linear speed allowed to travel at (m/s)
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_FLOAT64
1.1
- name
- lookup_name
- description
- flags
- type
- default
Angular Speed Joystick Axis
angular_speed_axis
Which axis or stick to use for angular speed control
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Reverse Angular Speed Axis Values
reverse_angular_speed_axis
Use to reverse the direction for the angular speed control stick
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_BOOL
False
- name
- lookup_name
- description
- flags
- type
- default
Angular Speed Limit
speed_limit_angular
Maximum angular speed allowed to rotate at (rad/s)
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_FLOAT64
1.0
- name
- lookup_name
- description
- flags
- type
- default
Index of the button used to toggle the mode.
toggle_mode_button
Which button is used to toggle the mode switch between autonomy and manual.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A
- name
- lookup_name
- description
- flags
- type
- default
Index of the button used for the deadman switch.
deadman_switch_button
Which button is required to stay pressed when using the deadman switch.
GXF_PARAMETER_FLAGS_NONE
GXF_PARAMETER_TYPE_INT32
N/A