33import numpy as np
44from src .main_carla_simulator import CarlaSimulator
55from src .config import X_INIT_M , Y_INIT_M , N , dt , V_REF , LAPS
6- from src .main_help_functions import get_eight_trajectory , get_ref_trajectory , get_circle_trajectory , update_reference_point
6+ from src .main_help_functions import get_eight_trajectory , get_ref_trajectory , get_circle_trajectory , get_spiral_trajectory , update_reference_point
77from src .main_logger import Logger
88from src .main_mpc_controller import MpcController
99
@@ -14,27 +14,20 @@ def draw_trajectory_in_thread(carla, x_traj, y_traj, dt):
1414
1515carla = CarlaSimulator ()
1616carla .load_world ('Town02_Opt' )
17- #carla.spawn_ego_vehicle('vehicle.tesla.model3', x=X_INIT_M, y=Y_INIT_M, z=0.1)
17+ #carla.spawn_ego_vehicle('vehicle.tesla.model3', x=X_INIT_M, y=Y_INIT_M, z=0.1) #“8”字形
1818carla .print_ego_vehicle_characteristics ()
1919carla .set_spectator (X_INIT_M , Y_INIT_M , z = 50 , pitch = - 90 )
20-
21- #logger = Logger()
22-
23- #x_traj, y_traj, v_ref, theta_traj = get_eight_trajectory(X_INIT_M, Y_INIT_M) #“8”形状轨迹
24- #current_idx = 0
25- #laps = 0
20+ """
21+ logger = Logger()
22+ x_traj, y_traj, v_ref, theta_traj = get_eight_trajectory(X_INIT_M, Y_INIT_M) #“8”形状轨迹
23+ current_idx = 0
24+ laps = 0
25+ """
26+ """
2627# 圆形轨迹参数:圆心(X_INIT_M, Y_INIT_M),半径20米,200个点
27- x_traj , y_traj , v_ref , theta_traj = get_circle_trajectory (
28- x_center = X_INIT_M ,
29- y_center = Y_INIT_M ,
30- radius = 20 ,
31- total_points = 200
32- )
33-
34- # 从圆形轨迹的第一个点生成车辆(确保车辆在轨迹上)
35- init_x , init_y = x_traj [0 ], y_traj [0 ]
36- # 获取初始角度(轨迹切线方向)
37- init_yaw = np .rad2deg (theta_traj [0 ])
28+ x_traj, y_traj, v_ref, theta_traj = get_circle_trajectory() # 一行生成轨迹
29+ init_x, init_y = x_traj[0], y_traj[0] # 2行获取初始位置
30+ init_yaw = np.rad2deg(theta_traj[0]) # 1行获取初始角度
3831carla.spawn_ego_vehicle(
3932 'vehicle.tesla.model3',
4033 x=init_x,
@@ -46,6 +39,26 @@ def draw_trajectory_in_thread(carla, x_traj, y_traj, dt):
4639carla.print_ego_vehicle_characteristics()
4740# 调整 spectator 位置以便更好观察圆形轨迹
4841carla.set_spectator(X_INIT_M, Y_INIT_M, z=80, pitch=-90) # 从圆心正上方俯视
42+ """
43+ #螺旋轨迹
44+ x_traj , y_traj , v_ref , theta_traj = get_spiral_trajectory (
45+ x_init = X_INIT_M ,
46+ y_init = Y_INIT_M ,
47+ turns = 2 , # 螺旋圈数
48+ scale = 2 # 螺旋缩放因子
49+ ) # 一行生成螺旋轨迹
50+ init_x , init_y = x_traj [0 ], y_traj [0 ] # 获取初始位置
51+ init_yaw = np .rad2deg (theta_traj [0 ]) # 获取初始角度
52+ carla .spawn_ego_vehicle (
53+ 'vehicle.tesla.model3' ,
54+ x = init_x ,
55+ y = init_y ,
56+ z = 0.1 ,
57+ yaw = init_yaw # 初始方向与轨迹一致
58+ )
59+
60+ # 调整 spectator 位置以便观察螺旋轨迹
61+ carla .set_spectator (X_INIT_M , Y_INIT_M , z = 50 , pitch = - 90 ) # 降低高度,适应缩小的轨迹
4962
5063logger = Logger ()
5164current_idx = 0
0 commit comments