* build(deps): update cvxpy version from 1.5.3 to 1.6.5 in requirements
* Add ECOS solver and improve solver handling for stability
Added ECOS to requirements and enhanced compatibility with cvxpy solvers by specifying 'order' for matrix reshaping. Updated solver configurations in rocket landing and pendulum control for consistency and reliability. Improved test behavior by enforcing stricter warning handling in pytest.
* 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