upkie 7.0.0
Open-source wheeled biped robots
|
Sensor for a joystick controller. More...
#include <Joystick.h>
Public Member Functions | |
Joystick (const std::string &device_path="/dev/input/js0") | |
Open the device file. More... | |
~Joystick () override | |
Close device file. | |
bool | present () const noexcept |
Check if the device file was opened successfully. | |
std::string | prefix () const noexcept final |
Prefix of output in the observation dictionary. More... | |
void | write (Dictionary &output) final |
Write output to a dictionary. More... | |
![]() | |
virtual | ~Sensor () |
Destructor is virtual to deallocate lists of observers properly. | |
virtual std::string | prefix () const noexcept |
Prefix of output in the observation dictionary. More... | |
virtual void | write (Dictionary &observation) |
Write output to a dictionary. More... | |
Sensor for a joystick controller.
Axes are the same for PS4 and Xbox controllers, but buttons differ slightly.
This sensor has the following outputs:
Key | Type | Description |
---|---|---|
cross_button | float | bottom button (cross on PS4, A on Xbox) |
square_button | float | left button (square on PS4, Y on Xbox) |
triangle_button | float | top button (triangle on PS4, X on Xbox) |
left_button | float | L1 on PS4, L on Xbox |
right_button | float | R1 on PS4, R on Xbox |
Note that the red button (circle on PS4, B on Xbox) serves as emergency stop 🚨: when it is pressed, the spine will terminate.
Key | Type | Description |
---|---|---|
left_axis | [float, float] | left analog joystick |
right_axis | [float, float] | right analog joystick |
left_trigger | float | left trigger if there is one (L2 on PS4) |
right_trigger | float | right trigger if there is one (R2 on PS4) |
Key | Type | Description |
---|---|---|
pad_axis | [float, float] | directional pad |
upkie::cpp::sensors::Joystick::Joystick | ( | const std::string & | device_path = "/dev/input/js0" | ) |
Open the device file.
[in] | device_path | Path to the joystick device file. |
|
inlinefinalvirtualnoexcept |
Prefix of output in the observation dictionary.
Reimplemented from upkie::cpp::sensors::Sensor.
|
finalvirtual |
Write output to a dictionary.
[out] | output | Dictionary to write observations to. |
Reimplemented from upkie::cpp::sensors::Sensor.