Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
369 commits
Select commit Hold shift + click to select a range
14fcec9
Merge branch 'A4_planning_part1' into A4_planning_patrick
udymd Feb 17, 2025
4ba2efd
Merge branch 's2025' into s2025_teamA_control-planning
udymd Feb 17, 2025
d03fd63
interactive analyzer for csv files
Jason717717 Feb 15, 2025
822493a
add documentation and append timestamps to saved file names
Jason717717 Feb 16, 2025
080f8b0
Merge pull request #115 from krishauser/A1_control
alo-20 Feb 17, 2025
3020680
Optimising the program and adding commit by Kris
animeshsingh98 Feb 17, 2025
0cac268
Optimising the program and adding commit by Kris
animeshsingh98 Feb 17, 2025
d861a16
Finish klampt_visualization and mpl_visualization
Shiyang-Zhao Feb 17, 2025
526614c
Merge pull request #112 from krishauser/infra_a_analyze
Averyyy Feb 17, 2025
28e22dc
Merge pull request #108 from krishauser/remove-ibeo-msg
Averyyy Feb 17, 2025
0300ba9
merge part1 longitudinal_plan and longitudinal_brake with part2 yeild…
Patrick8894 Feb 17, 2025
5755476
Merge branch 'A4_planning_patrick' of github.com:krishauser/GEMstack …
Feb 17, 2025
e5a2232
Revert "merge part1 longitudinal_plan and longitudinal_brake with par…
Patrick8894 Feb 17, 2025
fd0d505
Merge pull request #116 from krishauser/Shiyang
Averyyy Feb 17, 2025
bca6233
merge part1 and part2
Patrick8894 Feb 17, 2025
f3804db
blink_component file test
laneccolin Feb 17, 2025
7568b2c
Merge branch 's2025' into s2025_teamA
krishauser Feb 18, 2025
0067d5c
detect_collision_via_optimization added
Henry-YiW Feb 18, 2025
97e5e63
Update longitudinal_planning.py
udymd Feb 19, 2025
3a8a282
Merge branch 'A4_planning' into s2025_teamA_control-planning
udymd Feb 19, 2025
466d887
Adjust Change dynamic_dt_k for simulation
udymd Feb 19, 2025
ef3a29a
Merge branch 's2025_teamA' into s2025_teamA_control-planning
udymd Feb 19, 2025
ab6fe4a
Added homework description and starter code
krishauser Jan 27, 2025
2be0d8e
Fixed Klampt drawing problem onboard... still mysterious
krishauser Jan 28, 2025
23eb3fb
added two subscribers for part1-1
ShellyRiver Jan 31, 2025
79616f3
added publisher to blink.py
Feb 1, 2025
ec12f16
debug subscriber to pacmod accel
ShellyRiver Feb 3, 2025
000a052
blink_component code/have not been tested
Feb 4, 2025
1e15536
blink.py publisher minor bug fix
mikayel2 Feb 3, 2025
fa57607
Changed matplotlib to 3D visualization
krishauser Feb 3, 2025
9496bde
Adding github action for linting and documentation
animeshsingh98 Feb 2, 2025
95c5071
Adding github action trigger on all commits
animeshsingh98 Feb 2, 2025
e2bf7c7
Upgrading version of upload artifact
animeshsingh98 Feb 2, 2025
b144c94
Optimizing the workflow yaml
animeshsingh98 Feb 2, 2025
9b3d5f8
Optimizing the workflow yaml
animeshsingh98 Feb 2, 2025
e7ed1a5
Correcting in the key names
animeshsingh98 Feb 2, 2025
c8b3c5a
Removing requirements.txt installation in documentation
animeshsingh98 Feb 2, 2025
8dcb9c9
Correcting name of build artifact for documentation folder
animeshsingh98 Feb 2, 2025
2e6abdf
Removing action trigger on PR
animeshsingh98 Feb 2, 2025
791720c
Fixed diff that was somehow committed
krishauser Feb 3, 2025
cf0485d
Fixed launch file to work with standard perception pipeline
krishauser Feb 3, 2025
f31aed0
HW1 Part 1.2 code (provided by Yifei Mao) works correctly in simulation.
mikayel2 Feb 3, 2025
6acbc59
try upload
dazhenc2 Feb 5, 2025
73b5c95
HW1 Part 2: Parameter Tuning (crosstrack gain and decay speed)
mikayel2 Feb 9, 2025
f063786
hw1.3
dazhenc2 Feb 7, 2025
44af541
finalize hw1.3
dazhenc2 Feb 12, 2025
701c378
Fine tuning tracking and comfort level, comfort index added as a metric
mikayel2 Feb 14, 2025
ba9f62a
Merge branch 'A1_control' of https://github.com/krishauser/GEMstack i…
alo-20 Feb 19, 2025
c4a9abe
Change brake active range to start at 0.25
alo-20 Feb 19, 2025
9a98cba
Change e4 dynamics to have 0.25 start of brake_active_range
alo-20 Feb 19, 2025
973da06
Update gem_e4_dynamics.yaml
laneccolin Feb 19, 2025
fdbed01
Update gem_e4_dynamics.yaml
laneccolin Feb 19, 2025
ad2bd16
Update gem_e4_dynamics.yaml
laneccolin Feb 19, 2025
404e393
Merge branch 'A1_control' into s2025_teamA_control-planning
udymd Feb 19, 2025
95194dc
Merge pull request #120 from krishauser/s2025_teamA_control-planning
laneccolin Feb 19, 2025
d777ab6
Merge pull request #121 from krishauser/A1_control
laneccolin Feb 19, 2025
844f035
change the logic in part 2
Patrick8894 Feb 19, 2025
0ec9d23
Fixed to move GEM (GNSS, brake, steering are working)
Feb 19, 2025
94d17e1
Adjust the parameters of vehicle xy temporalily (need to be fixed in …
Feb 19, 2025
51a8150
correct tx,ty
rjsun06 Feb 19, 2025
3891eed
updating tx in lidar to camera
AadarshHegde123 Feb 20, 2025
63432ef
lidar->vehecle matrix. and update manual pointpicking
rjsun06 Feb 20, 2025
fd501fa
Merge branch 'EstCal_A' of https://github.com/krishauser/GEMstack int…
rjsun06 Feb 20, 2025
1b44351
camera to vehicle by point selecting.
rjsun06 Feb 20, 2025
9c91ffc
dumb typo
rjsun06 Feb 20, 2025
11907a3
dumb typo
rjsun06 Feb 20, 2025
fa73970
adding testing script and lidar to cam script
AadarshHegde123 Feb 21, 2025
04239a4
Merge branch 'A4_planning_part2' into A4_planning
udymd Feb 22, 2025
60e3d20
Fixed for test function
udymd Feb 23, 2025
591b385
Merge branch 's2025_teamA_control-planning' into A4_planning
udymd Feb 23, 2025
89b16df
Added args for sim/real and milestine/dt/dx in launch
udymd Feb 23, 2025
91632e2
Modified coordinates among real/sim and perception
udymd Feb 23, 2025
e6ec341
Merge pull request #127 from krishauser/A4_planning
udymd Feb 23, 2025
047f84f
get_minimum_deceleration_for_collision_avoidance completed
Henry-YiW Feb 23, 2025
c05d406
get_minimum_deceleration_for_collision_avoidance completed
Henry-YiW Feb 23, 2025
df80729
get_minimum_deceleration_for_collision_avoidance tested
Henry-YiW Feb 23, 2025
54e1af4
Modifying for multiple pedestrians
udymd Feb 23, 2025
1be8acf
Updated gem_e4_dynamics.yaml
laneccolin Feb 23, 2025
66884ba
Merge branch 's2025_teamA' into infra_a_main
Averyyy Feb 23, 2025
323cba2
Merge pull request #117 from krishauser/infra_a_main
Averyyy Feb 23, 2025
cab0bd0
Update the newest pedestrian detection code
rty727433198 Feb 23, 2025
1762b6e
Update gem_e4_dynamics.yaml
laneccolin Feb 23, 2025
96e55b4
Modify for real car
udymd Feb 23, 2025
bc56dc7
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
udymd Feb 23, 2025
81311b2
Fix indent
udymd Feb 24, 2025
b7682f4
Modified for multiple pedestrians
udymd Feb 24, 2025
ec9d1a6
Merged update
krishauser Feb 24, 2025
d87f5a5
Merge branch 's2025' into s2025_teamA
krishauser Feb 24, 2025
5e04c43
Add camera transform to yaml file
michalj1 Feb 24, 2025
41b39cf
longitudinal plan and brake handled
Henry-YiW Feb 24, 2025
5b5dbd3
Fix cz GNSS coordinate issue solved
udymd Feb 24, 2025
c166eb4
Merge branch 'A4_planning_H1P2_henry' into A4_planning
udymd Feb 24, 2025
82d68b6
get_minimum_deceleration_for_collision_avoidance tested
Henry-YiW Feb 24, 2025
d3ee30e
Modified yaml file to set params of planner
udymd Feb 24, 2025
e9d56d9
Merge branch 's2025_teamA' into A4_planning
udymd Feb 24, 2025
95419dc
Merge pull request #133 from krishauser/A4_planning
udymd Feb 24, 2025
1356375
Reorganizing code. Pending items - pure pursuit controller has oscill…
animeshsingh98 Feb 24, 2025
f10fbbe
Delete .DS_Store
animeshsingh98 Feb 24, 2025
adc4dd5
Added README.md
whizkid42 Feb 24, 2025
9d47105
Updated README.md
whizkid42 Feb 25, 2025
ec606e3
Removing conflict flags
animeshsingh98 Feb 25, 2025
a5d05f9
Modify for perception coordinates
udymd Feb 25, 2025
a75f355
Transfered logic into pedestrian_yield_logic.py
udymd Feb 25, 2025
34dedde
Make generating plots and metrics automatic upon exit of a run by aut…
Jason717717 Feb 25, 2025
90acf7c
add speed error as a factor of comfort index
Jason717717 Feb 25, 2025
92e4ba8
fix a typo for log folder
Jason717717 Feb 25, 2025
bb666ba
add safety index
Jason717717 Feb 25, 2025
24347d5
format metrics to 2 decimal places
Jason717717 Feb 25, 2025
66bc2bd
improved camera->vehicle
rjsun06 Feb 25, 2025
e14d743
add auto_plot attribute in log as comment
Jason717717 Feb 25, 2025
90c25fd
add result for fake_sim with pedestrian_detection.yaml
Jason717717 Feb 25, 2025
af020c0
Removing conflict flags
animeshsingh98 Feb 25, 2025
93cb91a
Update pedestrian_detection.py
rty727433198 Feb 25, 2025
41e46df
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
udymd Feb 25, 2025
998f75e
Modified to load param in a planner
udymd Feb 25, 2025
29a9d4e
Correcting logic for collision detection
animeshsingh98 Feb 25, 2025
07046eb
Make more points for milestone implementation
SimonKato Feb 25, 2025
e2c7a02
debug cruising speed
Patrick8894 Feb 25, 2025
8045f7c
Adding new modules in requirement.txt
animeshsingh98 Feb 25, 2025
36ff1d3
fixed a bug
SimonKato Feb 25, 2025
5115a4f
Update pedestrian_detection.py
rty727433198 Feb 25, 2025
2999a4f
remove result for fake_sim with pedestrian detection launch yaml file
Jason717717 Feb 25, 2025
66d2069
Merge pull request #139 from krishauser/infra_a_auto_plot
Averyyy Feb 25, 2025
d72f891
Bug where we weren't including the last milestone
SimonKato Feb 26, 2025
24a72c0
Merge branch 'A4_planning_part1_milestone_more_points' into s2025_teamA
SimonKato Feb 26, 2025
a0ed900
Update pedestrian_detection.py
rty727433198 Feb 26, 2025
f09bde8
removing unnecessary file
AadarshHegde123 Feb 26, 2025
af7b5ec
Rename make_gem_e4_ouster_v2.py to lidar_to_vehicle.py
AadarshHegde123 Feb 26, 2025
b2ce15b
Add additional model to dynamics.py that allows for various function …
alo-20 Feb 26, 2025
acfd73b
fix: use latest folders locally and on s3
nmashchenko Feb 26, 2025
c247a43
Update README.md
AadarshHegde123 Feb 26, 2025
28d728f
Update README.md
AadarshHegde123 Feb 26, 2025
4d99bb7
Tune Values in current.yaml so the car does not oscillate
jyl2017 Feb 26, 2025
12663fe
desired speeds and real speeds mismatch issues debugging
joe-hung Feb 26, 2025
83bc82c
Merge pull request #141 from krishauser/s2025_teamA_avery_model
alo-20 Feb 26, 2025
81c5fb5
demo scripts
rjsun06 Feb 26, 2025
70a8173
Merge branch 'EstCal_A' of https://github.com/krishauser/GEMstack int…
rjsun06 Feb 26, 2025
5e70824
Updated date
whizkid42 Feb 26, 2025
3b041a8
Merge remote-tracking branch 'origin/EstCal_A' into EstCal_A
whizkid42 Feb 26, 2025
fb2bf76
fixing yaml matrix
AadarshHegde123 Feb 26, 2025
c3f0449
TODO comment added
SimonKato Feb 26, 2025
2e5bea5
code restructure + clean up
AadarshHegde123 Feb 26, 2025
799c566
removing conflict
AadarshHegde123 Feb 26, 2025
97f76c5
clean-up tested + working
AadarshHegde123 Feb 26, 2025
16cd934
readme update
AadarshHegde123 Feb 26, 2025
430bee1
Merge pull request #143 from krishauser/EstCal_A
AadarshHegde123 Feb 26, 2025
096c28c
Updated camera->vehicle gem_e4_oak.yaml
AadarshHegde123 Feb 26, 2025
201714b
improved accuracy matrices
AadarshHegde123 Feb 26, 2025
3565815
Revert pedestrian detection logic to ray casting
rty727433198 Feb 26, 2025
e94b12a
Merge branch 'A4_planning_transferLogic' into s2025_teamA_planning
udymd Feb 27, 2025
5cd621e
Update gem_e4_ouster.yaml
AadarshHegde123 Feb 27, 2025
977fff8
Update gem_e4_oak.yaml with dates
AadarshHegde123 Feb 27, 2025
e07c668
Updating calibration date in gem_e4.yaml to match most up to date mat…
AadarshHegde123 Feb 27, 2025
e405589
making camera->vehicle script easier to run
AadarshHegde123 Feb 27, 2025
af950f0
camera->vehicle command line arg version works
AadarshHegde123 Feb 27, 2025
060736f
Update documentation
rty727433198 Feb 27, 2025
4b38d44
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
rty727433198 Feb 27, 2025
31d58ce
Update pedestrian_detection.py
rty727433198 Feb 27, 2025
d68028a
command line args added to lidar->vehicle
AadarshHegde123 Feb 27, 2025
4944d09
Delete yolov8n.pt
rty727433198 Feb 27, 2025
013916e
updating read me and yaml measurement
AadarshHegde123 Feb 27, 2025
47006ee
Transfered yield algorithms
udymd Feb 27, 2025
f878cc5
Merge branch 's2025_teamA' into s2025_teamA_planning
udymd Feb 27, 2025
e35d421
adding optional command line arguments to data capture script
AadarshHegde123 Feb 27, 2025
d5ecbb2
all quality of life changes now complete
AadarshHegde123 Feb 27, 2025
ee8d1ad
Update README.md
AadarshHegde123 Feb 27, 2025
006348c
Update README.md
AadarshHegde123 Feb 27, 2025
e842aea
Update README.md
AadarshHegde123 Feb 27, 2025
a4a43c3
Cleaned up comments
SimonKato Feb 27, 2025
b1090f1
Merge pull request #147 from krishauser/EstCal_A_testing
AadarshHegde123 Feb 27, 2025
c9ac223
removing duplicate file from hw directory
AadarshHegde123 Feb 27, 2025
fd76adb
some code cleanup
Patrick8894 Feb 27, 2025
d922b49
Fix typo
udymd Feb 27, 2025
086e9a5
Merge branch 's2025_teamA_planning' of https://github.com/krishauser/…
udymd Feb 27, 2025
9ec7778
more details in readme
AadarshHegde123 Feb 27, 2025
4ce3419
clarification comments in gem_e4_oak.yaml
AadarshHegde123 Feb 27, 2025
135f0d8
clarifying comments in gem_e4_ouster.yaml
AadarshHegde123 Feb 27, 2025
f2029d5
codes cleaned
Henry-YiW Feb 27, 2025
97f7521
Clean dt code
udymd Feb 27, 2025
22b5994
Updated to use command line arugments
whizkid42 Feb 27, 2025
0364c78
Merge pull request #149 from krishauser/EstCal_A_testing_2
AadarshHegde123 Feb 27, 2025
9c8dc54
Update README.md
AadarshHegde123 Feb 27, 2025
bce7cfd
add comparison plot
ShellyRiver Feb 24, 2025
c8d8378
add pedestrian_detection tracking comparison plots
ShellyRiver Feb 25, 2025
bc12bdd
update pedestrian detection comparison graphs
ShellyRiver Feb 25, 2025
7e69ce7
Update README.md
AadarshHegde123 Feb 27, 2025
7f35cb0
Merge branch 's2025_teamA' of github.com:krishauser/GEMstack into s20…
ShellyRiver Feb 27, 2025
cd2b01c
Merge branch 'A4_planning_H1P2_henry' into s2025_teamA_planning
udymd Feb 27, 2025
15d1b74
Update README.md
AadarshHegde123 Feb 27, 2025
9c9e25c
Update README.md
AadarshHegde123 Feb 27, 2025
2d22ee9
fixed formatting
AadarshHegde123 Feb 27, 2025
ed986b8
fix typo
AadarshHegde123 Feb 27, 2025
40743a6
Update pedestrian_yield_logic.py
udymd Feb 27, 2025
5fdfde8
Adding results in readme
AadarshHegde123 Feb 27, 2025
682ad45
Merge pull request #150 from krishauser/s2025_teamA_planning
udymd Feb 27, 2025
b3d4290
formatting
AadarshHegde123 Feb 27, 2025
c97a30b
Modified test funciton
udymd Feb 27, 2025
868325e
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
udymd Feb 27, 2025
4c56c3e
adding yaml for lidar->camera transform
AadarshHegde123 Feb 27, 2025
a5af802
adding description to yaml
AadarshHegde123 Feb 27, 2025
aa02bb0
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
AadarshHegde123 Feb 27, 2025
01a4486
Update README.md to include dependencies for code
AadarshHegde123 Feb 27, 2025
a08d541
Update README.md
AadarshHegde123 Feb 27, 2025
54b1bd7
fixing typo in readme
AadarshHegde123 Feb 27, 2025
118c1c7
Update pedestrian_detection.py
rty727433198 Feb 27, 2025
88cf406
Merge branch 's2025_teamA' of https://github.com/krishauser/GEMstack …
rty727433198 Feb 27, 2025
6cd43aa
Merge pull request #142 from krishauser/hotfix/s3-pull-strategy
Averyyy Feb 28, 2025
924f690
Merge pull request #151 from krishauser/infra_a_main
Averyyy Feb 28, 2025
2f74d54
feat: init srviz
Averyyy Mar 13, 2025
3d18514
create a simple scene with a road, cars, humans, and traffic lights
Jason717717 Mar 24, 2025
76e97a9
change to finer models and try moving the vehicle
Jason717717 Mar 31, 2025
ede9c6f
(feat): add follow camera mode and control for car movement
Jason717717 Apr 2, 2025
4dac262
(feat): add pedestrian walking animation and switching cars for control
Jason717717 Apr 2, 2025
8e7b578
(feat): add support for initial headings of cars
Jason717717 Apr 2, 2025
2d034df
disable context menu
Jason717717 Apr 9, 2025
4baf851
add support for log replay
Jason717717 Apr 9, 2025
5429501
update readme
Jason717717 Apr 9, 2025
d30f4ba
update readme
Jason717717 Apr 9, 2025
07e2ce3
tmp
Jason717717 Apr 15, 2025
76167f8
change to react and add support for scrubber
Jason717717 Apr 26, 2025
2d1c611
remove model
Jason717717 Apr 26, 2025
911e3dc
Merge pull request #166 from krishauser/sr_viz_dev
Averyyy Apr 26, 2025
097e562
correct gitignore
Jason717717 Apr 27, 2025
41da433
style changes on scrubber
Jason717717 Apr 27, 2025
222da49
disable context menu
Jason717717 Apr 27, 2025
ae3f01f
Integrate with log_dashboard and add visualization of traffic lights …
Shiyang-Zhao Apr 27, 2025
c6c19ae
fix: make slider responsive
Jason717717 Apr 27, 2025
657bbcc
fix: fix ground lines flickering
Jason717717 Apr 27, 2025
7640f03
a little tweak on camera position
Jason717717 Apr 27, 2025
9951ab6
Merge pull request #167 from krishauser/sr_viz_dev
Averyyy Apr 27, 2025
625dc39
Merge branch 'sr_viz_main' into sr_viz_shiyang
Averyyy Apr 27, 2025
9729c1a
Merge pull request #168 from krishauser/sr_viz_shiyang
Averyyy Apr 27, 2025
f045404
fix build error
Shiyang-Zhao Apr 27, 2025
25efaf8
Merge branch 'sr_viz_main' of https://github.com/krishauser/GEMstack …
Shiyang-Zhao Apr 27, 2025
5412e78
fix build error
Shiyang-Zhao Apr 27, 2025
17c5888
rollback
Shiyang-Zhao Apr 27, 2025
05c9b9e
rollback
Shiyang-Zhao Apr 27, 2025
76f1e6b
fix models not rendered error in production
Shiyang-Zhao Apr 27, 2025
585d860
Merge pull request #170 from krishauser/sr_viz_shiyang
Averyyy Apr 27, 2025
c0b1cf5
update requirements
Jason717717 Apr 28, 2025
7370ceb
add traffic cones and show vehicle state
Shiyang-Zhao May 7, 2025
f4f1339
add traffic cones and show vehicle state
Shiyang-Zhao May 7, 2025
d72dd95
Merge pull request #187 from krishauser/sr_viz_shiyang
Averyyy May 7, 2025
d273aec
feat: add support for viewing images and point cloud in rosbag
Jason717717 May 10, 2025
937066d
feat: add a switch to turn on and off drag and zoom
Jason717717 May 10, 2025
ff9bd5a
format files
Jason717717 May 10, 2025
a2a2391
Merge branch 'sr_viz_main' of https://github.com/krishauser/GEMstack …
Jason717717 May 10, 2025
d91f562
delete duplicate
Jason717717 May 10, 2025
d5626d9
feat: add support for selecting topics
Jason717717 May 11, 2025
579f78b
Merge pull request #191 from krishauser/sr_viz_dev
Averyyy May 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ share/python-wheels/
.installed.cfg
*.egg
MANIFEST
.idea/

# PyInstaller
# Usually these files are written by a python script from a template
Expand Down Expand Up @@ -134,6 +135,7 @@ venv/
ENV/
env.bak/
venv.bak/
*.DS_Store

# Spyder project settings
.spyderproject
Expand Down Expand Up @@ -165,3 +167,11 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

.vscode/
setup/zed_sdk.run

cuda/
#Ignore ROS bags
*.bag

Binary file added GEMstack/.DS_Store
Binary file not shown.
4 changes: 2 additions & 2 deletions GEMstack/knowledge/calibration/gem_e4.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
calibration_date: "2024-03-05" # Date of calibration YYYY-MM-DD
calibration_date: "2025-02-25" # Date of calibration YYYY-MM-DD
reference: rear_axle_center # rear axle center
rear_axle_height: 0.33 # height of rear axle center above flat ground
rear_axle_height: 0.2794 # height of rear axle center above flat ground
gnss_location: [1.10,0,1.62] # meters, taken from https://github.com/hangcui1201/POLARIS_GEM_e2_Real/blob/main/vehicle_drivers/gem_gnss_control/scripts/gem_gnss_tracker_stanley_rtk.py. Note conflict with pure pursuit location?
gnss_yaw: 0.0 # radians
top_lidar: !include "gem_e4_ouster.yaml"
Expand Down
9 changes: 9 additions & 0 deletions GEMstack/knowledge/calibration/gem_e4_lidar_cam.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Calibration for top lidar->front rgb camera on GEM e4
# Calibration Date: 02/25/2025 05:09

lidar_to_camera: [
[ 2.89748006e-02, -9.99580136e-01, 3.68439439e-05, -3.07300513e-02],
[-9.49930618e-03, -3.12215512e-04, -9.99954834e-01, -3.86689354e-01],
[ 9.99534999e-01, 2.89731321e-02, -9.50437214e-03, -6.71425124e-01],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]
]
9 changes: 7 additions & 2 deletions GEMstack/knowledge/calibration/gem_e4_oak.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Calibration for front rgb camera->vehicle on GEM e4
# Calibration Date: 02/25/2025 05:09

reference: rear_axle_center # rear axle center
rotation: [[0,0,1],[-1,0,0],[0,-1,0]] # rotation matrix mapping z to forward, x to left, y to down, guesstimated
center_position: [1.78,0,1.58] # meters, center camera, guesstimated
rotation: [[ 0.00349517, -0.03239524, 0.99946903], # rotation component of camera -> vehicle matrix
[-0.99996547, 0.00742285, 0.0037375],
[-0.00753999, -0.99944757, -0.03236817]] # rotation matrix mapping z to forward, x to left, y to down, guesstimated
center_position: [ 1.75864913, 0.01238124, 1.54408419] # translation component of camera -> vehicle matrix (in meters)
9 changes: 7 additions & 2 deletions GEMstack/knowledge/calibration/gem_e4_ouster.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Calibration for top lidar->vehicle on GEM e4
# Calibration Date: 02/25/2025 05:09

reference: rear_axle_center # rear axle center
position: [1.10,0,2.03] # meters, calibrated by Hang's watchful eye
rotation: [[1,0,0],[0,1,0],[0,0,1]] #rotation matrix mapping lidar frame to vehicle frame
position: [1.1, 0.03773044170906172, 1.9525244316515322] # top lidar to vehicle matrix translation component
rotation: [[ 0.99941328, 0.02547416, 0.02289458], # top lidar to vehicle matrix rotation component
[-0.02530855, 0.99965159, -0.00749488],
[-0.02307753, 0.00691106, 0.99970979]]
5 changes: 4 additions & 1 deletion GEMstack/knowledge/defaults/computation_graph.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ components:
inputs: [vehicle, roadgraph, agents]
outputs: agent_intents
- relations_estimation:
inputs: [vehicle, roadgraph, agents, obstacles]
inputs: all
outputs: relations
- predicate_evaluation:
inputs: [vehicle, roadgraph, agents, obstacles]
Expand All @@ -52,3 +52,6 @@ components:
- trajectory_tracking:
inputs: [vehicle, trajectory]
outputs:
- signaling:
inputs: [intent]
outputs:
24 changes: 18 additions & 6 deletions GEMstack/knowledge/defaults/current.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,34 @@ control:
brake_speed : 2.0
pure_pursuit:
lookahead: 2.0
lookahead_scale: 3.0
crosstrack_gain: 1.0
lookahead_scale: 2.0
crosstrack_gain: 0.3
desired_speed: trajectory
longitudinal_control:
pid_p: 1.0
pid_i: 0.1
pid_p: 0.8
pid_i: 0.03
pid_d: 0.0
planning:
longitudinal_plan:
mode: 'real' # 'real' or 'sim'
yielder: 'expert' # 'expert', 'analytic', or 'simulation'
planner: 'dt' # 'milestone', 'dt', or 'dx'
desired_speed: 1.0
acceleration: 0.5
max_deceleration: 6.0
deceleration: 2.0
min_deceleration: 0.5
yield_deceleration: 0.5


#configure the simulator, if using
simulator:
dt: 0.01
real_time_multiplier: 1.0 # make the simulator run faster than real time by making this > 1
gnss_emulator:
dt: 0.1 #10Hz
dt: 0.05 #10Hz
#position_noise: 0.1 #10cm noise
#orientation_noise: 0.04 #2.3 degrees noise
#velocity_noise:
# constant: 0.04 #4cm/s noise
# linear: 0.02 #2% noise
# linear: 0.02 #2% noise
54 changes: 52 additions & 2 deletions GEMstack/knowledge/vehicle/dynamics.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,63 @@ def acceleration_to_pedal_positions(acceleration : float, velocity : float, pitc
if acceleration < -dry_decel*0.5 or (acceleration <= 0 and velocity < 0.1): # a little deadband to avoid oscillation
throttle_percent = 0.0 #drift to stop
else:
throttle_percent = accel_active_range[0] + (acceleration+dry_decel)/max_accel * (accel_active_range[1]-accel_active_range[0])
throttle_percent = accel_active_range[0] + ((acceleration+dry_decel)/max_accel * (accel_active_range[1]-accel_active_range[0]))
brake_percent = 0
else:
brake_percent = brake_active_range[0] + -(acceleration+dry_decel)/max_brake * (brake_active_range[1]-brake_active_range[0])
brake_percent = brake_active_range[0] + (-(acceleration+dry_decel)/max_brake * (brake_active_range[1]-brake_active_range[0]))
throttle_percent = 0
print(acceleration, (max(throttle_percent,0.0),max(brake_percent,0.0),1))
return (max(throttle_percent,0.0),max(brake_percent,0.0),1)


# Model that's built on top of Hang's model.
# Designed to allow for various scaling based on current vehicle velocity, and use of functions other than linear
# for scaling.
# DANGER: NEEDS TESTED
elif model == 'avery_v1':
model = settings.get('vehicle.dynamics.acceleration_model', 'avery_v1')
if gear != 1:
print("WARNING: Can't handle gears other than 1 yet")

max_accel = settings.get('vehicle.dynamics.max_accelerator_acceleration')[1] # m/s^2
max_brake = settings.get('vehicle.dynamics.max_brake_deceleration') # m/s^2
dry_decel = settings.get('vehicle.dynamics.internal_dry_deceleration') # m/s^2
accel_active_range = settings.get('vehicle.dynamics.accelerator_active_range') # pedal position fraction
brake_active_range = settings.get('vehicle.dynamics.brake_active_range') # pedal position fraction
mapping_function = settings.get('vehicle.dynamics.pedal_mapping_function', 'linear')
velocity_scalar = settings.get('vehicle.dynamics.velocity_scaling_factor', 0) # Adjust sensitivity based on velocity


def apply_function(value, function='linear'):
if function == 'linear':
value = value # already linear mapping

# no guarantee that these functions will give good results until we get more test data about accel -> pedal mapping.
elif function == 'quadratic':
value = value ** 2 # value squared
elif function == 'exponential':
value = (math.exp(value) - 1) / 2
elif function == 'log':
value = math.sqrt(math.log(value + 1)) + 0.2

value += velocity * velocity_scalar
return value

if acceleration > -dry_decel:
if acceleration < -dry_decel*0.5 or (acceleration <= 0 and velocity < 0.1): # a little deadband to avoid oscillation
throttle_percent = 0.0 #drift to stop
else:
throttle_percent = accel_active_range[0] + ((acceleration+dry_decel)/max_accel * (accel_active_range[1]-accel_active_range[0]))
throttle_percent = apply_function(throttle_percent, mapping_function)
brake_percent = 0
else:
brake_percent = brake_active_range[0] + (-(acceleration+dry_decel)/max_brake * (brake_active_range[1]-brake_active_range[0]))
brake_percent = apply_function(brake_percent, mapping_function)
throttle_percent = 0
print(acceleration, (max(throttle_percent,0.0),max(brake_percent,0.0),1))
return (max(throttle_percent,0.0),max(brake_percent,0.0),1)


elif model == 'kris_v1':
brake_max = settings.get('vehicle.dynamics.max_brake_deceleration')
reverse_accel_max = settings.get('vehicle.dynamics.max_accelerator_acceleration_reverse')
Expand Down
2 changes: 1 addition & 1 deletion GEMstack/knowledge/vehicle/gem_e2_dynamics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ max_accelerator_power_reverse: 10000.0 #Watts. Power (backwards) in reverse gea

acceleration_model : kris_v1
accelerator_active_range : [0.32, 1.0] #range of accelerator pedal where output acceleration is not flat
brake_active_range : [0,1] #range of brake pedal where output deceleration is not flat
brake_active_range : [0.25,1] #range of brake pedal where output deceleration is not flat

internal_dry_deceleration: 0.2 #m/s^2: deceleration due to internal dry friction (non-speed dependent)
internal_viscous_deceleration: 0.05 #1/s: scales the current velocity to get deceleration due to internal viscous friction (speed dependent)
Expand Down
22 changes: 12 additions & 10 deletions GEMstack/knowledge/vehicle/gem_e4_dynamics.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
mass: 300.0 #kg
mass: 700.0 #kg
gravity: 9.81 #m/s^2
longitudinal_friction : 1.0 # unitless
lateral_friction : 1.0 # unitless
max_brake_deceleration: 8.0 #m/s^2. Deceleration at max brake pedal
max_accelerator_acceleration: #m/s^2. Acceleration at max accelerator pedal, by gear
longitudinal_friction : 1.0 # unitless TODO find make/model of tires
lateral_friction : 1.0 # unitless (I will bet these things do not have 1 coefficent of fricition)
max_brake_deceleration: 8.0 #m/s^2. Deceleration at max brake pedal TODO (un cap this cap)
max_accelerator_acceleration: #m/s^2. Acceleration at max accelerator pedal, by gear (un cap this cap)
- 0.0
- 5.0
max_accelerator_acceleration_reverse: 2.5 #m/s^2. Acceleration (backwards) in reverse gear
max_accelerator_power: #Watts. Power at max accelerator pedal, by gear
max_accelerator_power: #Watts. Power at max accelerator pedal, by gear (updated from website)
- 0.0
- 10000.0
max_accelerator_power_reverse: 10000.0 #Watts. Power (backwards) in reverse gear
- 5000.0
max_accelerator_power_reverse: 5000.0 #Watts. Power (backwards) in reverse gear

acceleration_model : kris_v1
acceleration_model : hang_v1
accelerator_active_range : [0.2, 1.0] #range of accelerator pedal where output acceleration is not flat
brake_active_range : [0,1] #range of brake pedal where output deceleration is not flat
brake_active_range : [0.5,1] #range of brake pedal where output deceleration is not flat

internal_dry_deceleration: 0.2 #m/s^2: deceleration due to internal dry friction (non-speed dependent)
internal_viscous_deceleration: 0.05 #1/s: scales the current velocity to get deceleration due to internal viscous friction (speed dependent)
aerodynamic_drag_coefficient: 0.01 #units in s, scaled by velocity^2 to get deceleration due to aerodynamic drag
acceleration_deadband: 0.1 #m/s^2: minimum acceleration to be considered non-zero
velocity_scaling_factor: 0.0 # Velocity * this scalar will be added to brake and throttle percent.
pedal_mapping_function: linear
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ ros_topics:
front_camera: /oak/rgb/image_raw
front_depth: /oak/stereo/image_raw
gnss: /septentrio_gnss/insnavgeod

21 changes: 21 additions & 0 deletions GEMstack/mathutils/quadratic_equation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import math

def quad_root(a : float, b : float, c : float) -> float:
"""Calculates the roots of a quadratic equation

Args:
a (float): coefficient of x^2
b (float): coefficient of x
c (float): constant term

Returns:
float: returns all valid roots of the quadratic equation
"""
x1 = (-b + max(0,(b**2 - 4*a*c))**0.5)/(2*a)
x2 = (-b - max(0,(b**2 - 4*a*c))**0.5)/(2*a)

if math.isnan(x1): x1 = 0
if math.isnan(x2): x2 = 0

valid_roots = [n for n in [x1, x2] if not type(n) is complex]
return valid_roots
Loading
Loading