Control Raph Rover with a Gamepad Controller
Raph Rover can be controlled using a gamepad controller either through the Web
UI or by using the joy_teleop node from
raph_teleop
ROS package.
Running the teleop node​
To control Raph Rover using a gamepad controller with the joy_teleop node, you
will need to have ROS 2 installed and set up on your system. You will need
raph_teleop and raph_interfaces packages installed:
sudo apt install ros-${ROS_DISTRO}-raph-teleop ros-${ROS_DISTRO}-raph-interfaces
Once you have the necessary packages installed, you can run the joy_teleop
node using the following command:
ros2 launch raph_teleop joy_teleop.launch.xml
Provided that your gamepad controller is properly connected and recognized by your system, you should be able to control Raph Rover using the gamepad inputs.
You can launch joy_teleop node with custom configuration. You can see all the
available parameters
here.
To launch the node with a custom configuration file, use the following command:
ros2 launch raph_teleop joy_teleop.launch.xml joy_config_file:=/path/to/your/config.yaml
Using the gamepad in the Web UI​
The Web UI allows the gamepad to connect automatically when an input is detected. To use the gamepad in the Web UI, simply connect your gamepad controller to your computer and interact with it.
After your first input from the gamepad, you should see a Gamepad connected
message in the Web UI.
The Web UI will recognize the gamepad inputs and allow you to control Raph Rover
accordingly. Once you click Enable driving button in the menu the commands
from the gamepad will be sent to the rover and you can start driving it around.
Gamepad button mappings​
Gamepad button mappings are the same for both the Web UI and the joy_teleop
node.


If you are using a different gamepad controller than the Xbox One, the button mappings may differ. However for most controllers, the corresponding buttons should be in the same positions as on the diagram above.
When using Xbox controller on Linux with Firefox browser, X and Y buttons are swapped due to an existing bug in Firefox.