36 lines
2.0 KiB
Python
36 lines
2.0 KiB
Python
"""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
|
|
)
|