zig build run -- \
./zig-out/lib/libauv_stationary_sim.so \
prequalify_coco \
./auvs/stationary_sim/auv.jsonBuild the sender and simulator:
zig build teleop-sender
zig buildRun the teleop mission:
zig build run -- \
./zig-out/lib/libauv_stationary_sim.so \
teleop \
./auvs/stationary_sim/auv.jsonIn another terminal, start the sender:
./zig-out/bin/teleop_sender 8080The viewer needs the ZED SDK and CUDA. CMake fetches raylib.
cmake -S tools/viewer -B tools/viewer/build
cmake --build tools/viewer/build
./tools/viewer/build/viewerIt listens for binary telemetry on UDP 5600. The ZED H264 stream at 127.0.0.1:5610 is optional: pass none to follow simulation telemetry without a camera. With the window focused, it sends the teleop command to 127.0.0.1:8080.
./tools/viewer/build/viewer [telemetry_port] [video] [teleop_port]
./tools/viewer/build/viewer 5600 noneHold keys to command a body translation direction: W/S surge, A/D sway, R/F heave. Left/Right yaws about world +Z; Up/Down pitches about body X; I/K rolls about body +Y. Each packet is 28 bytes: three little-endian floats of body translation, then a world orientation quaternion x, y, z, w. Identity is level with the camera along body +Y. Releasing the translation keys leaves translation uncommanded. The orientation keys still apply.
zig build -Dstonefish run -- \
./zig-out/lib/libauv_stonefish_sim.so \
prequalify_robosub \
./auvs/stonefish_sim/auv.jsonzig build -Dzed
zig build -Dzed run -- \
./zig-out/lib/libauv_proteus_hwd.so \
prequalify_coco \
./auvs/proteus_hwd/auv.json