Skip to content

Commit 5046446

Browse files
committed
Kinodynamic RRT* planning added
2 parents 0e30c6d + c267266 commit 5046446

155 files changed

Lines changed: 21326 additions & 1371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/python-app.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Lint with flake8
3131
run: |
3232
# stop the build if there are Python syntax errors or undefined names
33-
flake8 ./GEMstack --count --select=E9,F63,F7,F82 --show-source --statistics --exclude=__init__.py || exit 1
33+
flake8 ./GEMstack --count --select=E9,F63,F7,F82 --ignore=F824 --show-source --statistics --exclude=__init__.py || exit 1
3434
# to enable more advanced checks on the repo, uncomment the lines below (There are around 3000 violations)
3535
# flake8 ./GEMstack --ignore=D,C901,E402,E231 --count --max-complexity=10 --max-line-length=127 --statistics --exclude=__init__.py || exit 1
3636
# if we want to enable documentation checks, uncomment the line below

.gitignore

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ downloads/
2222
eggs/
2323
.eggs/
2424
lib/
25+
!frontend/*
2526
lib64/
2627
parts/
2728
sdist/
@@ -32,6 +33,7 @@ share/python-wheels/
3233
.installed.cfg
3334
*.egg
3435
MANIFEST
36+
.idea/
3537

3638
# PyInstaller
3739
# Usually these files are written by a python script from a template
@@ -134,6 +136,7 @@ venv/
134136
ENV/
135137
env.bak/
136138
venv.bak/
139+
*.DS_Store
137140

138141
# Spyder project settings
139142
.spyderproject
@@ -164,14 +167,22 @@ cython_debug/
164167
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
165168
# and can be added to the global gitignore or merged into this file. For a more nuclear
166169
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
167-
#.idea/
170+
171+
.idea/
168172

169173
# ZED run files
170174
**/*.run
171175
.vscode/
172176
setup/zed_sdk.run
177+
178+
#Ignore ROS bags
179+
*.bag
180+
173181
cuda/
174-
GEMstack/knowledge/detection/yolov8n.pt
175-
GEMstack/knowledge/detection/yolo11n.pt
182+
homework/yolov8n.pt
183+
homework/yolo11n.pt
176184
yolov8n.pt
177-
yolo11n.pt
185+
yolo11n.pt
186+
187+
# Computation Graph of Launch File Outputs
188+
launch_visualization/graph

GEMstack/knowledge/calibration/cameras.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ cameras:
3131
- [0.99939639, 0.02547917, 0.023615, 1.1]
3232
- [-0.02530848, 0.99965156, -0.00749882, 0.03773583]
3333
- [-0.02379784, 0.00689664, 0.999693, 1.95320223]
34-
- [0.0, 0.0, 0.0, 1.0 ]
34+
- [0.0, 0.0, 0.0, 1.0 ]
35+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# vehicle info
2+
vehicle:
3+
vehicle_dim: [1.7, 3.2] # in meter
4+
vehicle_turning_radius: 3.657
5+
# algorithm parameters
6+
reeds_shepp_parking:
7+
shift_from_center_to_rear_axis: 1.25 # in meter
8+
search_step_size: 0.1 # in meter
9+
closest: False # If True, the closest parking spot will be selected, otherwise the farthest one will be selected
10+
parking_lot_axis_shift_margin: 2.44 # in meter
11+
search_bound_threshold: 0.5
12+
clearance_step: 0.5
13+
clearance: 0
14+
add_static_vertical_curb_as_obstacle: True
15+
add_static_horizontal_curb_as_obstacle: True
16+
static_horizontal_curb_size: [2.44, 0.5]
17+
static_vertical_curb_size: [2.44, 24.9]
18+
compact_parking_spot_size: [2.44, 4.88] # US Compact Space for parking (2.44, 4.88)
19+

GEMstack/knowledge/defaults/computation_graph.yaml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ components:
2121
- lane_detection:
2222
inputs: [vehicle, roadgraph]
2323
outputs: vehicle_lane
24+
- parking_detection:
25+
inputs: obstacles
26+
outputs: [goal, obstacles]
2427
- sign_detection:
2528
inputs: [vehicle, roadgraph]
2629
outputs: roadgraph.signs
@@ -40,12 +43,25 @@ components:
4043
inputs: all
4144
- mission_execution:
4245
outputs: mission
46+
- mission_planning:
47+
inputs: all
48+
outputs: mission
49+
- planning_component_example: # one way
50+
inputs: all
51+
outputs: mission_plan
4352
- route_planning:
44-
inputs: [vehicle, roadgraph, mission]
53+
inputs: all
4554
outputs: route
46-
- driving_logic:
55+
- route_planning_component: # one way
56+
inputs: [vehicle,mission_plan, agents, obstacles]
57+
outputs: route
58+
- save_lidar_data:
4759
inputs: all
60+
outputs:
61+
- driving_logic:
62+
inputs:
4863
outputs: intent
64+
<<<<<<< HEAD
4965
- parking_component: # one way
5066
inputs: all
5167
outputs: mission_plan
@@ -55,6 +71,14 @@ components:
5571
- route_planning_component: # one way
5672
inputs: [vehicle,agents,mission_plan, obstacles]
5773
outputs: route
74+
=======
75+
- _mission_planner: # one way
76+
inputs: all
77+
outputs: mission_plan
78+
- _route_planner: # one way
79+
inputs: all
80+
outputs: route
81+
>>>>>>> c2672669e19024ddf6f0ec39238970f2bbca80ed
5882
- motion_planning:
5983
inputs: all
6084
outputs: trajectory
@@ -63,4 +87,8 @@ components:
6387
outputs:
6488
- signaling:
6589
inputs: [intent]
90+
<<<<<<< HEAD
91+
outputs:
92+
=======
6693
outputs:
94+
>>>>>>> c2672669e19024ddf6f0ec39238970f2bbca80ed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# arguments for BiRRT* algorithm
2+
# map parameters
3+
map:
4+
lower_x: -15
5+
upper_x: 40
6+
lower_y: -10
7+
upper_y: 30
8+
grid_resolution: 10 # grids per meter for occupency grid
9+
lane_boundary_radius: 0.2 # radius in meter for determining the size of the lane boundary in occupency grid
10+
obstacle_radius: 0.2 # radius in meter for determining the size of the obstacle in occupency grid
11+
# vehicle info
12+
vehicle:
13+
heading_limit: 0.5235987756 # vehicle heading difference limit per rrt step_size (pi/6 in radians)
14+
half_width: 0.8 # vehicle half width in meter
15+
# algorithm parameters
16+
rrt:
17+
time_limit: 10 # in sec
18+
step_size: 0.5 # length in meter for local planner to explore
19+
search_r: 1.4 # radius in meter for rewiring

GEMstack/knowledge/routes/summoning_roadgraph_highbay.json

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

GEMstack/knowledge/routes/summoning_roadgraph_sim.json

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

GEMstack/knowledge/vehicle/dynamics.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ def acceleration_to_pedal_positions(acceleration : float, velocity : float, pitc
6666
if abs(acceleration) < acceleration_deadband:
6767
#deadband?
6868
return (0,0,gear)
69+
70+
#velocity threshold for switching gears
71+
if abs(velocity) <= 0.01:
72+
velocity = 0
73+
6974
if velocity * acceleration < 0:
7075
accel_pos = 0
7176
brake_pos = -acceleration / brake_max

GEMstack/knowledge/vehicle/gem_e4_dynamics.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ max_accelerator_power: #Watts. Power at max accelerator pedal, by gear
1313
max_accelerator_power_reverse: 10000.0 #Watts. Power (backwards) in reverse gear
1414

1515
acceleration_model : kris_v1
16-
accelerator_active_range : [0.2, 1.0] #range of accelerator pedal where output acceleration is not flat
16+
accelerator_active_range : [0.32, 1.0] #range of accelerator pedal where output acceleration is not flat
1717
brake_active_range : [0,1] #range of brake pedal where output deceleration is not flat
1818

1919
internal_dry_deceleration: 0.2 #m/s^2: deceleration due to internal dry friction (non-speed dependent)

0 commit comments

Comments
 (0)