From e548494b3908a43ee3c22fed1187db6aecd1fe08 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Sat, 18 May 2019 18:13:10 +0900 Subject: [PATCH 1/7] Update users_comments.md --- users_comments.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/users_comments.md b/users_comments.md index a68b828f..97028065 100644 --- a/users_comments.md +++ b/users_comments.md @@ -208,6 +208,14 @@ Mr AtsushiSakai ..
Your work and teaching is light for me
thank you very --Karim Anass +--- + +Thank You + +--Anonymous + + + ========= # Citations From f0749b615055ddd16fae24a3ff698f6362d77ef4 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Mon, 20 May 2019 20:01:24 +0900 Subject: [PATCH 2/7] Update users_comments.md --- users_comments.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/users_comments.md b/users_comments.md index 97028065..a1d94010 100644 --- a/users_comments.md +++ b/users_comments.md @@ -214,6 +214,11 @@ Thank You --Anonymous +--- + +I've learned the robotics from the traditional way of solving problem through finding packages and reading papers. This amazing project is unbelievably helpful for new-comers to learn and get familiar with the algorithms. Gods know how many hours you've taken to sort all the materials and written everything into one single coherent project. I'm truly amazed and deepest appreciation. + +--Ewing Kang ========= From d25d15ccc7539e9ad98ca42373b53b2c7af2f15d Mon Sep 17 00:00:00 2001 From: AfroDisco Date: Wed, 22 May 2019 14:19:29 +0200 Subject: [PATCH 3/7] Fixed the sampling function When creating a simple square of obstacles, the sampled points are not inside of it, if it is centered around (0, 0) --- PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py b/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py index d42592a0..65a56097 100644 --- a/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py +++ b/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py @@ -249,8 +249,8 @@ def sample_points(sx, sy, gx, gy, rr, ox, oy, obkdtree): sample_x, sample_y = [], [] while len(sample_x) <= N_SAMPLE: - tx = (random.random() - minx) * (maxx - minx) - ty = (random.random() - miny) * (maxy - miny) + tx = (random.random() * (maxx - minx)) + minx + ty = (random.random() * (maxy - miny)) + miny index, dist = obkdtree.search(np.array([tx, ty]).reshape(2, 1)) From e1d402dcd6fdfcb1b4b96a1391469b832b66165c Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Tue, 28 May 2019 21:52:37 +0900 Subject: [PATCH 4/7] Create FUNDING.yml --- .github/FUNDING.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..e9456378 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms +patreon: Atsushi Sakai +custom: https://www.paypal.me/myenigmapay/ From 95c2e24801afa05d7d455b2800a2940187511807 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Tue, 28 May 2019 21:54:39 +0900 Subject: [PATCH 5/7] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index e9456378..80f4984c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ # These are supported funding model platforms -patreon: Atsushi Sakai +patreon: myenigma custom: https://www.paypal.me/myenigmapay/ From 6ee01460f21bb405ed3b0f7822137ef3838909d7 Mon Sep 17 00:00:00 2001 From: Atsushi Sakai Date: Wed, 29 May 2019 18:19:11 +0900 Subject: [PATCH 6/7] Update users_comments.md --- users_comments.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/users_comments.md b/users_comments.md index a1d94010..3fef92a0 100644 --- a/users_comments.md +++ b/users_comments.md @@ -220,6 +220,12 @@ I've learned the robotics from the traditional way of solving problem through fi --Ewing Kang +--- + +Hey, I'm a student and I just recently got into robotics, and visited your repository multiple times. Today I was super happy to find the link to Patreon! I am impressed by didactic quality of the repo, keep up the good work! + +--Carolina Bianchi + ========= From 268b3e8123e3272bd86ad60385ad38a55b475ae5 Mon Sep 17 00:00:00 2001 From: AfroDisco Date: Wed, 29 May 2019 15:35:00 +0200 Subject: [PATCH 7/7] Code live lock when no path is found Added a simple boolean variable to track the state of the algorithm and return something empty when no path is found. Added and fixed (partially) the documentation --- .../probabilistic_road_map.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py b/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py index 65a56097..351232d8 100644 --- a/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py +++ b/PathPlanning/ProbabilisticRoadMap/probabilistic_road_map.py @@ -161,12 +161,18 @@ def generate_roadmap(sample_x, sample_y, rr, obkdtree): def dijkstra_planning(sx, sy, gx, gy, ox, oy, rr, road_map, sample_x, sample_y): """ + sx: start x position [m] + sy: start y position [m] gx: goal x position [m] - gx: goal x position [m] + gy: goal y position [m] ox: x position list of Obstacles [m] oy: y position list of Obstacles [m] - reso: grid resolution [m] - rr: robot radius[m] + rr: robot radius [m] + road_map: ??? [m] + sample_x: ??? [m] + sample_y: ??? [m] + + @return: Two lists of path coordinates ([x1, x2, ...], [y1, y2, ...]), empty list when no path was found """ nstart = Node(sx, sy, 0.0, -1) @@ -175,9 +181,12 @@ def dijkstra_planning(sx, sy, gx, gy, ox, oy, rr, road_map, sample_x, sample_y): openset, closedset = dict(), dict() openset[len(road_map) - 2] = nstart + path_found = True + while True: if not openset: print("Cannot find path") + path_found = False break c_id = min(openset, key=lambda o: openset[o].cost) @@ -217,6 +226,9 @@ def dijkstra_planning(sx, sy, gx, gy, ox, oy, rr, road_map, sample_x, sample_y): openset[n_id].pind = c_id else: openset[n_id] = node + + if path_found is False: + return [], [] # generate final course rx, ry = [ngoal.x], [ngoal.y]