臨近畢業,整理一下以前作的東西。這篇博客來自於博主在2016年3月份投的一篇會議論文(論文主要介紹了一個基於手機攝像頭和IMU的簡單VIO系統,用於AR的Tracking部分,本博文是其中的數據採集部分)。android
本文的目的是將pc和手機連於同一局域網下,而後手機實時把相機和imu的數據打包成ros的消息格式,pc訂閱這些消息,進行進一步的處理。git
稍微好的安卓手機都會配備IMU(注意:不少手機只有單純的三軸加速度計,並無三軸的陀螺儀)。博主用的是華爲榮耀7,配備了LSM330的6軸IMU。github
我的理解錯誤的地方還請不吝賜教,轉載請標明出處,內容若有改動更新,請看原博:http://www.cnblogs.com/hitcm/編程
若有任何問題,feel free to contact me at robotsming@gmail.com測試
編譯好的安裝包已經放到博主的git上,歡迎下載使用,商業合做請聯繫博主。spa
安裝裏面的apk:blog
git clone https://github.com/hitcm/Android_Camera-IMU.gitip
爲了後面的顯示,還須要執行sudo apt-get install ros-indigo-imu-toolsget
1.首先保證pc和安卓手機置於同一局域網下,而後開啓ROS系統的roscore,打開安卓上的應用,在IP Port中修改ip地址爲pc的ip地址,port不須要修改。同步
2.修改完畢後點擊Connect,則鏈接成功,進入相機界面。
3.在pc上執行rostopic list,能夠看到相機數據和imu數據的名字以下,前三個topic便是。
4.執行命令cd到上面下載git的本地目錄下,執行上述git提供的launch文件,roslaunch android_cam-imu.launch
使用的效果以下:
1.本應用不是很穩定,由於博主安卓編程功底差,不過在華爲榮耀7和小米2s中測試基本正常。
2.實時測試中,相機能夠到接近30fps,imu只有50+Hz,應該是受imu硬件的限制。歡迎對Andorid系統硬件熟悉的朋友賜教,如何解決傳感器同步的問題?