This work extends a mobile-robot teleoperation study into outdoor and disaster-simulation environments. I built the software path from a Windows operator station to an Ubuntu NUC and Interbotix VX300S arm, then hardened it with authentication, replay protection, fail-safe neutral behavior, configuration tooling, and dependency-light tests.
Engineering contributions
- Read DualShock 4 input on Windows at a configurable 30 Hz and republish ROS 2 Joy messages at 50 Hz on Ubuntu
- Translate Windows and Pygame controller data into the Linux DualShock layout used by the Interbotix control stack
- Design a versioned JSON protocol with HMAC-SHA256 authentication, timestamps, sequence numbers, and per-run session IDs
- Reject tampered, stale, replayed, and retired-session packets while supporting safe sender restarts
- Implement touchpad dead-man control, joystick deadzones, disarmed neutral commands, and a 350 ms automatic neutral timeout
- Build a thread-safe UDP receiver with synchronized state, monotonic timeout tracking, and configurable network-test mode
- Externalize controller mappings through JSON and add an inspection utility for device-specific index differences
- Write tests for authenticated round trips, invalid keys, neutral translation, replay protection, and sender restarts
- Document setup and diagnostics across Windows, NetBird, Ubuntu, ROS 2, and Interbotix
- Add robotic-arm motion constraints, a 3D-printable mounting base, restricted-area warnings, and a VR teleoperation interface
System path
01DualShock 4
02Windows sender
03NetBird + UDP
04Ubuntu ROS 2 bridge
05VX300S arm
The repository is private, so this project is presented as a case study.