-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.py
More file actions
114 lines (109 loc) · 5.2 KB
/
Copy pathsettings.py
File metadata and controls
114 lines (109 loc) · 5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
from pydantic import Field
from avlite.c60_apps.c64_settings_schema import SettingsSchema
class PluginSettingsSchema(SettingsSchema):
use_autoware_msgs: bool = Field(default=True, description="Use Autoware message types instead of JSON strings.")
localization_topic: str = Field(default="/localization/kinematic_state", description="Localization input topic.")
perception_topic: str = Field(
default="/perception/object_recognition/tracking/objects",
description="Perception input topic.",
)
trajectory_topic: str = Field(default="/planning/scenario_planning/trajectory", description="External trajectory input topic.")
control_cmd_topic: str = Field(default="/control/command/control_cmd", description="External control input topic.")
trajectory_out_topic: str = Field(default="/avlite/planning/trajectory", description="AVLite trajectory output topic.")
replan_tick_topic: str = Field(
default="/avlite/planning/replan_tick",
description="Empty heartbeat published each planner replan tick (FPS accounting).",
)
control_out_topic: str = Field(default="/avlite/control/control_cmd", description="AVLite control output topic.")
map_frame: str = Field(default="map", description="ROS map frame id.")
base_frame: str = Field(default="base_link", description="ROS base link frame id.")
collection_hz: float = Field(default=20.0, description="ROS data collection rate (Hz).")
sim_dt: float = Field(
default=0.02,
description=(
"Fixed simulation integration step (s) when pace_sim is true. "
"When pacing is off, integration uses clamped wall-clock Δt; this value still caps the max step."
),
)
perception_dt: float = Field(
default=0.1,
description=(
"Target perception period (s). Used when pace_perception is true; "
"ignored for rate when pacing is off (best-effort)."
),
)
replan_dt: float = Field(
default=0.1,
description=(
"Target replan period (s). Used when pace_replan is true; "
"ignored for rate when pacing is off (best-effort)."
),
)
control_dt: float = Field(
default=0.02,
description=(
"Target control recompute period (s). Used when pace_control is true; "
"when off, control runs best-effort and the last command is held between recomputes."
),
)
pace_perception: bool = Field(
default=True,
description="If true, throttle perception to perception_dt; if false, run best-effort every opportunity.",
)
pace_replan: bool = Field(
default=True,
description="If true, throttle replanning to replan_dt; if false, run best-effort every opportunity.",
)
pace_control: bool = Field(
default=True,
description=(
"If true, recompute control at control_dt; if false, recompute best-effort "
"and hold the last command on simulate steps in between."
),
)
pace_sim: bool = Field(
default=True,
description=(
"If true, integrate the world with fixed sim_dt; if false, use a free-run timer "
"and integrate with clamped wall-clock Δt."
),
)
call_replan_topic: str = Field(default="/avlite/exec/call_replan", description="Bool topic: enable planning replan.")
call_control_topic: str = Field(default="/avlite/exec/call_control", description="Bool topic: enable control loop.")
spawn_agent_topic: str = Field(default="/avlite/world/spawn_agent", description="JSON spawn command to world worker.")
reset_agents_topic: str = Field(default="/avlite/world/reset_agents", description="Bool topic: clear agents in world worker.")
teleport_ego_topic: str = Field(
default="/avlite/world/teleport_ego",
description="JSON teleport command to world worker.",
)
compute_planner: str = Field(
default="GreedyLatticePlanner",
description="Compute planner class for the ROS planner worker subprocess.",
)
compute_controller: str = Field(
default="StanleyController",
description="Compute controller class for the ROS controller worker subprocess.",
)
inprocess_world: bool = Field(
default=False,
description="Deprecated: world always runs in the world worker subprocess.",
)
world_gt_topic: str = Field(
default="/avlite/world/ground_truth",
description="Ground-truth agent feed from world worker to perception worker.",
)
lidar_topic: str = Field(
default="/avlite/world/lidar",
description="Simulated LiDAR point cloud from world worker (JSON String).",
)
global_plan_topic: str = Field(
default="/avlite/planning/global_plan",
description="Global plan update from main process to planner worker (JSON String).",
)
perception_viz_topic: str = Field(
default="/avlite/perception/pm_snapshot",
description="Full perception PM snapshot for main-process visualizer (JSON String).",
)
# Settings singleton. The plugin loader derives and assigns the YAML filepath from
# the plugin directory name, so none is declared here.
PluginSettings = PluginSettingsSchema()