|
26 | 26 | import yaml
|
27 | 27 |
|
28 | 28 |
|
29 |
| -def overwrite_config(param_dict, launch_config_name, node_params_name, context): |
30 |
| - if LaunchConfiguration(launch_config_name).perform(context) != "": |
31 |
| - param_dict[node_params_name] = LaunchConfiguration(launch_config_name).perform(context) |
32 |
| - |
33 |
| - |
34 | 29 | def launch_setup(context, *args, **kwargs):
|
35 | 30 | # load parameter files
|
36 | 31 | param_file = LaunchConfiguration("param_file").perform(context)
|
37 | 32 | with open(param_file, "r") as f:
|
38 | 33 | laserscan_based_occupancy_grid_map_node_params = yaml.safe_load(f)["/**"]["ros__parameters"]
|
39 |
| - overwrite_config( |
40 |
| - laserscan_based_occupancy_grid_map_node_params, |
41 |
| - "map_origin", |
42 |
| - "gridmap_origin_frame", |
43 |
| - context, |
44 |
| - ) |
45 |
| - overwrite_config( |
46 |
| - laserscan_based_occupancy_grid_map_node_params, "scan_origin", "scan_origin_frame", context |
47 |
| - ) |
| 34 | + |
| 35 | + updater_param_file = LaunchConfiguration("updater_param_file").perform(context) |
| 36 | + with open(updater_param_file, "r") as f: |
| 37 | + occupancy_grid_map_updater_params = yaml.safe_load(f)["/**"]["ros__parameters"] |
48 | 38 |
|
49 | 39 | composable_nodes = [
|
50 | 40 | ComposableNode(
|
51 | 41 | package="pointcloud_to_laserscan",
|
52 | 42 | plugin="pointcloud_to_laserscan::PointCloudToLaserScanNode",
|
53 | 43 | name="pointcloud_to_laserscan_node",
|
54 | 44 | remappings=[
|
55 |
| - ("~/input/pointcloud", LaunchConfiguration("input/obstacle_pointcloud")), |
56 |
| - ("~/output/laserscan", LaunchConfiguration("output/laserscan")), |
57 |
| - ("~/output/pointcloud", LaunchConfiguration("output/pointcloud")), |
| 45 | + ( |
| 46 | + "~/input/pointcloud", |
| 47 | + LaunchConfiguration("input/obstacle_pointcloud"), |
| 48 | + ), |
| 49 | + ( |
| 50 | + "~/output/laserscan", |
| 51 | + LaunchConfiguration("output/laserscan"), |
| 52 | + ), |
| 53 | + ( |
| 54 | + "~/output/pointcloud", |
| 55 | + LaunchConfiguration("output/pointcloud"), |
| 56 | + ), |
58 | 57 | ("~/output/ray", LaunchConfiguration("output/ray")),
|
59 | 58 | ("~/output/stixel", LaunchConfiguration("output/stixel")),
|
60 | 59 | ],
|
@@ -90,12 +89,19 @@ def launch_setup(context, *args, **kwargs):
|
90 | 89 | name="occupancy_grid_map_node",
|
91 | 90 | remappings=[
|
92 | 91 | ("~/input/laserscan", LaunchConfiguration("output/laserscan")),
|
93 |
| - ("~/input/obstacle_pointcloud", LaunchConfiguration("input/obstacle_pointcloud")), |
94 |
| - ("~/input/raw_pointcloud", LaunchConfiguration("input/raw_pointcloud")), |
| 92 | + ( |
| 93 | + "~/input/obstacle_pointcloud", |
| 94 | + LaunchConfiguration("input/obstacle_pointcloud"), |
| 95 | + ), |
| 96 | + ( |
| 97 | + "~/input/raw_pointcloud", |
| 98 | + LaunchConfiguration("input/raw_pointcloud"), |
| 99 | + ), |
95 | 100 | ("~/output/occupancy_grid_map", LaunchConfiguration("output")),
|
96 | 101 | ],
|
97 | 102 | parameters=[
|
98 | 103 | laserscan_based_occupancy_grid_map_node_params,
|
| 104 | + occupancy_grid_map_updater_params, |
99 | 105 | {
|
100 | 106 | "input_obstacle_pointcloud": LaunchConfiguration("input_obstacle_pointcloud"),
|
101 | 107 | "input_obstacle_and_raw_pointcloud": LaunchConfiguration(
|
@@ -148,24 +154,27 @@ def add_launch_arg(name: str, default_value=None):
|
148 | 154 | add_launch_arg("use_intra_process", "false"),
|
149 | 155 | add_launch_arg("input/obstacle_pointcloud", "no_ground/oneshot/pointcloud"),
|
150 | 156 | add_launch_arg("input/raw_pointcloud", "concatenated/pointcloud"),
|
151 |
| - add_launch_arg("map_origin", "base_link"), |
152 |
| - add_launch_arg("sensor_origin", "base_link"), |
153 | 157 | add_launch_arg("output", "occupancy_grid"),
|
154 | 158 | add_launch_arg("output/laserscan", "virtual_scan/laserscan"),
|
155 | 159 | add_launch_arg("output/pointcloud", "virtual_scan/pointcloud"),
|
156 | 160 | add_launch_arg("output/ray", "virtual_scan/ray"),
|
157 | 161 | add_launch_arg("output/stixel", "virtual_scan/stixel"),
|
158 |
| - add_launch_arg("input_obstacle_pointcloud", "false"), |
159 |
| - add_launch_arg("input_obstacle_and_raw_pointcloud", "true"), |
160 | 162 | add_launch_arg(
|
161 | 163 | "param_file",
|
162 | 164 | get_package_share_directory("probabilistic_occupancy_grid_map")
|
163 | 165 | + "/config/laserscan_based_occupancy_grid_map.param.yaml",
|
164 | 166 | ),
|
| 167 | + add_launch_arg( |
| 168 | + "updater_type", |
| 169 | + "binary_bayes_filter", |
| 170 | + ), |
| 171 | + add_launch_arg( |
| 172 | + "updater_param_file", |
| 173 | + get_package_share_directory("probabilistic_occupancy_grid_map") |
| 174 | + + "/config/updater.param.yaml", |
| 175 | + ), |
165 | 176 | add_launch_arg("use_pointcloud_container", "false"),
|
166 | 177 | add_launch_arg("container_name", "occupancy_grid_map_container"),
|
167 |
| - add_launch_arg("map_origin", ""), |
168 |
| - add_launch_arg("scan_origin", ""), |
169 | 178 | set_container_executable,
|
170 | 179 | set_container_mt_executable,
|
171 | 180 | ]
|
|
0 commit comments