9f2ead2138
Adds jerk-limited S-curve motion profiles, robust median-based odometry to reject wheel-lift encoder spikes, per-wheel current-based airborne/stall detection with pair-wise comparison to avoid false positives during normal curve turns, curved-turn blending for spin turns, and optional CSV telemetry logging. Fixes a bug where any right-stick input while driving forward would override left-stick curve steering. Raises max speed from 0.3 to 0.4 m/s. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.3 KiB
Bash
Executable File
37 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# 1-Click Launch Script for C++ 4WD Motor Control with Mid-360S LiDAR Avoidance
|
|
PORT="${1:-/dev/ttyUSB0}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
cd "$SCRIPT_DIR" || exit 1
|
|
|
|
echo "=================================================================="
|
|
echo " 🚀 ZLAC8015D 4WD + Livox Mid-360S 라이다 원클릭 런치 시스템"
|
|
echo "=================================================================="
|
|
|
|
# 1. USB Latency 1ms 단축
|
|
if [ -f "./set_low_latency.sh" ]; then
|
|
echo "[1/2] USB 시리얼 포트($PORT) 지연 시간 1ms 최적화 적용 중..."
|
|
./set_low_latency.sh "$PORT"
|
|
fi
|
|
|
|
# 2. C++ 바이너리 존재 여부 확인 및 컴파일
|
|
if [ ! -f "./xbox_motor_control_cpp" ]; then
|
|
echo "[2/2] C++ 바이너리 컴파일 진행 중 (make)..."
|
|
make
|
|
fi
|
|
|
|
echo "=================================================================="
|
|
echo " [시작] C++ 100Hz 초저지연 4WD 조이스틱 + 라이다 장애물 회피 시작 ($PORT)"
|
|
echo " - 라이다 기능 토글: Xbox 컨트롤러 X 버튼"
|
|
echo " - 정지/종료: B 버튼 또는 Ctrl+C"
|
|
echo "=================================================================="
|
|
|
|
# 3. C++ 4WD 프로그램 실행 (추가 인자 전달 가능)
|
|
if [ $# -gt 1 ]; then
|
|
./xbox_motor_control_cpp --port "$PORT" "${@:2}"
|
|
else
|
|
./xbox_motor_control_cpp --port "$PORT"
|
|
fi
|