Skip to content

Commit 3acfccb

Browse files
committed
parking fix, map update
1 parent d614ebd commit 3acfccb

8 files changed

Lines changed: 33 additions & 30 deletions

File tree

GEMstack/knowledge/routes/summoning_roadgraph_sim.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

GEMstack/onboard/planning/longitudinal_planning.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ def __init__(self):
384384
self.route_progress = None
385385
self.t_last = None
386386
self.acceleration = 5
387-
self.desired_speed = 1.0
387+
self.desired_speed = 2.0
388388
self.deceleration = 2.0
389389
self.emergency_brake = 8.0
390390

GEMstack/onboard/planning/mission_planning.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,11 @@ def update(self, state: AllState):
127127
raise ValueError("Invalid frame argument")
128128

129129
if self.goal_pose:
130-
self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose)
130+
# self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose)
131+
132+
# For global map test in simulation only
133+
start_pose_global = ObjectPose(frame=ObjectFrameEnum.GLOBAL, t=time.time(), x=-88.235968, y=40.0927432, yaw=1.507)
134+
self.goal_pose = self.goal_pose.to_frame(ObjectFrameEnum.START, start_pose_abs=start_pose_global)
131135

132136
# Initiate state
133137
if mission is None:
@@ -139,6 +143,7 @@ def update(self, state: AllState):
139143
if self.new_goal:
140144
mission.goal_pose = self.goal_pose
141145
mission.type = self.state_machine.next_state()
146+
self.new_goal = False
142147
print("============== Next state:", mission.type)
143148

144149
# Reach the end of the route, begin to search for parking
@@ -157,6 +162,7 @@ def update(self, state: AllState):
157162
_, closest_index = route.closest_point([vehicle.pose.x, vehicle.pose.y], edges=False)
158163
if closest_index == len(route.points) - 1 or check_distance(route.points[-1], vehicle.pose) < 0.1:
159164
mission.type = self.state_machine.next_state()
165+
self.new_goal = False
160166
self.goal_pose = None
161167
mission.goal_pose = self.goal_pose
162168
print("============== Next state:", mission.type)

GEMstack/onboard/planning/route_planning.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import numpy as np
77
from .RRT import BiRRT
88
from .reeds_shepp_parking import ReedsSheppParking
9+
import time
910

1011

1112
class StaticRoutePlanner(Component):
@@ -156,6 +157,8 @@ def find_parallel_parking_lots(roadgraph: Roadgraph, goal_pose: ObjectPose, max_
156157
goal_lane = find_closest_lane([goal_pose.x, goal_pose.y], roadgraph)
157158
goal_lane_points = np.array(goal_lane.right.segments[0])
158159

160+
print("Goal lane>>>>>>>>>>>>>>>>>>>>>", goal_lane)
161+
159162
# Find the parking lots that attached to the lane
160163
parking_lots = []
161164
for region in roadgraph.regions.values():
@@ -208,6 +211,8 @@ def next_point(index, outline, direction='ccw'):
208211
parking_area_end = (np.array(closest_end_point) + np.array(
209212
next_point(closest_end_index, farthest_lot, direction='cw'))) / 2
210213
parking_area_start_end = [parking_area_start, parking_area_end]
214+
215+
print("Parking area>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", parking_area_start_end)
211216

212217
return parking_lots, parking_area_start_end
213218

@@ -283,7 +288,12 @@ def update(self, state: AllState):
283288
""" Transform offline map to start frame """
284289
# if self.roadgraph.frame is not ObjectFrameEnum.START:
285290
print("=+++++++++++++++++++++++++",state.start_vehicle_pose)
286-
self.roadgraph = self.roadgraph.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose)
291+
# self.roadgraph = self.roadgraph.to_frame(ObjectFrameEnum.START, start_pose_abs=state.start_vehicle_pose)
292+
293+
# For global map test in simulation only
294+
start_pose_global = ObjectPose(frame=ObjectFrameEnum.GLOBAL, t=time.time(), x=-88.235968, y=40.0927432, yaw=1.507)
295+
self.roadgraph = self.roadgraph.to_frame(ObjectFrameEnum.START, start_pose_abs=start_pose_global)
296+
287297
# Get all the points of lanes
288298
if self.map_type == 'roadgraph':
289299
self.lane_points = get_lane_points_from_roadgraph(self.roadgraph)
@@ -360,7 +370,7 @@ def update(self, state: AllState):
360370
print("Parking area start and end:", self.reedssheppparking.static_horizontal_curb_xy_coordinates)
361371
print("Obstacle list:", self.obstacle_list)
362372

363-
if not self.reedssheppparking.add_static_horizontal_curb_as_obstacle:
373+
if not self.reedssheppparking.static_horizontal_curb_xy_coordinates:
364374
print("No parking area found, start parking here.")
365375
self.route = None
366376

launch/summoning.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ drive:
2727
# Goal test points for summoning_roadgraph_highbay.json, frame is 'global'.
2828
# Key points: [-88.235317, 40.0927934], [-88.235252, 40.0927527], [-88.235164, 40.0927934], [-88.235211, 40.0928573],
2929
# [-88.235527, 40.0927436], [-88.235968, 40.0927432], [-88.236046, 40.0927917], [-88.236008, 40.0928604], [-88.235905, 40.0927917]
30-
goal: {'location':[1, 0], 'frame':'start'}
30+
goal: {'location':[32.5, 12], 'frame':'cartesian'}
3131
# goal: {'location':[5, -3], 'frame':'cartesian'}
3232
# state_machine: [MissionEnum.IDLE, MissionEnum.SUMMONING_DRIVE, MissionEnum.PARALLEL_PARKING]
3333
state_machine: [MissionEnum.IDLE, MissionEnum.SUMMON_DRIVING, MissionEnum.PARALLEL_PARKING]
@@ -39,8 +39,8 @@ drive:
3939
# Make sure 'roadgraph' map_type match the structure of Roadgraph object.
4040
# 'pointlist' is a list of points, carefully define the goal to make sure it is in the lanes.
4141
# Map_frame should be 'global', 'cartesian, or 'start'.
42-
args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_sim.json', 'roadgraph', 'cartesian']
43-
# args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_highbay.json', 'roadgraph', 'global']
42+
# args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_sim.json', 'roadgraph', 'cartesian']
43+
args: [!relative_path '../GEMstack/knowledge/routes/summoning_roadgraph_highbay.json', 'roadgraph', 'global']
4444
motion_planning: longitudinal_planning.YieldTrajectoryPlanner
4545
trajectory_tracking:
4646
type: pure_pursuit.PurePursuitTrajectoryTracker
Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -217,20 +217,13 @@ def create_lane(left_back : Tuple, left_forward : Tuple,
217217
route_name=''
218218
)
219219
roadgraph.lanes['t_1_1'] = create_lane(left_back=(33.0, 10.5, 0.0), left_forward=(30.0, 7.5, 0.0),
220-
right_back=(33.0, 13.5, 0.0), right_forward=(28.5, 13.5, 0.0),
220+
right_back=(24.0, 10.5, 0.0), right_forward=(27.0, 7.5, 0.0),
221221
left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw',
222-
right_crossable=False,
223-
resolution=resolution,
224-
route_name=''
225-
)
226-
roadgraph.lanes['t_1_2'] = create_lane(left_back=(27.0, 7.5, 0.0), left_forward=(24.0, 10.5, 0.0),
227-
right_back=(28.5, 13.5, 0.0), right_forward=(24.0, 13.5, 0.0),
228-
left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw',
229-
right_crossable=False,
222+
right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw',
230223
resolution=resolution,
231224
route_name=''
232225
)
233-
roadgraph.lanes['t_1_3'] = create_lane(left_back=(30.0, 7.5, 0.0), left_forward=(24.0, 1.5, 0.0),
226+
roadgraph.lanes['t_1_2'] = create_lane(left_back=(30.0, 7.5, 0.0), left_forward=(24.0, 1.5, 0.0),
234227
right_back=(27.0, 7.5, 0.0), right_forward=(24.0, 4.5, 0.0),
235228
left_crossable=False, left_type='arc', left_radius=6.0, left_direction='cw',
236229
right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw',
@@ -251,22 +244,16 @@ def create_lane(left_back : Tuple, left_forward : Tuple,
251244
resolution=resolution,
252245
route_name=''
253246
)
254-
roadgraph.lanes['t_2_2'] = create_lane(left_back=(6.0, 10.5, 0.0), left_forward=(3.0, 7.5, 0.0),
255-
right_back=(6.0, 13.5, 0.0), right_forward=(1.5, 13.5, 0.0),
247+
roadgraph.lanes['t_2_2'] = create_lane(left_back=(0.0, 7.5, 0.0), left_forward=(-3.0, 10.5, 0.0),
248+
right_back=(3.0, 7.5, 0.0), right_forward=(6.0, 10.5, 0.0),
256249
left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw',
257-
right_crossable=False,
258-
resolution=resolution,
259-
route_name=''
260-
)
261-
roadgraph.lanes['t_2_3'] = create_lane(left_back=(0.0, 7.5, 0.0), left_forward=(-3.0, 10.5, 0.0),
262-
right_back=(1.5, 13.5, 0.0), right_forward=(-3.0, 13.5, 0.0),
263-
left_crossable=False, left_type='arc', left_radius=3.0, left_direction='ccw',
264-
right_crossable=False,
250+
right_crossable=False, right_type='arc', right_radius=3.0, right_direction='cw',
265251
resolution=resolution,
266252
route_name=''
267253
)
268254
roadgraph.lanes['lane_2'] = create_lane(left_back=(24.0, 10.5, 0.0), left_forward=(6.0, 10.5, 0.0),
269-
right_back=(24.0, 13.5, 0.0), right_forward=(6.0, 13.5, 0.0),
255+
# right_back=(24.0, 13.5, 0.0), right_forward=(6.0, 13.5, 0.0),
256+
right_back=(33.0, 13.5, 0.0), right_forward=(-3.0, 13.5, 0.0),
270257
left_crossable=False,
271258
right_crossable=False,
272259
resolution=resolution,

scenes/summoning_demo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
vehicle_state: [15.0, 14.0, 3.14, 0.0, 0.0]
1+
vehicle_state: [10.0, 0.0, 0.0, 0.0, 0.0]
22
agents:
33
car1:
44
type: car

0 commit comments

Comments
 (0)