前言
臨近畢業,整理一下之前做的東西。這篇博客來自於博主在2016年3月份投的一篇會議論文(論文主要介紹了一個基於手機攝像頭和IMU的簡單VIO系統,用於AR的Tracking部分,本博文是其中的數據采集部分)。
本文的目的是將pc和手機連於同一局域網下,然后手機實時把相機和imu的數據打包成ros的消息格式,pc訂閱這些消息,進行進一步的處理。
稍微好的安卓手機都會配備IMU(注意:很多手機只有單純的三軸加速度計,並沒有三軸的陀螺儀)。博主用的是華為榮耀7,配備了LSM330的6軸IMU。
個人理解錯誤的地方還請不吝賜教,轉載請標明出處,內容如有改動更新,請看原博:http://www.cnblogs.com/hitcm/
如有任何問題,feel free to contact me at robotsming@gmail.com
安裝使用
編譯好的安裝包已經放到博主的git上,歡迎下載使用,商業合作請聯系博主。
安裝里面的apk:
git clone https://github.com/hitcm/Android_Camera-IMU.git
為了后面的顯示,還需要執行sudo apt-get install ros-indigo-imu-tools
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系統硬件熟悉的朋友賜教,如何解決傳感器同步的問題?


