* 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>
* 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
* add state machine
state_machine test
state_machine_update
* add state machine test/doc
* state machine update
* state machine generate_plantuml() can show diagram by using https://www.plantuml.com/plantuml/
* refactor: rename files and update references for inverted pendulum and path tracking modules
* refactor: rename inverted pendulum control files and update type check references
* refactor: update import statements to use consistent casing for InvertedPendulum module
* improve LQT steering and speed control
* improve LQT steering and speed control
* improve LQT steering and speed control doc
* improve LQT steering and speed control doc
* improve LQT steering and speed control doc
* improve LQT steering and speed control doc
* 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
* fix bugs in check a position inside the polygon
It is possible that the position `(iox, ioy)` to be checked with `iox == min_x`. This will cause a incorrect inside check.
* add a boundary condition for gridmap
* Add optional robot radius to RRT/RRTStar path planners.
* update __init__ and check_collision to include radius
* during animation, if a robot radius is given then it is drawn
* Add test for robot radius
* Correct import error
* Correct missing robot_radius errors
* Address "expected 2 blank lines, found 1" error
* Address "line too long" errors
* Add missing argument description.
* Remove collision_check_with_xy and replace with check_collision
* Fix "missing whitespace after ','" error
* Update PathPlanning/ClosedLoopRRTStar/closed_loop_rrt_star_car.py
Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
* clean up clothoidal_paths.py
* add unit tests for clothoid_paths
* add unit tests for clothoid_paths
* add unit tests for clothoid_paths
* code clean up
* code clean up
* code clean up
* code clean up
* code clean up
* code clean up
* code clean up
* code clean up
* Add inverted_pendulum_lqr_control
* reorganize document of inverted pendulum control module
* Refactor inverted_pendulum_lqr_control.py
* Add doccument for inverted pendulum control
* Corrected inverted pedulum LQR control doccument
* Refactor inverted pendulum control by mpc and lqr
* Add unit test for inverted_pendulum_lqr_control.py
* Fix ModuleNotFoundError when executing test in the tests folder
Signed-off-by: Trung Kien <letrungkien.k53.hut@gmail.com>
* Improve model_predictive_speed_and_steer_control
- Fix typo
- Using @ for matrix multiplication instead of * with have been deprecated in CVXPY1.1
- Fix missing conftest module in test file
Signed-off-by: Trung Kien <letrungkien.k53.hut@gmail.com>
* Added speed limitation of the robot
* Removed leading underscores for global vars
* Added unit test for robot speed limitation
* Modified x/abs(x) to np.sign(x); fixed code style
* Removed 'random' from test func header comment
* Added Robot class for move to pose
* Revert
* Added Robot class for move to pose
* Added a type annotation for Robot class
* Fixed the annotaion comment
* Moved instance varaible outside of the Robot class
* Fixed code style Python 3.9 CI
* Removed whitespaces from the last line
* Applied PR #596 change requests
* Fixed typos
* Update Control/move_to_pose/move_to_pose_robot_class.py
Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
* Moved PathFinderController class to move_to_pose
* Fixed issue #600
* Added update_command() to PathFinderController
* Removed trailing whitespaces
* Updated move to pose doc
* Added code and doc comments
* Updated unit test
* Removed trailing whitespaces
* Removed more trailing whitespaces
Co-authored-by: Atsushi Sakai <asakai.amsl+github@gmail.com>
* Added speed limitation of the robot
* Removed leading underscores for global vars
* Added unit test for robot speed limitation
* Modified x/abs(x) to np.sign(x); fixed code style
* Removed 'random' from test func header comment
* Without equals sign, sometimes get points that are in the wrong direction - relative to the points before and after it- when change in x or change in y along path is 0
* Created test script for dubins path generator
* Made len == 0 it's own case, also changed 'l' to 'len' to appease travisCI
* More variable renaming to appease CI
* Broke == 0 into its own case in dubins planner, also Renaming files to appease CI
* Reverting some naming changes
* Turns out theres already a test for dubins.. not sure how I missed that
* Note to self: run the test cases on your own before throwing them at CI
* Added handling of length=0 case in generate_local_course()
* Missed reverting 'mode' back to 'm' in one spot
* Addressing style issues (line length)
* Mostly works, now just need to setup linear regression to solve for weights
* Re-arranged class
* Wrote DMP program and added tests file
* Styling fixes
* More styling
* Missed one indent
* Multi-dimension path learning (e.g. in x and y instead of just x)
* Added potential field obstacle avoidance
* Potential field working much better but has issues with reaching goal state
* Path ending to short not a result of obstacles, should be fix-able
* Mostly working! end won't go to goal
* split DMP and path following
* pretty close
* Okay this is working pretty well
* looks.. okay. was using the wrong vector before
* a plan to fix this mess
* Okay seriously going to pivot to the dubins approach im done with potential field lol
* Finished obstacle circle handling (and merging circles that are closer than their radii)
* Finished circle event finder function
* Some progress in preparing for dubins curves
* Finished angle finding algo, need to test
* Okay getting back to this, going to ignore the navigation and just focus on path generation since that's what DMP is for
* Moved DMP files to path planning
* changed folder name
* Made demo path cooler
* All working and added visualization tools (will remove
* Fixed unit test and handled TODOs
* not gonna handle this one
* demo now scales with data
* CI errors
* CI errors
* Fixing code style issues
* more styling
* fixing CI errors
* formatting
* Removed dead code
* removed unused imports
* removed uneccesary initialization
* Applying PR feedback
* fixing CI errors
* added description to header and removed unused variable
* fix dubins path length bug and clean up codes.
* fix line length CI error
* fix line length CI error
* fix line length CI error
* fix line length CI error
* fix line length CI error
* fix line length CI error
* fix line length CI error
* fix line length CI error
* Add D* Lite.
* Add test. Minor changes
* Modified based on LGTM report
* Fix linter errors
* Fixes and lint.
* Update README.md
Made requested changes
Add transform between world and grid coordinates to allow negative wold coordinates
Modify to allow diagonal motion
* Added display of previous and new computed path
* Add 3d support ICP
* icp_matching function returns R,T corresponding to 2D or 3D set of points
* update_homogeneuous_matrix - general operations for translation and rotation matrixes
* Add test for 3d point cloud (with 2d visualization)
* Separate test for 3d points to main_3d_points
* Add test for ICP 3d
* Correct style
* Add space
* Style correction
* Add more spaces
* Add 3d visualizing for ICP
* Style corrections
* Delete spaces
* Style correction
* remove space
* Separate plot drawing
* plot drawing in a separate function for both 2D and 3D versions
* figure creating before while loop
* Style correction
* Comment 3d plot drawing
Co-authored-by: Shamil GEMUEV <https://github.maf-roda.com/>
* Update greedy_best_first_search.py
parent_index should be pind. other wise it cann't work
* add breadth first search test
* Add greedy best first search test
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up
* Test code clean up