From e515aa2def8c4dd7c1c59ea1557f2f378593b8b0 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Tue, 18 Jul 2017 22:18:32 -0700 Subject: [PATCH] first release lane sampling code and results. --- PathPlanning/StateLatticePlanner/Figure_5.png | Bin 0 -> 31917 bytes PathPlanning/StateLatticePlanner/Figure_6.png | Bin 0 -> 25651 bytes .../state_lattice_planner.py | 60 ++++++++++++++++-- 3 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 PathPlanning/StateLatticePlanner/Figure_5.png create mode 100644 PathPlanning/StateLatticePlanner/Figure_6.png diff --git a/PathPlanning/StateLatticePlanner/Figure_5.png b/PathPlanning/StateLatticePlanner/Figure_5.png new file mode 100644 index 0000000000000000000000000000000000000000..0f45d93081a2ac6de79fa00a43e643386b3ad121 GIT binary patch literal 31917 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

{>GMxFHIIAopF|5Wql_lhp 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 literal 0 HcmV?d00001 diff --git a/PathPlanning/StateLatticePlanner/state_lattice_planner.py b/PathPlanning/StateLatticePlanner/state_lattice_planner.py index b930ae19..cae97489 100644 --- a/PathPlanning/StateLatticePlanner/state_lattice_planner.py +++ b/PathPlanning/StateLatticePlanner/state_lattice_planner.py @@ -119,6 +119,33 @@ def calc_biased_polar_states(goal_angle, ns, nxy, nh, d, a_min, a_max, p_min, p_ return states +def calc_lane_states(l_center, l_heading, l_width, v_width, d, nxy): + """ + + calc lane states + + :param l_center: lane lateral position + :param l_heading: lane heading + :param l_width: lane width + :param v_width: vehicle width + :param d: longitudinal position + :param nxy: sampling number + :return: state list + """ + xc = math.cos(l_heading) * d + math.sin(l_heading) * l_center + yc = math.sin(l_heading) * d + math.cos(l_heading) * l_center + + states = [] + for i in range(nxy): + delta = -0.5 * (l_width - v_width) + (l_width - v_width) * i / (nxy - 1) + xf = xc - delta * math.sin(l_heading) + yf = yc + delta * math.cos(l_heading) + yawf = l_heading + states.append([xf, yf, yawf]) + + return states + + def sample_states(angle_samples, a_min, a_max, d, p_max, p_min, nh): states = [] for i in angle_samples: @@ -136,7 +163,7 @@ def sample_states(angle_samples, a_min, a_max, d, p_max, p_min, nh): return states -def uniform_terminal_state_sampling1(): +def uniform_terminal_state_sampling_test1(): k0 = 0.0 nxy = 5 nh = 3 @@ -160,7 +187,7 @@ def uniform_terminal_state_sampling1(): print("Done") -def uniform_terminal_state_sampling2(): +def uniform_terminal_state_sampling_test2(): k0 = 0.1 nxy = 6 nh = 3 @@ -184,7 +211,7 @@ def uniform_terminal_state_sampling2(): print("Done") -def biased_terminal_state_sampling1(): +def biased_terminal_state_sampling_test1(): k0 = 0.0 nxy = 30 nh = 2 @@ -208,7 +235,7 @@ def biased_terminal_state_sampling1(): plt.show() -def biased_terminal_state_sampling2(): +def biased_terminal_state_sampling_test2(): k0 = 0.0 nxy = 30 nh = 1 @@ -232,11 +259,34 @@ def biased_terminal_state_sampling2(): plt.show() +def lane_state_sampling_test1(): + k0 = 0.0 + + l_center = 10.0 + l_heading = math.radians(90.0) + l_width = 3.0 + v_width = 1.0 + d = 10 + nxy = 5 + states = calc_lane_states(l_center, l_heading, l_width, v_width, d, nxy) + result = generate_path(states, k0) + + for table in result: + xc, yc, yawc = motion_model.generate_trajectory( + table[3], table[4], table[5], k0) + plt.plot(xc, yc, "-r") + + plt.grid(True) + plt.axis("equal") + plt.show() + + def main(): # uniform_terminal_state_sampling1() # uniform_terminal_state_sampling2() # biased_terminal_state_sampling1() - biased_terminal_state_sampling2() + # biased_terminal_state_sampling2() + lane_state_sampling_test1() if __name__ == '__main__':