1. 程式人生 > >GitHub 上有哪些機器人、無人機、自動控制等方面的有趣專案

GitHub 上有哪些機器人、無人機、自動控制等方面的有趣專案

hector quadrotor 是德國老牌理工學校Technische Universität Darmstadt大學開發的ros包,可以用於用於多旋翼的建模,控制和模擬。

hector quadrotor 整合了ros和gazebo,可以進行uav相關的很多模擬,例如飛行動力學,機載感測器例如imu、gps、camera,複雜環境模擬等等。

1. modeling and control
作者利用風洞實驗等測得了四旋翼的所有動力學引數,然後拿這些引數進行模擬,之後又拿模擬資料和實際飛行資料進行對比,結果相當吻合。

如果你想自己寫飛控但又不想炸雞,完全可以ros裡進行模擬,模擬通過之後再把程式放到進飛機實際測試。
在模擬裡寫飛控還有一個好處就是飛機的所有state都可以使用ground truth進行控制,避免和estimation問題耦合。


2. sensor fusion
hector quadrotor上集成了目前uav上最常見的感測器,imu, magnetometer, gps, lidar, sonar, camear, stereo camera, kinect, 3d lidar, spinning lidar...
拿來做感測器融合模擬非常方便,所有state都有ground ground truth,哪裡融合出錯了非常容易發現。noise level也可以自己定義
使用hector quadrotor的資料,我自己寫的基於ekf姿態融合跟 6d位置融合,att_ekf核心程式碼不到150行,6d pose_ekf 核心程式碼大約300行(Eigen真是高效)

att_ekf, 長座標軸是estimation,短的是ground truth
pose_ekf, 長座標軸是estimation,短的是ground truth

我也試過跑optical flow 跟stereo visual odomety,效果都蠻好。laser-based slam上面的paper中已經實現了,作者把它放在了hector_localization這個包.



3. slam
hector quadrotor用於laser-based slam非常容易實現,但是沒看到用hector quadrotor做camera-based slam的,但是我覺得既然光流和stereo vo都可以跑的很好,那麼用來做slam應該不成問題,起碼我自己是打算這麼幹的。

laser-based 2d slam


===========================================
2016.03.23 更新

提到了orb slam,我之前只看過paper並沒有執行過
hector quadrotor模擬環境中控制uav飛圓形(幾十圈),下圖是用orb slam(monocular version) 跑出來的軌跡和點雲。

單目能跑出這樣的精度而且是實時的,我還是蠻驚訝的

為了讓orb slam和hector quadrotor同時實時執行,對orb slam的介面做了修改
GitHub - libing64/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities