From 812c0365c73ce6111def9d6ea17c97330be0b52d Mon Sep 17 00:00:00 2001 From: arman Date: Mon, 6 Jul 2026 19:29:11 +0330 Subject: [PATCH] added lidar, radar and colission --- .gitignore | 2 + src/__main__.py | 32 ++++- src/__pycache__/__main__.cpython-37.pyc | Bin 0 -> 2696 bytes .../simulator_handler.cpython-37.pyc | Bin 0 -> 9821 bytes src/simulator_handler.py | 109 ++++++++++++++---- .../vehicle_command.cpython-37.pyc | Bin 0 -> 1061 bytes 6 files changed, 115 insertions(+), 28 deletions(-) create mode 100644 .gitignore create mode 100644 src/__pycache__/__main__.cpython-37.pyc create mode 100644 src/__pycache__/simulator_handler.cpython-37.pyc create mode 100644 src/utils/__pycache__/vehicle_command.cpython-37.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c559e30 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv/ +src/data/ diff --git a/src/__main__.py b/src/__main__.py index 27c57da..b0a7e1c 100644 --- a/src/__main__.py +++ b/src/__main__.py @@ -1,12 +1,22 @@ -import time +import glob +import os +import sys import random -import carla +import time +try: + sys.path.append(glob.glob( + r'F:\carla\WindowsNoEditor\PythonAPI\carla\dist\carla-0.9.8-py3.7-win-amd64.egg' + )[0]) +except IndexError: + raise RuntimeError("Couldn't find the CARLA egg.") + +import carla from src.simulator_handler import SimulatorHandler from src.utils.vehicle_command import VehicleCommand class SimulationHyperParameters: - def __init__(self, simulation_time: float = 30, town_name: str = "Town10HD_Opt", + def __init__(self, simulation_time: float = 30, town_name: str = "Town01", ego_spawn_index: int = random.randint(0, 30), weather: carla.WeatherParameters = carla.WeatherParameters.ClearNoon, use_autopilot: bool = True): # Town choice are Mine_01 and Town10HD_Opt self.simulation_time = simulation_time @@ -23,6 +33,7 @@ def __init__(self, simulation_time: float = 30, town_name: str = "Town10HD_Opt", # Simulation hyperparameters sim_parameters = SimulationHyperParameters() + simulator_handler = SimulatorHandler(town_name=sim_parameters.town_name) simulator_handler.spawn_vehicle(spawn_index=sim_parameters.ego_spawn_index) simulator_handler.set_weather(weather=sim_parameters.weather) @@ -32,8 +43,15 @@ def __init__(self, simulation_time: float = 30, town_name: str = "Town10HD_Opt", instance_segmentation_cam = simulator_handler.instance_segmentation_cam() gnss_sensor = simulator_handler.gnss() imu_sensor = simulator_handler.imu() + lidar_sensor = simulator_handler.lidar() + radar_sensor = simulator_handler.radar() + collision_sensor = simulator_handler.collision() + # listen to sensor data + lidar_sensor.listen(lambda data: simulator_handler.lidar_callback(data)) + radar_sensor.listen(lambda data: simulator_handler.radar_callback(data)) + collision_sensor.listen(lambda event: simulator_handler.collision_callback(event)) rgb_cam.listen(lambda image: simulator_handler.rgb_cam_callback(image)) instance_segmentation_cam.listen(lambda image: simulator_handler.instance_segmentation_callback(image)) imu_sensor.listen(lambda imu: simulator_handler.imu_callback(imu)) @@ -58,4 +76,10 @@ def __init__(self, simulation_time: float = 30, town_name: str = "Town10HD_Opt", # break time.sleep(sim_parameters.simulation_time) # time.sleep is a blocking operation for letting the simulation run - simulator_handler.terminate() # cleanup the script and remove actors + # at the very end of src/__main__.py + import os + + simulator_handler.terminate() + print("Exiting.") + os._exit(0) # hard-exit: skips interpreter teardown that triggers the fatal error + diff --git a/src/__pycache__/__main__.cpython-37.pyc b/src/__pycache__/__main__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6678f87f7be8c747b138a9e0da356d279ce9c5f5 GIT binary patch literal 2696 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 literal 0 HcmV?d00001