色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

盤點史上最全的Python算法集

電子工程師 ? 來源:cc ? 2019-02-21 10:04 ? 次閱讀

本文是一些機器人算法(特別是自動導航算法)的Python代碼合集。

其主要特點有以下三點:選擇了在實踐中廣泛應用的算法;依賴最少;容易閱讀,容易理解每個算法的基本思想。希望閱讀本文后能對你有所幫助。

前排友情提示,文章較長,建議收藏后再看。

目錄

環境需求

怎樣使用

本地化

擴展卡爾曼濾波本地化

無損卡爾曼濾波本地化

粒子濾波本地化

直方圖濾波本地化

映射

高斯網格映射

光線投射網格映射

k均值物體聚類

圓形擬合物體形狀識別

SLAM

迭代最近點匹配

EKF SLAM

FastSLAM 1.0

FastSLAM 2.0

基于圖的SLAM

路徑規劃

動態窗口方式

基于網格的搜索

迪杰斯特拉算法

A*算法

勢場算法

模型預測路徑生成

路徑優化示例

查找表生成示例

狀態晶格規劃

均勻極性采樣(Uniform polar sampling)

偏差極性采樣(Biased polar sampling)

路線采樣(Lane sampling)

隨機路徑圖(PRM)規劃

Voronoi路徑圖規劃

快速搜索隨機樹(RRT)

基本RRT

RRT*

基于Dubins路徑的RRT

基于Dubins路徑的RRT*

基于reeds-shepp路徑的RRT*

Informed RRT*

批量Informed RRT*

三次樣條規劃

B樣條規劃

貝濟埃路徑規劃

五次多項式規劃

Dubins路徑規劃

Reeds Shepp路徑規劃

基于LQR的路徑規劃

Frenet Frame中的最優路徑

路徑跟蹤

純追跡跟蹤

史坦利控制

后輪反饋控制

線性二次regulator(LQR)轉向控制

線性二次regulator(LQR)轉向和速度控制

項目支持

環境需求

Python 3.6.x

numpy

scipy

matplotlib

pandas

cvxpy 0.4.x

怎樣使用

安裝必要的庫;

克隆本代碼倉庫;

執行每個目錄下的python腳本;

如果你喜歡,則收藏本代碼庫:)

本地化

擴展卡爾曼濾波本地化

該算法利用擴展卡爾曼濾波器(Extended Kalman Filter, EKF)實現傳感器混合本地化。

藍線為真實路徑,黑線為導航推測路徑(dead reckoning trajectory),綠點為位置觀測(如GPS),紅線為EKF估算的路徑。

紅色橢圓為EKF估算的協方差。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

無損卡爾曼濾波本地化

該算法利用無損卡爾曼濾波器(Unscented Kalman Filter, UKF)實現傳感器混合本地化。

線和點的含義與EKF模擬的例子相同。

相關閱讀:

利用無差別訓練過的無損卡爾曼濾波進行機器人移動本地化

https://www.researchgate.net/publication/267963417_Discriminatively_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization

粒子濾波本地化

該算法利用粒子濾波器(Particle Filter, PF)實現傳感器混合本地化。

藍線為真實路徑,黑線為導航推測路徑(dead reckoning trajectory),綠點為位置觀測(如GPS),紅線為PF估算的路徑。

該算法假設機器人能夠測量與地標(RFID)之間的距離。

PF本地化會用到該測量結果。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

直方圖濾波本地化

該算法是利用直方圖濾波器(Histogram filter)實現二維本地化的例子。

紅十字是實際位置,黑點是RFID的位置。

藍色格子是直方圖濾波器的概率位置。

在該模擬中,x,y是未知數,yaw已知。

濾波器整合了速度輸入和從RFID獲得距離觀測數據進行本地化。

不需要初始位置。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

映射

高斯網格映射

本算法是二維高斯網格映射(Gaussian grid mapping)的例子。

光線投射網格映射

本算法是二維光線投射網格映射(Ray casting grid map)的例子。

k均值物體聚類

本算法是使用k均值算法進行二維物體聚類的例子。

圓形擬合物體形狀識別

本算法是使用圓形擬合進行物體形狀識別的例子。

藍圈是實際的物體形狀。

紅叉是通過距離傳感器觀測到的點。

紅圈是使用圓形擬合估計的物體形狀。

SLAM

同時本地化和映射(Simultaneous Localization and Mapping,SLAM)的例子。

迭代最近點匹配

本算法是使用單值解構進行二維迭代最近點(Iterative Closest Point,ICP)匹配的例子。

它能計算從一些點到另一些點的旋轉矩陣和平移矩陣。

相關閱讀:

機器人運動介紹:迭代最近點算法

https://cs.gmu.edu/~kosecka/cs685/cs685-icp.pdf

EKF SLAM

這是基于擴展卡爾曼濾波的SLAM示例。

藍線是真實路徑,黑線是導航推測路徑,紅線是EKF SLAM估計的路徑。

綠叉是估計的地標。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

FastSLAM 1.0

這是用FastSLAM 1.0進行基于特征的SLAM的示例。

藍線是實際路徑,黑線是導航推測,紅線是FastSLAM的推測路徑。

紅點是FastSLAM中的粒子。

黑點是地標,藍叉是FastLSAM估算的地標位置。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

FastSLAM 2.0

這是用FastSLAM 2.0進行基于特征的SLAM的示例。

動畫的含義與FastSLAM 1.0的情況相同。

相關閱讀:

概率機器人學

http://www.probabilistic-robotics.org/

Tim Bailey的SLAM模擬

http://www-personal.acfr.usyd.edu.au/tbailey/software/slam_simulations.htm

基于圖的SLAM

這是基于圖的SLAM的示例。

藍線是實際路徑。

黑線是導航推測路徑。

紅線是基于圖的SLAM估算的路徑。

黑星是地標,用于生成圖的邊。

相關閱讀:

基于圖的SLAM入門

http://www2.informatik.uni-freiburg.de/~stachnis/pdf/grisetti10titsmag.pdf

路徑規劃

動態窗口方式

這是使用動態窗口方式(Dynamic Window Approach)進行二維導航的示例代碼。

相關閱讀:

用動態窗口方式避免碰撞

https://www.ri.cmu.edu/pub_files/pub1/fox_dieter_1997_1/fox_dieter_1997_1.pdf

基于網格的搜索

迪杰斯特拉算法

這是利用迪杰斯特拉(Dijkstra)算法實現的基于二維網格的最短路徑規劃。

動畫中青色點為搜索過的節點。

A*算法

下面是使用A星算法進行基于二維網格的最短路徑規劃。

動畫中青色點為搜索過的節點。

啟發算法為二維歐幾里得距離。

勢場算法

下面是使用勢場算法進行基于二維網格的路徑規劃。

動畫中藍色的熱區圖顯示了每個格子的勢能。

相關閱讀:

機器人運動規劃:勢能函數

https://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf

模型預測路徑生成

下面是模型預測路徑生成的路徑優化示例。

算法用于狀態晶格規劃(state lattice planning)。

路徑優化示例

查找表生成示例

相關閱讀:

用于帶輪子的機器人的最優不平整地形路徑生成

http://journals.sagepub.com/doi/pdf/10.1177/0278364906075328

狀態晶格規劃

這個腳本使用了狀態晶格規劃(state lattice planning)實現路徑規劃。

這段代碼通過模型預測路徑生成來解決邊界問題。

相關閱讀:

用于帶輪子的機器人的最優不平整地形路徑生成

http://journals.sagepub.com/doi/pdf/10.1177/0278364906075328

用于復雜環境下的高性能運動機器人導航的可行運動的狀態空間采樣

http://www.frc.ri.cmu.edu/~alonzo/pubs/papers/JFR_08_SS_Sampling.pdf

均勻極性采樣(Uniform polar sampling)

偏差極性采樣(Biased polar sampling)

路線采樣(Lane sampling)

隨機路徑圖(PRM)規劃

這個隨機路徑圖(Probabilistic Road-Map,PRM)規劃算法在圖搜索上采用了迪杰斯特拉方法。

動畫中的藍點為采樣點。

青色叉為迪杰斯特拉方法搜索過的點。

紅線為PRM的最終路徑。

相關閱讀:

隨機路徑圖

https://en.wikipedia.org/wiki/Probabilistic_roadmap

Voronoi路徑圖規劃

這個Voronoi路徑圖(Probabilistic Road-Map,PRM)規劃算法在圖搜索上采用了迪杰斯特拉方法。

動畫中的藍點為Voronoi點。

青色叉為迪杰斯特拉方法搜索過的點。

紅線為Voronoi路徑圖的最終路徑。

相關閱讀:

機器人運動規劃

https://www.cs.cmu.edu/~motionplanning/lecture/Chap5-RoadMap-Methods_howie.pdf

快速搜索隨機樹(RRT)

基本RRT

這是個使用快速搜索隨機樹(Rapidly-Exploring Random Trees,RRT)的簡單路徑規劃代碼。

黑色圓為障礙物,綠線為搜索樹,紅叉為開始位置和目標位置。

RRT*

這是使用RRT*的路徑規劃代碼。

黑色圓為障礙物,綠線為搜索樹,紅叉為開始位置和目標位置。

相關閱讀:

最優運動規劃的基于增量采樣的算法

https://arxiv.org/abs/1005.0416

最優運動規劃的基于采樣的算法

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.419.5503&rep=rep1&type=pdf

基于Dubins路徑的RRT

為汽車形機器人提供的使用RRT和dubins路徑規劃的路徑規劃算法。

基于Dubins路徑的RRT*

為汽車形機器人提供的使用RRT*和dubins路徑規劃的路徑規劃算法。

基于reeds-shepp路徑的RRT*

為汽車形機器人提供的使用RRT*和reeds shepp路徑規劃的路徑規劃算法。

Informed RRT*

這是使用Informed RRT*的路徑規劃代碼。

青色橢圓為Informed RRT*的啟發采樣域。

相關閱讀:

Informed RRT*:通過對可接受的橢球啟發的直接采樣實現最優的基于采樣的路徑規劃

https://arxiv.org/pdf/1404.2334.pdf

批量Informed RRT*

這是使用批量Informed RRT*的路徑規劃代碼。

相關閱讀:

批量Informed樹(BIT*):通過對隱含隨機幾何圖形進行啟發式搜索實現基于采樣的最優規劃

https://arxiv.org/abs/1405.5848

閉合回路RRT*

使用閉合回路RRT*(Closed loop RRT*)實現的基于車輛模型的路徑規劃。

這段代碼里,轉向控制用的是純追跡算法(pure-pursuit algorithm)。

速度控制采用了PID。

相關閱讀:

使用閉合回路預測在復雜環境內實現運動規劃

http://acl.mit.edu/papers/KuwataGNC08.pdf)

應用于自動城市駕駛的實時運動規劃

http://acl.mit.edu/papers/KuwataTCST09.pdf

[1601.06326]采用閉合回路預測實現最優運動規劃的基于采樣的算法

https://arxiv.org/abs/1601.06326

LQR-RRT*

這是個使用LQR-RRT*的路徑規劃模擬。

LQR局部規劃采用了雙重積分運動模型。

相關閱讀:

LQR-RRT*:使用自動推導擴展啟發實現最優基于采樣的運動規劃

http://lis.csail.mit.edu/pubs/perez-icra12.pdf

MahanFathi/LQR-RRTstar:LQR-RRT*方法用于單擺相位中的隨機運動規劃

https://github.com/MahanFathi/LQR-RRTstar

三次樣條規劃

這是段三次路徑規劃的示例代碼。

這段代碼根據x-y的路點,利用三次樣條生成一段曲率連續的路徑。

每個點的指向角度也可以用解析的方式計算。

B樣條規劃

這是段使用B樣條曲線進行規劃的例子。

輸入路點,它會利用B樣條生成光滑的路徑。

第一個和最后一個路點位于最后的路徑上。

相關閱讀:

B樣條

https://en.wikipedia.org/wiki/B-spline

Eta^3樣條路徑規劃

這是使用Eta ^ 3樣條曲線的路徑規劃。

相關閱讀:

eta^3-Splines for the Smooth Path Generation of Wheeled Mobile Robots

https://ieeexplore.ieee.org/document/4339545/

貝濟埃路徑規劃

貝濟埃路徑規劃的示例代碼。

根據四個控制點生成貝濟埃路徑。

改變起點和終點的偏移距離,可以生成不同的貝濟埃路徑:

相關閱讀:

根據貝濟埃曲線為自動駕駛汽車生成曲率連續的路徑

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.294.6438&rep=rep1&type=pdf

五次多項式規劃

利用五次多項式進行路徑規劃。

它能根據五次多項式計算二維路徑、速度和加速度。

相關閱讀:

用于Agv In定位的局部路徑規劃和運動控制

http://ieeexplore.ieee.org/document/637936/

Dubins路徑規劃

Dubins路徑規劃的示例代碼。

相關閱讀:

Dubins路徑

https://en.wikipedia.org/wiki/Dubins_path

Reeds Shepp路徑規劃

Reeds Shepp路徑規劃的示例代碼。

相關閱讀:

15.3.2 Reeds-Shepp曲線

http://planning.cs.uiuc.edu/node822.html

用于能前進和后退的汽車的最優路徑

https://pdfs.semanticscholar.org/932e/c495b1d0018fd59dee12a0bf74434fac7af4.pdf

ghliu/pyReedsShepp:實現Reeds Shepp曲線

https://github.com/ghliu/pyReedsShepp

基于LQR的路徑規劃

為雙重積分模型使用基于LQR的路徑規劃的示例代碼。

Frenet Frame中的最優路徑

這段代碼在Frenet Frame中生成最優路徑。

青色線為目標路徑,黑色叉為障礙物。

紅色線為預測的路徑。

相關閱讀:

Frenet Frame中的動態接到場景中的最優路徑生成

https://www.researchgate.net/profile/Moritz_Werling/publication/224156269_Optimal_Trajectory_Generation_for_Dynamic_Street_Scenarios_in_a_Frenet_Frame/links/54f749df0cf210398e9277af.pdf

Frenet Frame中的動態接到場景中的最優路徑生成

https://www.youtube.com/watch?v=Cj6tAQe7UCY

路徑跟蹤

姿勢控制跟蹤

這是姿勢控制跟蹤的模擬。

相關閱讀:

Robotics, Vision and Control - Fundamental Algorithms In MATLAB? Second, Completely Revised, Extended And Updated Edition | Peter Corke | Springer

https://www.springer.com/us/book/9783319544120

純追跡跟蹤

使用純追跡(pure pursuit)轉向控制和PID速度控制的路徑跟蹤模擬。

紅線為目標路線,綠叉為純追跡控制的目標點,藍線為跟蹤路線。

相關閱讀:

城市中的自動駕駛汽車的運動規劃和控制技術的調查

https://arxiv.org/abs/1604.07446

史坦利控制

使用史坦利(Stanley)轉向控制和PID速度控制的路徑跟蹤模擬。

相關閱讀:

史坦利:贏得DARPA大獎賽的機器人

http://robots.stanford.edu/papers/thrun.stanley05.pdf

用于自動駕駛機動車路徑跟蹤的自動轉向方法

https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf

后輪反饋控制

利用后輪反饋轉向控制和PID速度控制的路徑跟蹤模擬。

相關閱讀:

城市中的自動駕駛汽車的運動規劃和控制技術的調查

https://arxiv.org/abs/1604.07446

線性二次regulator(LQR)轉向控制

使用LQR轉向控制和PID速度控制的路徑跟蹤模擬。

相關閱讀:

ApolloAuto/apollo:開源自動駕駛平臺

https://github.com/ApolloAuto/apollo

線性二次regulator(LQR)轉向和速度控制

使用LQR轉向和速度控制的路徑跟蹤模擬。

相關閱讀:

完全自動駕駛:系統和算法 - IEEE會議出版物

http://ieeexplore.ieee.org/document/5940562/

模型預測速度和轉向控制

使用迭代線性模型預測轉向和速度控制的路徑跟蹤模擬。

這段代碼使用了cxvxpy作為最優建模工具。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4622

    瀏覽量

    93077
  • python
    +關注

    關注

    56

    文章

    4800

    瀏覽量

    84834

原文標題:這可能是史上最全的Python算法集!

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TimSort:一個在標準函數庫中廣泛使用的排序算法

    排序算法呢? 本文將帶你走進 TimSort,一個在標準函數庫中廣泛使用的排序算法。 這個算法由工程師 Tim Peters 于 2001 年專為 Python 設計,并自
    的頭像 發表于 01-03 11:42 ?90次閱讀

    一個月速成python+OpenCV圖像處理

    適用于哪些場景,然后通過Python編寫代碼來實現這些算法,并應用于實際項目中,實現圖像的檢測、識別、分類、定位、測量等目標。本文將介紹一個高效學習Python+O
    的頭像 發表于 11-29 18:27 ?171次閱讀
    一個月速成<b class='flag-5'>python</b>+OpenCV圖像處理

    【飛凌嵌入式OK3576-C開發板體驗】RKNN神經網絡算法開發環境搭建

    的軟件包管理系統和環境管理系統,主要用于安裝、更新、刪除軟件包及其依賴關系,并允許用戶在不同環境之間輕松切換。用于后續安裝Python等插件。在深度神經算法中使用的頻率非常高的一款軟件。 3.2
    發表于 10-10 09:28

    史上最全百吋陣營!海信電視新品被曝畫質“炸裂”,或掀市場新風暴?

    根據知名數碼博主“吳小杰WJie”爆料:月底海信電視將發布史上最全百吋陣營,基本涵蓋了所有的價格區段,而且還有一款能夠干翻旗艦電視的新品,配置和畫質都非常炸裂,以及這次還有好幾個首次發布的新功能,我
    的頭像 發表于 09-26 18:39 ?1.5w次閱讀
    <b class='flag-5'>史上</b><b class='flag-5'>最全</b>百吋陣營!海信電視新品被曝畫質“炸裂”,或掀市場新風暴?

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2096次閱讀

    Python建模算法與應用

    上成為理想的腳本語言,特別適用于快速的應用程序開發。本文將詳細介紹Python在建模算法中的應用,包括常見的建模算法Python在建模中的優勢、常用庫以及實際案例。
    的頭像 發表于 07-24 10:41 ?597次閱讀

    最全開關電源傳導與輻射超標整改方案

    電子發燒友網站提供《最全開關電源傳導與輻射超標整改方案.pdf》資料免費下載
    發表于 07-23 12:31 ?18次下載

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?1203次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1273次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?893次閱讀

    K折交叉驗證算法與訓練

    K折交叉驗證算法與訓練
    的頭像 發表于 05-15 09:26 ?590次閱讀

    盤點一下史上最全大語言模型訓練中的網絡技術

    人工智能的基礎設施在大語言模型訓練和推理過程中發揮了關鍵的作用。隨著大語言模型規模不斷增大,其對計算和通信的需求也在不斷增加。高
    的頭像 發表于 03-27 17:24 ?1557次閱讀
    <b class='flag-5'>盤點</b>一下<b class='flag-5'>史上</b><b class='flag-5'>最全</b>大語言模型訓練中的網絡技術

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1258次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯誤。在本文
    的頭像 發表于 01-31 10:41 ?2669次閱讀

    水質電導率的測量方式(盤點

    水質電導率的測量方式(盤點
    的頭像 發表于 01-29 13:58 ?1544次閱讀
    主站蜘蛛池模板: 韩国黄色影院| 久久精品国产99欧美精品亚洲 | 免费毛片在线播放| 伊人久久久久久久久香港| 狠狠色狠狠色综合系列| 亚洲蜜桃AV永久无码精品放毛片| 国产99在线视频| 日日噜噜大屁股熟妇| 成人免费公开视频| 色多多深夜福利免费观看| 第一次破女初国产美女| 色欲AV亚洲情无码AV蜜桃| 国产精华av午夜在线观看| 亚洲 日本 中文字幕 制服| 狠狠色丁香婷婷久久综合| 一个人免费完整在线观看影院| 久久青草影院| 免费看欧美xxx片| 99视频这里只有精品| 青青青伊人| 高H高肉强J短篇NP| 袖珍人与大黑人性视频| 精品国产品在线18年| 中文字幕日本久久2019| 欧美激情一区二区三区四区| 动漫护士被乳羞羞漫| 亚洲大爷操| 麻豆蜜桃国语精品无码视频| 成人无码国产AV免费看直播| 亚洲AV久久无码高潮喷水 | 欧美 亚洲 日韩 中文2019| 白嫩美女直冒白浆| 亚洲不卡视频在线| 美女议员被泄裸照| 高清 国产 在线 亚洲| 亚洲理论在线a中文字幕| 蜜桃99影院| 国产精品午夜福利在线观看| 一本道久在线综合色姐| 欧美一级成人影院免费的| 国产色偷偷男人的天堂|