1、環境需求python
2、怎樣使用算法
3、本地化app
3.1擴展卡爾曼濾波本地化優化
3.2無損卡爾曼濾波本地化動畫
3.3粒子濾波本地化.net
3.4直方圖濾波本地化3d
4、映射orm
4.1高斯網格映射htm
4.2光線投射網格映射blog
4.3k均值物體聚類
4.4圓形擬合物體形狀識別
5、SLAM
5.1迭代最近點匹配
5.2EKF SLAM
5.3FastSLAM 1.0
5.4FastSLAM 2.0
5.5基於圖的SLAM
6、路徑規劃
6.1動態窗口方式
6.2基於網格的搜索
迪傑斯特拉算法
A*算法
勢場算法
6.3模型預測路徑生成
路徑優化示例
查找表生成示例
6.4狀態晶格規劃
均勻極性採樣(Uniform polar sampling)
誤差極性採樣(Biased polar sampling)
路線採樣(Lane sampling)
6.5隨機路徑圖(PRM)規劃
6.6Voronoi路徑圖規劃
6.7快速搜索隨機樹(RRT)
基本RRT
RRT*
基於Dubins路徑的RRT
基於Dubins路徑的RRT*
基於reeds-shepp路徑的RRT*
Informed RRT*
批量Informed RRT*
閉合迴路RRT*
LQR-RRT*
6.8三次樣條規劃
6.9B樣條規劃
6.10Eta^3樣條路徑規劃
6.11貝濟埃路徑規劃
6.12五次多項式規劃
6.13Dubins路徑規劃
6.14Reeds Shepp路徑規劃
6.15基於LQR的路徑規劃
6.16Frenet Frame中的最優路徑
7、路徑跟蹤
7.1姿式控制跟蹤
7.2純追跡跟蹤
7.3史坦利控制
7.4後輪反饋控制
7.5線性二次regulator(LQR)轉向控制
7.6線性二次regulator(LQR)轉向和速度控制
7.7模型預測速度和轉向控制
8、項目支持
1、環境需求
Python 3.6.x
numpy
scipy
matplotlib
pandas
cvxpy 0.4.x
2、怎樣使用
安裝必要的庫;
克隆本代碼倉庫;
執行每一個目錄下的python腳本;
若是你喜歡,則收藏本代碼庫:)
3、本地化
3.1 擴展卡爾曼濾波本地化
私信小編001 獲取源文件以及PDF!
該算法利用擴展卡爾曼濾波器(Extended Kalman Filter, EKF)實現傳感器混合本地化。
藍線爲真實路徑,黑線爲導航推測路徑(dead reckoning trajectory),綠點爲位置觀測(如GPS),紅線爲EKF估算的路徑。
紅色橢圓爲EKF估算的協方差。
相關閱讀:
機率機器人學
http://www.probabilistic-robotics.org/
3.2 無損卡爾曼濾波本地化
該算法利用無損卡爾曼濾波器(Unscented Kalman Filter, UKF)實現傳感器混合本地化。
線和點的含義與EKF模擬的例子相同。
相關閱讀:
利用無差異訓練過的無損卡爾曼濾波進行機器人移動本地化
https://www.researchgate.net/publication/267963417_Discriminatively_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization
3.3 粒子濾波本地化
該算法利用粒子濾波器(Particle Filter, PF)實現傳感器混合本地化。
藍線爲真實路徑,黑線爲導航推測路徑(dead reckoning trajectory),綠點爲位置觀測(如GPS),紅線爲PF估算的路徑。
該算法假設機器人可以測量與地標(RFID)之間的距離。
PF本地化會用到該測量結果。
相關閱讀:
機率機器人學
http://www.probabilistic-robotics.org/
3.4 直方圖濾波本地化
該算法是利用直方圖濾波器(Histogram filter)實現二維本地化的例子。
紅十字是實際位置,黑點是RFID的位置。
藍色格子是直方圖濾波器的機率位置。
在該模擬中,x,y是未知數,yaw已知。
濾波器整合了速度輸入和從RFID得到距離觀測數據進行本地化。
不須要初始位置。
相關閱讀:
機率機器人學
http://www.probabilistic-robotics.org/
4、映射
4.1 高斯網格映射
本算法是二維高斯網格映射(Gaussian grid mapping)的例子。
4.2 光線投射網格映射
本算法是二維光線投射網格映射(Ray casting grid map)的例子。
4.3 k均值物體聚類
本算法是使用k均值算法進行二維物體聚類的例子。
4.4 圓形擬合物體形狀識別
本算法是使用圓形擬合進行物體形狀識別的例子。
藍圈是實際的物體形狀。
紅叉是經過距離傳感器觀測到的點。
紅圈是使用圓形擬合估計的物體形狀。
5、SLAM
同時本地化和映射(Simultaneous Localization and Mapping,SLAM)的例子。
5.1 迭代最近點匹配
本算法是使用單值解構進行二維迭代最近點(Iterative Closest Point,ICP)匹配的例子。
它能計算從一些點到另外一些點的旋轉矩陣和平移矩陣。相關閱讀:
機器人運動介紹:迭代最近點算法
https://cs.gmu.edu/~kosecka/cs685/cs685-icp.pdf
5.2 EKF SLAM
這是基於擴展卡爾曼濾波的SLAM示例。
藍線是真實路徑,黑線是導航推測路徑,紅線是EKF SLAM估計的路徑。
綠叉是估計的地標。
相關閱讀:
機率機器人學
http://www.probabilistic-robotics.org/
5.3 FastSLAM 1.0
這是用FastSLAM 1.0進行基於特徵的SLAM的示例。
藍線是實際路徑,黑線是導航推測,紅線是FastSLAM的推測路徑。
紅點是FastSLAM中的粒子。
黑點是地標,藍叉是FastLSAM估算的地標位置。
相關閱讀:
機率機器人學
http://www.probabilistic-robotics.org/
5.4 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
5.5 基於圖的SLAM
這是基於圖的SLAM的示例。
藍線是實際路徑。
黑線是導航推測路徑。
紅線是基於圖的SLAM估算的路徑。
黑星是地標,用於生成圖的邊。
相關閱讀:
基於圖的SLAM入門
http://www2.informatik.uni-freiburg.de/~stachnis/pdf/grisetti10titsmag.pdf
6、路徑規劃
6.1 動態窗口方式
這是使用動態窗口方式(Dynamic Window Approach)進行二維導航的示例代碼。
相關閱讀:
用動態窗口方式避免碰撞
https://www.ri.cmu.edu/pub_files/pub1/fox_dieter_1997_1/fox_dieter_1997_1.pdf
6.2 基於網格的搜索
迪傑斯特拉算法
這是利用迪傑斯特拉(Dijkstra)算法實現的基於二維網格的最短路徑規劃。
動畫中青色點爲搜索過的節點。
A*算法
下面是使用A星算法進行基於二維網格的最短路徑規劃。
動畫中青色點爲搜索過的節點。
啓發算法爲二維歐幾里得距離。
勢場算法
下面是使用勢場算法進行基於二維網格的路徑規劃。
動畫中藍色的熱區圖顯示了每一個格子的勢能。