Improve outdoor traction control and raise top speed
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>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
CXX = g++
|
CXX = g++
|
||||||
CXXFLAGS = -O3 -std=c++17 -Wall -Wextra
|
CXXFLAGS = -O3 -std=c++17 -Wall -Wextra -I/usr/local/include
|
||||||
LIBS = -lSDL2 -lpthread
|
LIBS = -lSDL2 -lpthread -llivox_lidar_sdk_shared
|
||||||
|
|
||||||
TARGET = xbox_motor_control_cpp
|
TARGET = xbox_motor_control_cpp
|
||||||
SRC = xbox_motor_control.cpp
|
SRC = xbox_motor_control.cpp
|
||||||
@@ -8,7 +8,7 @@ SRC = xbox_motor_control.cpp
|
|||||||
all: $(TARGET)
|
all: $(TARGET)
|
||||||
|
|
||||||
$(TARGET): $(SRC)
|
$(TARGET): $(SRC)
|
||||||
$(CXX) $(CXXFLAGS) $(SRC) $(LIBS) -o $(TARGET)
|
$(CXX) $(CXXFLAGS) $(SRC) -o $(TARGET) $(LIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(TARGET)
|
rm -f $(TARGET)
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"Mid360s": {
|
||||||
|
"lidar_net_info" : {
|
||||||
|
"cmd_data_port" : 56100,
|
||||||
|
"push_msg_port" : 56200,
|
||||||
|
"point_data_port": 56300,
|
||||||
|
"imu_data_port" : 56400,
|
||||||
|
"log_data_port" : 56500
|
||||||
|
},
|
||||||
|
"host_net_info" : [
|
||||||
|
{
|
||||||
|
"host_ip" : "192.168.1.5",
|
||||||
|
"cmd_data_port" : 56101,
|
||||||
|
"push_msg_port" : 56201,
|
||||||
|
"point_data_port": 56301,
|
||||||
|
"imu_data_port" : 56401,
|
||||||
|
"log_data_port" : 56501
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
-5
@@ -1,13 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# 1-Click Launch Script for C++ 4WD Motor Control
|
# 1-Click Launch Script for C++ 4WD Motor Control with Mid-360S LiDAR Avoidance
|
||||||
PORT="${1:-/dev/ttyUSB0}"
|
PORT="${1:-/dev/ttyUSB0}"
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
cd "$SCRIPT_DIR" || exit 1
|
cd "$SCRIPT_DIR" || exit 1
|
||||||
|
|
||||||
echo "=================================================================="
|
echo "=================================================================="
|
||||||
echo " 🚀 ZLAC8015D 4WD C++ 초저지연 모터 제어 원클릭 런치 시스템"
|
echo " 🚀 ZLAC8015D 4WD + Livox Mid-360S 라이다 원클릭 런치 시스템"
|
||||||
echo "=================================================================="
|
echo "=================================================================="
|
||||||
|
|
||||||
# 1. USB Latency 1ms 단축
|
# 1. USB Latency 1ms 단축
|
||||||
@@ -23,8 +23,14 @@ if [ ! -f "./xbox_motor_control_cpp" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "=================================================================="
|
echo "=================================================================="
|
||||||
echo " [시작] C++ 100Hz 초저지연 4WD 조이스틱 제어 시작 ($PORT)"
|
echo " [시작] C++ 100Hz 초저지연 4WD 조이스틱 + 라이다 장애물 회피 시작 ($PORT)"
|
||||||
|
echo " - 라이다 기능 토글: Xbox 컨트롤러 X 버튼"
|
||||||
|
echo " - 정지/종료: B 버튼 또는 Ctrl+C"
|
||||||
echo "=================================================================="
|
echo "=================================================================="
|
||||||
|
|
||||||
# 3. C++ 4WD 프로그램 실행
|
# 3. C++ 4WD 프로그램 실행 (추가 인자 전달 가능)
|
||||||
./xbox_motor_control_cpp --port "$PORT"
|
if [ $# -gt 1 ]; then
|
||||||
|
./xbox_motor_control_cpp --port "$PORT" "${@:2}"
|
||||||
|
else
|
||||||
|
./xbox_motor_control_cpp --port "$PORT"
|
||||||
|
fi
|
||||||
|
|||||||
+1135
-476
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Reference in New Issue
Block a user