<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          開(kāi)源了!機(jī)器人技術(shù)常用的路徑規(guī)劃算法(含動(dòng)畫(huà)演示)

          共 1511字,需瀏覽 4分鐘

           ·

          2020-12-09 19:42

          【導(dǎo)語(yǔ)】:一個(gè)實(shí)現(xiàn)了機(jī)器人技術(shù)中常用的路徑規(guī)劃算法的開(kāi)源庫(kù),還有動(dòng)圖直觀演示運(yùn)行過(guò)程。該庫(kù)公開(kāi)時(shí)間不長(zhǎng),在 GitHub 已有 1200+ Star。


          簡(jiǎn)介


          在機(jī)器人研究領(lǐng)域,給定某一特定任務(wù)之后,如何規(guī)劃?rùn)C(jī)器人的運(yùn)動(dòng)方式至關(guān)重要。PathPlanning 是使用 Python 實(shí)現(xiàn)的存儲(chǔ)庫(kù),實(shí)現(xiàn)了機(jī)器人技術(shù)中常用的路徑規(guī)劃算法。開(kāi)發(fā)者還為每個(gè)算法設(shè)計(jì)了動(dòng)畫(huà)來(lái)演示運(yùn)行過(guò)程,相當(dāng)直觀清晰。


          項(xiàng)目地址:

          https://github.com/zhm-real/PathPlanning


          這個(gè)項(xiàng)目的貢獻(xiàn)者目前是 4 位國(guó)內(nèi)開(kāi)發(fā)者。


          目錄結(jié)構(gòu)


          PathPlanning 庫(kù)實(shí)現(xiàn)的路徑規(guī)劃算法包括基于搜索和基于采樣的規(guī)劃算法,目錄結(jié)構(gòu)如下:

          ?


          下面我們直接通過(guò)開(kāi)發(fā)者設(shè)計(jì)的動(dòng)圖了解各個(gè)算法的運(yùn)行過(guò)程:


          基于搜索的路徑規(guī)劃算法


          (1)最佳路徑優(yōu)先搜索算法

          ?

          """
          Best-First?Searching
          @author:?huiming?zhou
          """


          import?os
          import?sys
          import?math
          import?heapq

          sys.path.append(os.path.dirname(os.path.abspath(__file__))?+
          ????????????????"/../../Search_based_Planning/")

          from?Search_2D?import?plotting,?env
          from?Search_2D.Astar?import?AStar


          class?BestFirst(AStar):
          ????"""BestFirst?set?the?heuristics?as?the?priority?
          ????"""

          ????def?searching(self):
          ????????"""
          ????????Breadth-first?Searching.
          ????????:return:?path,?visited?order
          ????????"""


          ????????self.PARENT[self.s_start]?=?self.s_start
          ????????self.g[self.s_start]?=?0
          ????????self.g[self.s_goal]?=?math.inf
          ????????heapq.heappush(self.OPEN,
          ???????????????????????(self.heuristic(self.s_start),?self.s_start))

          ????????while?self.OPEN:
          ????????????_,?s?=?heapq.heappop(self.OPEN)
          ????????????self.CLOSED.append(s)

          ????????????if?s?==?self.s_goal:
          ????????????????break

          ????????????for?s_n?in?self.get_neighbor(s):
          ????????????????new_cost?=?self.g[s]?+?self.cost(s,?s_n)

          ????????????????if?s_n?not?in?self.g:
          ????????????????????self.g[s_n]?=?math.inf

          ????????????????if?new_cost?#?conditions?for?updating?Cost
          ????????????????????self.g[s_n]?=?new_cost
          ????????????????????self.PARENT[s_n]?=?s

          ????????????????????#?best?first?set?the?heuristics?as?the?priority?
          ????????????????????heapq.heappush(self.OPEN,?(self.heuristic(s_n),?s_n))

          ????????return?self.extract_path(self.PARENT),?self.CLOSED


          def?main():
          ????s_start?=?(5,?5)
          ????s_goal?=?(45,?25)

          ????BF?=?BestFirst(s_start,?s_goal,?'euclidean')
          ????plot?=?plotting.Plotting(s_start,?s_goal)

          ????path,?visited?=?BF.searching()
          ????plot.animation(path,?visited,?"Best-first?Searching")??#?animation


          if?__name__?==?'__main__':
          ????main()


          (2)Dijkstra搜索算法

          ??


          (3)A*搜索算法

          ?


          (4)雙向A* 搜索算法

          ?


          (5)重復(fù) A*搜索算法

          ?


          (6)ARA* 搜索算法

          ?


          (7)LRTA* 搜索算法

          ?


          (8)RTAA* 搜索算法

          ?


          (9)D* 搜索算法

          ?


          (10)終身規(guī)劃 A* 搜索算法

          ?


          (11)Anytime D* 搜索算法:變動(dòng)較小

          ?


          (12)Anytime D* 搜索算法:變動(dòng)較大

          ?


          基于采樣的路徑規(guī)劃算法


          (1)RRT 算法

          ?


          (2)目標(biāo)偏好 RRT 算法

          ?


          (3)RRT_CONNECT 算法

          ?


          (4)Extended_RRT 算法

          ?


          (5)動(dòng)態(tài) RRT 算法

          ?


          (6)N = 10000 時(shí),rrt * 算法

          ??


          (7)N = 1000 時(shí),rrt*-Smart 算法

          ?


          (8)FMT* 算法

          ?


          (9)N =1000 時(shí),Informed rrt * 算法

          ?


          (10)BIT* 算法

          ?


          以上是開(kāi)發(fā)者設(shè)計(jì)的動(dòng)畫(huà),是不是很直觀生動(dòng)呢?對(duì)路徑規(guī)劃算法感興趣的童鞋可以到項(xiàng)目主頁(yè)詳細(xì)了解。


          -?EOF -?


          更多優(yōu)秀開(kāi)源項(xiàng)目(點(diǎn)擊下方圖片可跳轉(zhuǎn))



          如果覺(jué)得本文介紹的開(kāi)源項(xiàng)目不錯(cuò),歡迎轉(zhuǎn)發(fā)推薦給更多人。



          分享、點(diǎn)贊和在看

          支持我們分享更多優(yōu)秀開(kāi)源項(xiàng)目,謝謝!

          瀏覽 85
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  极品漂亮人妻找猛男3p | 豆花视频在线看成人网站 | 青青青操操 | 九七精品| 成人av影音先锋 成人电影无码三区 |