Skip to content

Commit 5ef9dcf

Browse files
authored
更新 main.py,能够调用螺旋轨迹,并运 (#3316)
* 在main_help_functions.py中添加一个新的轨迹“圆形轨迹” * 更新main,主函数新添加调用圆形轨迹,并运行 * 生成了新的螺旋线轨迹,并且轨迹不超出场地范围 * 更新main.py,并调用螺旋轨迹,并运行
1 parent 4283cd5 commit 5ef9dcf

1 file changed

Lines changed: 32 additions & 19 deletions

File tree

  • src/Unmanned_vehicle_control

src/Unmanned_vehicle_control/main.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44
from src.main_carla_simulator import CarlaSimulator
55
from 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
77
from src.main_logger import Logger
88
from src.main_mpc_controller import MpcController
99

@@ -14,27 +14,20 @@ def draw_trajectory_in_thread(carla, x_traj, y_traj, dt):
1414

1515
carla = CarlaSimulator()
1616
carla.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”字形
1818
carla.print_ego_vehicle_characteristics()
1919
carla.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行获取初始角度
3831
carla.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):
4639
carla.print_ego_vehicle_characteristics()
4740
# 调整 spectator 位置以便更好观察圆形轨迹
4841
carla.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

5063
logger = Logger()
5164
current_idx = 0

0 commit comments

Comments
 (0)