508 Commits

Author SHA1 Message Date
Jonathan Schwartz
d918947360 Collaborative astar (#1247)
* consolidate Node definition

* add base class for single agent planner

* add base class for single agent planner

* its working

* use single agent plotting util

* cleanup, bug fix, add some results to docs

* remove seeding from sta* - it happens in Node

* remove stale todo

* rename CA* and speed up plotting

* paper

* proper paper (ofc its csail)

* some cleanup

* update docs

* add unit test

* add logic for saving animation as gif

* address github bot

* Revert "add logic for saving animation as gif"

This reverts commit 639167795c.

* fix tests

* docs lint

* add gifs

* copilot review

* appease mypy
2025-07-16 21:56:00 +09:00
Shibo Liu
0e93ecb669 Fix/path smoothing robot radius (#1231)
* Fix: Include robot_radius in path_smoothing collision check

* Test: Add unit test to verify smoothed path respects robot_radius
2025-06-21 08:04:57 +09:00
atm
4ffd8e76e3 Optimize is_obstacle using set (#1223) 2025-06-07 20:07:06 +09:00
Yutharsan
453c25e461 Add root directory to system path for lattice planner (#1221) 2025-05-25 13:57:02 +09:00
Atsushi Sakai
73e1c0bebc Add "Code Link" sections and rename classes for consistency (#1214)
This commit adds "Code Link" sections to documentation across various path planning modules, linking to relevant class and function APIs. Additionally, several class renaming changes were made, such as `Dijkstra` to `DijkstraPlanner` and `eta3_trajectory` to `Eta3SplineTrajectory`, to enhance naming consistency. Minor fixes include file restructuring and image renaming for the RRT module.
2025-05-05 17:29:45 +09:00
Atsushi Sakai
22cbee4921 Standardize "Ref:" to "Reference" across files (#1210)
Updated all instances of "Ref:" to "Reference" for consistency in both code and documentation. This change improves clarity and aligns with standard terminology practices.
2025-05-02 10:01:19 +09:00
Jonathan Schwartz
aa61a6ea57 Safe Interval Path Planner (#1184)
* it works and is WAY faster than a*

* some bug fixes from testing different scenarios

* add some docs & address todos

* add sipp test

* spiff up comments

revert changes in speed-up

* explain what the removal is doing

* linting

* fix docs build

* docs formatting

* revert change to file (maybe linter did it?)

* point at gifs in gifs repo

* use raw githubusercontent gif links

* change formatting on planner results

* format output differently

* proper formatting final

* missing underline

* revert unintended change

* grammar + add descriptions for gifs

* missing ::

* add title to gifs section

* dont use sections for sub-sections

* constent a* spelling

* Update PathPlanning/TimeBasedPathPlanning/GridWithDynamicObstacles.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update tests/test_safe_interval_path_planner.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/modules/5_path_planning/time_based_grid_search/time_based_grid_search_main.rst

Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>

* Update PathPlanning/TimeBasedPathPlanning/SafeInterval.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* addressing comments

* revert np.full change

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
2025-03-17 22:01:07 +09:00
Jonathan Schwartz
1308e76424 Add expanded node set to SpaceTime AStar (#1183)
* speed up spacetime astar

* forgot to include hash impl on Position

* add condition to test on node expansions

* remove heuristic from Node __hash__ impl

* update rst with note about optimization
2025-03-13 23:24:53 +09:00
Surya Singh
30a61add12 bug: fix typo on line 6 of SpaceTimeAStar.py (#1182)
* bug: fix typo on line 6 of SpaceTimeAStar.py

* bug: removed extra line return on line 11 of SpaceTimeAStar.py
2025-03-07 23:01:37 +09:00
Jonathan Schwartz
0c8ff11645 Space-Time AStar (#1170)
* wip - sketch out obstacles

* move to correct path

* better animation

* clean up

* use np to sample points

* implemented time-based A*

* cleaning up Grid + adding new obstacle arrangement

* added unit test

* formatting p1

* format STA* file

* remove newlines by docstrings

* linter

* working on typehints

* fix linter errors

* lint some more

* appease AppVeyor

* dataclasses are 🔥

* back to @total_ordering

* trailing whitespace

* add docs page on SpaceTimeA*

* docs lint

* remove trailing newlines in doc

* address comments

* Update docs/modules/5_path_planning/time_based_grid_search/time_based_grid_search_main.rst

---------

Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
2025-02-25 20:53:36 +09:00
Aglargil
c92aaf36d8 feat: add ElasticBands (#1156)
* feat: add ElasticBands

* feat: Elastic Bands update

* feat: ElasticBands update

* feat: ElasticBands add test

* feat: ElasticBands reduce occupation

* fix: ElasticBands test

* feat: ElasticBands remove tangential component

* feat: Elastic Bands update

* feat: Elastic Bands doc

* feat: Elastic Bands update

* feat: ElasticBands update
2025-02-17 19:47:04 +09:00
parmaski
2a489b3b82 Fix: dead link URL in doc (#1087)
* fix dead url links

* change link to MPC course

* remove dead link
2025-01-24 13:28:12 +09:00
Atsushi Sakai
95eedba447 Fix lint error (#1124) 2025-01-24 13:24:26 +09:00
Aglargil
5a66105ff5 Extend frenet_optimal_trajectory to support more scenarios (#1114)
* feat: Add third derivative and curvature rate calculations to CubicSpline classes

* feat: Extend frenet_optimal_trajectory to support more scenarios

* fix: frenet optimal trajectory type check

* fix: cubic spline planner code style check

* fix: frenet optimal trajectory review

* feat: frenet_optimal_trajectory update doc

* fix: frenet optimal trajectory review

* fix: frenet optimal trajectory

* fix: frenet optimal trajectory
2025-01-22 18:57:12 +09:00
Aryaz Eghbali
1cb45a5d3b Fixed multitype list (#1076)
* Fixed multitype list

* Cast to float

* Reverted to all floats

* Moved all remaining to float
2025-01-20 17:16:20 +09:00
Mritunjai
4c2e3e8f9b hashmap instead of a linear search (#1110) 2025-01-20 13:29:15 +09:00
parmaski
b137ba1817 fix behavior when path is not found (#1104) 2024-12-21 19:40:30 +09:00
parmaski
b5988dbcbc Fix: Hybrid A* direction is incorrect (#1086)
* fix to preseve direction history

* add path to Reeds Shepp and its users e.g. hybrid A*
2024-12-21 19:39:16 +09:00
Surabhi Gupta
af456c70b0 Implement Catmull-Rom Spline with test and documentation (#1085) 2024-12-20 22:12:31 +09:00
Aryaz Eghbali
1f4214012a Performance improvement (#1075) 2024-12-20 22:00:49 +09:00
RyuYamamoto
3504db00a6 fix: typo (#1023) 2024-05-26 15:42:25 +09:00
YSFツ
ed5004b0f8 fixed hard-coded plot limits (#1018) 2024-05-18 18:56:04 +09:00
William L Thomson Jr
6e743ef31e PathPlanning/InformedRRTStar/informed_rrt_star.py: Fix hard coded graph axis (#982)
- Use self.min_rand, self.max_rand variable values in place of -2, 15
2024-02-24 18:35:13 +09:00
Videh Patel
d7060f6028 Reopen: Added missing path types (#949)
* added missing RS path types

* modified assert condition in test3

* removed linting errors

* added sign check to avoid non RS paths

* Mathematical description of RS curves

* Undid debugging changes

* Added large step_size consideration

* renamed test3 to test_too_big_step_size

---------

Co-authored-by: Videh Patel <videh.patel@fluxauto.xyz>
2024-01-08 21:36:49 +09:00
Videh Patel
cc3fd0c55e Using util.angle_mod in all codes. #684 (#946)
* switched to using utils.angle_mod()

* switched to using utils.angle_mod()

* renamed mod2pi to pi_2_pi

* Removed linting errors

* switched to using utils.angle_mod()

* switched to using utils.angle_mod()

* renamed mod2pi to pi_2_pi

* Removed linting errors

* annotation changes and round precision

* Reverted to mod2pi

---------

Co-authored-by: Videh Patel <videh.patel@fluxauto.xyz>
2024-01-02 22:39:48 +09:00
Atsushi Sakai
e3f7979c3c Update dstar.py (#959) 2023-12-22 12:13:59 +09:00
Nivid Patel
b2f866a5cd Update car.py (#957)
Changed comment at line 62 and 64
2023-12-19 22:03:55 +09:00
flyingmars
3efbc94f9c fix d_star (#898) 2023-12-18 22:53:03 +09:00
Yuki Onishi
2c4d745077 Revert a parameter in grid_based_sweep_coverage_path_planner to correct (#917)
the planning results
2023-10-15 10:25:22 +09:00
Atsushi Sakai
0fc769421f Adding NDT mapping script and doc (#867)
* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc

* Adding ndt mapping script and doc
2023-07-06 23:12:43 +09:00
Atsushi Sakai
4d71470631 upgrade numpy to 1.25.0 and fix bugs (#861) 2023-07-01 15:30:32 +09:00
Yangshen⚡Deng
874ebff495 fix: set rrt_star to find the shortest path (#834)
* fix: set rrt_star to find the shortest path

* fix: code style white space
2023-05-16 21:43:57 +09:00
Erkam Kavak
dd6d046bf9 fix added for checking if a neighbor is inside openList (#832) 2023-05-16 21:42:18 +09:00
RyderCRD
80124f20e8 Fix the rewire() of rrt* path planning (#550) (#812)
* Update rrt_star_reeds_shepp.py to fix #550

Add step_size attribute to RRTStarReedsShepp, and a method set_random_seed() to set the random seed, with two test cases.

* Update rewire() of rrt_star.py

Update rewire() of rrt_star.py to fix #550.  Since the old version didn't assign path_yaw of edge_node to near_node, the old rewire() doesn't fit rrt_star_reeds_shepp.py

* Update reeds_shepp_path_planning.py

Limit the range of phi for the sake of planning speed, and simplify the the calculation process in straight_left_straight().

* Update reeds_shepp_path_planning.py

* Remove unnecessary cost calculation

Cost of edge_node is calculated in line 221, and self.node_list[i] is replaced to edge_node, so no need to update.

* Update reeds_shepp_path_planning.py
2023-04-27 23:04:39 +09:00
Atsushi Sakai
cb08c39a93 Add Normal vector estimation (#781)
* add normal vector calculation routine.

* add normal vector calculation routine.

* add normal vector estimation

* fix unittests in not matplotlib frontend

* fix lint ci

* add ransac based normal distribution estimation

* add normal_vector_estimation_main.rst

* normal_vector_estimation_main.rst を更新

* update normal_vector_estimation_main.rst

* update normal_vector_estimation_main.rst

* normal_vector_estimation_main.rst

* normal_vector_estimation_main.rst を更新

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst

* add normal_vector_estimation_main.rst
2023-03-11 17:54:18 +09:00
Atsushi Sakai
732ed3ea6b clean up informed_rrt_star.py (#785)
* clean up informed_rrt_star.py

* clean up informed_rrt_star.py
2023-01-26 22:46:00 +09:00
Atsushi Sakai
489ee5c0e3 fix github scanning alerts (#784) 2023-01-26 21:56:42 +09:00
Kadir Haspalamutgil
98d5851c4d Utilize numpy to reduce calculation time (#767)
* Utilize numpy to reduce calculation time

Change-Id: I6e421a1c2524a3d8f8875121a1a6d2ed832c3150

* styling updates to follow flake8

Change-Id: I909d49b40e6792efcb796846c97a0d984471d3c9

* improves readabilty for d_star_lite

Change-Id: Ic329c2140f2200b49feeb03c588d7a805b96cbdc

* removes self.detected_obstacles

Change-Id: I4a0f2a424f17f44de3b444cb9c2e8e715d761d34

* styling for flake8

Change-Id: Id55c5972cbe76a2f6a69527dbf770f9bdf059109

Co-authored-by: Kadir Haspalamutgil <kadir.haspalamutgil@togethertech.com>
2023-01-08 23:46:46 +09:00
U S A M A H
ad4067df89 Change 'Path is find!' to 'Path found!' (#773)
Minor - correct grammatical error :)
2023-01-08 22:04:51 +09:00
Andrey Bozhko
2916273e62 Update loop conditions to be more idiomatic; fix missing imports (#768)
* missing import

* use while true
2023-01-01 20:44:34 +09:00
Christian Clauss
1d683435c6 Undefined name: import sys for line 188 (#764) 2022-12-31 15:51:17 +09:00
KohMat
bcb2c863eb Fix the start state to use the current accel in frent planner(#755) (#756)
The robot didn't reach the target velocity when running frenet_optimal_trajectory.py.

To fix this, I changed the constraints for determining polynomials that generate longitudinal trajectories.

Expressly, I set the initial acceleration to the current acceleration.
2022-11-20 13:19:42 +09:00
Atsushi Sakai
955ad60ee3 Remove pandas dependency (#725)
* Remove pandas dependency

* Remove pandas dependency
2022-09-30 09:14:27 +09:00
Atsushi Sakai
e40b4d9dec Enhance bspline code and doc clean up (#720)
* Start bspline code and doc cluean up

* code clean up

* code clean up

* code clean up

* code clean up

* improve doc

* improve doc

* improve doc

* improve doc

* improve doc

* improve doc

* improve doc

* improve doc

* improve codes.

* improve codes.

* improve codes.
2022-09-27 21:49:53 +09:00
Atsushi Sakai
76b0d04a3c using pathlib based local module import (#722)
* using pathlib based local module import

* remove unused import
2022-09-11 07:21:37 +09:00
Atsushi Sakai
def289b723 enhance cubic spline path doc (#698)
* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cublic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc

* enhance cubic spline path doc
2022-07-24 14:58:14 +09:00
Atsushi Sakai
dc879da7b2 Using utility rot_mat_2d (#683) 2022-05-22 16:53:14 +09:00
Atsushi Sakai
31178c8e37 Enhance dubins path docs (#679)
* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs

* Enhance dubins path docs
2022-05-17 21:57:07 +09:00
Drake
e18799cbb7 modify end node's state (#656) 2022-05-07 17:20:20 +09:00
Atsushi Sakai
32b545fe7c Enhance dubins path docs (#664)
* Engance dubins path docs

* Update dubins_path.rst

* fix doc artifact link in CI

* wip

* wip

* wip

* Update dubins_path.rst

* wip

* wip

* wip

* wip

* wip
2022-05-07 13:19:30 +09:00