first commit

This commit is contained in:
2026-07-28 23:35:42 +07:00
commit 08eb7a6b78
22 changed files with 3559 additions and 0 deletions

35
configs/ackermann.py Normal file
View File

@@ -0,0 +1,35 @@
"""Config Ackermann (xe có bánh lái). Chỉnh số liệu theo robot thực tế."""
from mprim_config import RobotConfig, KinematicType
config = RobotConfig(
name="ackermann", # tên file output: ackermann.mprim
kinematic_type=KinematicType.ACKERMANN, # xe bánh lái -> nội suy cung tròn unicycle,
# có kiểm tra min_turning_radius
resolution_m=0.05, # [m] PHẢI khớp costmap resolution
numberofangles=16, # 16 góc heading -> 1 bước góc = 22.5 độ
forward_short_m=0.20, # [m] bước tiến ngắn (xe dài nên bước ngắn cũng dài hơn AMR)
forward_long_m=0.60, # [m] bước tiến dài
backward_m=0.20, # [m] bước lùi thẳng
min_turning_radius_m=0.45, # [m] bán kính quay tối thiểu VẬT LÝ, đo từ robot thật
turn_steps=(1,), # chỉ rẽ 22.5 độ mỗi primitive
turn_radius_m=0.70, # [m] cao hơn min_turning_radius làm dự phòng quantize; với
# lưới 5cm cần >= ~0.66 để cung không bị méo (validate
# sẽ cảnh báo nếu thiếu)
has_backward_prims=True, # cho phép lùi thẳng
has_backward_turn_prims=True, # xe bánh lái cần lùi + đánh lái để quay đầu
has_turn_in_place_prims=False, # xe Ackermann KHÔNG quay tại chỗ được
# SỐ NGUYÊN (SBPL đọc %d). Ackermann lùi tốn hơn nhiều (khó điều khiển, hạn chế tầm nhìn).
forwardcostmult=1, # tiến thẳng — mốc chuẩn
backwardcostmult=6, # lùi thẳng
forwardandturncostmult=3, # tiến + đánh lái
backwardandturncostmult=8, # lùi + đánh lái — đắt nhất, chỉ dành cho quay đầu
turninplacecostmult=5, # không dùng khi has_turn_in_place_prims=False
pose_spacing_m=0.05, # [m] khoảng cách pose trên path
)