From 0ecb9c17571531f7488aee75ac8d44ce3124a333 Mon Sep 17 00:00:00 2001 From: David Gasinski Date: Fri, 1 Aug 2025 15:51:58 +0100 Subject: [PATCH] bunch of bug fixes --- aw_scenario_runner.py | 12 ++++++++++-- config.yaml | 5 +++-- example_scenario.json | 5 +++-- srunner/autoagents/autoware_agent.py | 13 ++++++------- srunner/objects/ego_vehicle.py | 2 ++ srunner/objects/sensors.py | 2 +- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/aw_scenario_runner.py b/aw_scenario_runner.py index 6089838..d6ca70a 100644 --- a/aw_scenario_runner.py +++ b/aw_scenario_runner.py @@ -263,9 +263,17 @@ def main(): logger.setLevel(logging.INFO) + log_formatter = logging.Formatter(log_config["log_format"]) + log_path = LogUtil.create_log_file(log_config["path"]) - logger.addHandler(logging.FileHandler(log_path, encoding="utf-8")) - logger.addHandler(logging.StreamHandler(sys.stdout)) + fh = logging.FileHandler(log_path, encoding="utf-8") + sh = logging.StreamHandler(sys.stdout) + + fh.setFormatter(log_formatter) + sh.setFormatter(log_formatter) + + logger.addHandler(fh) + logger.addHandler(sh) # reload world and sync must be present when running agent-based route scenarios scenario_runner = None diff --git a/config.yaml b/config.yaml index 66f3885..f13ae8d 100644 --- a/config.yaml +++ b/config.yaml @@ -1,6 +1,7 @@ log: path: 'logs/' clear_old_logs: true + log_format: '[%(levelname)s] [%(asctime)s] [%(message)s] [%(filename)s]:[%(lineno)d]' carla: host: 127.0.0.1 port: 2000 @@ -8,10 +9,10 @@ carla: sync: true fixed_delta_seconds: 0.05 # update rate 1 / FPS traffic_manager: - active: false + active: true sync: true # must be the same as carla sync seed: 0 - port: 8000 + port: 8001 scenario_runner: debug: false dev_mode: false diff --git a/example_scenario.json b/example_scenario.json index b66d2ed..384de2e 100644 --- a/example_scenario.json +++ b/example_scenario.json @@ -8,6 +8,7 @@ "weather": { "route_percentage": 0.0, "precipitation": 100.0, + "cloudiness": 0.0, "precipitation_deposits": 100.0, "wetness": 100.0, "wind_intensity": 100.0, @@ -18,8 +19,9 @@ }, { "weather": { - "route_percentage": 50.0, + "route_percentage": 100.0, "precipitation": 0.0, + "cloudiness": 0.0, "precipitation_deposits": 0.0, "wetness": 0.0, "wind_intensity": 0.0, @@ -130,7 +132,6 @@ { "scenario": { "town": "Town01", - "route-id": 0, "ego_vehicle": { "x": 312, "y": 129, diff --git a/srunner/autoagents/autoware_agent.py b/srunner/autoagents/autoware_agent.py index 3416c54..c46be2f 100644 --- a/srunner/autoagents/autoware_agent.py +++ b/srunner/autoagents/autoware_agent.py @@ -86,12 +86,11 @@ def set_route(self) -> None: self.waypoints_world = self._global_plan_world_coord[:-1] # reinitialise localization - logger.info("called localise") - # self.autoware_node.request_localize() # None uses GNSS + logger.info("Localising Autoware agent...") + self.autoware_node.request_localize() # None uses GNSS - logger.info("called clear route") - # clear route - # self.route_node.request_clear_route() + logger.info("Clearing route...") + self.route_node.request_clear_route() def _convert_to_waypoint(self, point): """Returns a waypoint @@ -121,7 +120,7 @@ def run_step(self) -> None: """Tick method containing all logic based on autoware state""" self.counter += 1 if self.counter % 20 == 0: - logger.info("1 second") + logger.info("Ticked 1 second") if not self.agent_set_route: self.set_route() @@ -135,7 +134,7 @@ def run_step(self) -> None: waypoints.append( self._convert_to_waypoint(waypoint).autoware_from_world_coords() ) - self.route_node.publish_route(goal_pose, waypoints) + self.route_node.request_route(goal_pose, waypoints) self.autoware_state.sent_route = True # check if the current route is set diff --git a/srunner/objects/ego_vehicle.py b/srunner/objects/ego_vehicle.py index ebb671c..3253ddc 100644 --- a/srunner/objects/ego_vehicle.py +++ b/srunner/objects/ego_vehicle.py @@ -36,6 +36,8 @@ def spawn(self) -> carla.Actor: self.ego_model, self.ego_spawn, self.ego_name ) + CarlaDataProvider.get_world().tick() + if self._actor is None: logger.warning( "Failed to spawn EgoVehicle. This is likely an issue with CARLA." diff --git a/srunner/objects/sensors.py b/srunner/objects/sensors.py index 42b3968..5334872 100644 --- a/srunner/objects/sensors.py +++ b/srunner/objects/sensors.py @@ -25,7 +25,7 @@ def _spawn(self, bp_library, vehicle) -> None: sensor_bp.set_attribute(param, str(getattr(self, param))) CarlaDataProvider.get_world().spawn_actor(sensor_bp, self.spawn, vehicle) - CarlaDataProvider.get_world().wait_for_tick() + CarlaDataProvider.get_world().tick() def serealize(self): return self.type, self.id