This ROS 2 package allows you to control robots using a CRSF compatible remote control. Receiver should be connected to the robot's computer via USB-UART converter or be integrated as a hardware USB dongle. CRSF protocol parser is implemented based on the following specification.
teleop.launch.py
: Launches crsf_teleop_node node. Automatically respawns node if it exits. Node's namespace can be set using thenamespace
launch argument.
crsf_teleop.yaml
: Sets default parameter values for theteleop.launch.py
launch file.
Translates received CRSF commands to velocity commands for the robot.
The following channels are used for controlling the robot via the TX16S remote control:
- Channel 2 - Right gimbal up/down - forward/backward velocity
- Channel 4 - Left gimbal left/right - turning (angular) velocity
- Channel 5 - SF switch - emergency stop
- Channel 7 - SA switch (down position) - silence
cmd_vel
messages, allows other nodes to control the robot while enabling e_stop functionality - Channel 11 - SG switch - tristate switch, selects robot speed
/cmd_vel
[geometry_msgs/Twist]: Publishes velocity commands to the robot./link_status
[panther_crsf_teleop_msgs/LinkStatus]: Describes radio link status between the remote control and the robot. Parameters are described in the CRSF_FRAMETYPE_LINK_STATISTICS frame documentation.
hardware/e_stop_trigger
[std_srvs/Trigger]: Triggers an emergency stop.hardware/e_stop_reset
[std_srvs/Trigger]: Triggers an emergency stop reset.
serial_port
[string, default: /dev/ttyUSB0]: Serial port to which the CRSF receiver is connected.baudrate
[int, default: 576000]: Baudrate of the serial port.e_stop_republish
[bool, default: False]: Rebroadcasts asserted emergency stop signal once per second. Will override other emergency stop sources.enable_cmd_vel_silence_switch
[bool, default: False]: Enables remote to disable publishingcmd_vel
messages on demand. Can be used as a remote emergency stop when using other nodes to control the robot.linear_speed_presets
[double_array, default: [0.5, 1.0, 2.0]]: Selectable robot maximum linear speed forcmd_vel
topic.angular_speed_presets
[double_array, default: [0.5, 1.0, 2.0]]: Selectable robot maximum angular speed for thecmd_vel
topic.