程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

PythonRobotics-自主機器人導航

編輯:Python

這個系列的文章是之前Python實現所有算法的兄弟篇,眼看著夏令營完事,我也要又開始學習日子了:

若干篇,大家可以看以前的文章

我思來想去,決定深耕機器人領域,又大又深。雖然現在的算法大部分都可以找到,但是沒有一個集成的項目來做,這個PR的項目首先是保證了可視化的操作,我想沒人不愛可視化吧。其次就是算法的齊全:

常見的定位算法

地圖繪制

點雲配准

路徑規劃

路徑追蹤

機械臂等等

對於代碼庫,作者還編制了一個doc

安裝庫以後,這裡把依賴的庫安裝一下:

pip install -r requirements/requirements.txt

會把使用的全安裝

測試一下這個怎麼樣,注意是使用Python的終端

運行的很OK

除此之外,還搞了一篇論文,原文在最後:

看不懂英文的意思?我給你翻譯一下,近年來自主的導航技術在很多的領域都大受關注,這個系統是指,在不受操作者控制的情況下,能夠長時間的向目標移動的系統,首先是需要知道自己在哪裡,那些地方是安全的,去這個安全的地方該如何去,以及如何控制自己的運動。如果缺少任意一個,都是不可以的。可能太大白話了,定位,映射,路徑規劃,路徑跟隨。但是熟悉這些東西需要大量的不同的技能集合,線性代數,統計學,概率論,優化理論,控制理論等等。而且學習這些還得良好的教育資源,那麼這個項目就是為了為這個美好的願望來添磚加瓦,他有很多的模擬動畫,有助於讀者來了解之後的基本思想。

還是繼續說,雖然可以找到很多的資料,但是對於一個初學者還是不能很好的來了解算法的思路。

項目按照可讀性,就是代碼易於閱讀,實用性,算法必須具有實用性,就是在學術界和工業界得到廣泛的應用,最後就是最小的依賴關系,很少的外部依賴可以讓我們輕松的運行代碼的demo。這就是庫的三個重要特征。

在文章的後面我想寫一下這個庫的組織方式:

按照大的技術類別分為:定位,映射,SLAM,路徑規劃和路徑跟蹤。然後我會簡單的介紹一下這幾個的作用,定位是通過各種傳感器來確定自己的位置和方向的能力。映射也可以稱為測繪的能力,機器人需要了解環境,可以設別障礙物的位置和形狀,才能避開障礙物。SLAM是一種更加好的辦法,可以同時估計機器人的姿態和環境地圖的能力,但是它難以求解,因為定位需要地圖,映射需要定位,這樣看就好像是先有雞還是先有蛋的問題。路徑規劃是機器人尋找可行高效的路徑到達目標的能力,路徑必須要根據機器人的運動模型和障礙物位置滿足一些約束條件,並優化目標的時間和到障礙物的距離等一些目標函數。

現在就安裝這些庫就好,最後一個是一個優化的庫。

CVXPY 是一種用於凸優化問題的開源 Python 嵌入式建模語言。它可以讓您以一種遵循數學的自然方式表達您的問題,而不是求解器所需的限制性標准形式。

因為要不停的看各種API,劃詞翻譯這個浏覽器插件也值得擁有~

概率機器人,這個書你看過嗎?如果看過的話,這個庫是練習的解決方案

https://github.com/pptacher/probabilistic_robotics
https://fanyi.youdao.com/
https://arxiv.org/ftp/arxiv/papers/1808/1808.10703.pdf
https://github.com/AtsushiSakai/PythonRobotics
https://www.cvxpy.org/

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved