ROS实时采集Android的图像和IMU数据
前言
临近毕业,整理一下之前做的东西。这篇博客来自于博主在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系统硬件熟悉的朋友赐教,如何解决传感器同步的问题?
ROS实时采集Android的图像和IMU数据的更多相关文章
- vs联合halcon——采集图像(实时采集与单次采集)
摘要 在对vs进行环境配置好以后,就可以开始与halcon联合进行实战.本篇就对图像的采集进行总结.通过构建采集相机GrabImage类的三个方法实现图像的采集: open() 打开相机 grabim ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程
基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程 By: 授客 QQ:1033553122 1. 测试环境 2. 实现功能 3. 使用前提 4. ...
- DirectSound播放PCM(可播放实时采集的音频数据)
前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...
- 用ADB(Android Debug Bridge)实时监测Android程序的运行
监控Android设备上程序的运行,需要ADB的配合,具体ADB工具的介绍以及命令选项可见博客: http://blog.csdn.net/mliubing2532/article/details ...
- 采用Flume实时采集和处理数据
它已成功安装Flume在...的基础上.本文将总结使用Flume实时采集和处理数据,详细过程,如下面: 第一步,在$FLUME_HOME/conf文件夹下,编写Flume的配置文件,命名为flume_ ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
- 从ROS bag文件中提取图像
从ROS bag文件中提取图像 创建launch文件,如下: export.launch <launch> <node pkg="rosbag" type=&qu ...
- Openresty+Lua+Kafka实现日志实时采集
简介 在很多数据采集场景下,Flume作为一个高性能采集日志的工具,相信大家都知道它.许多人想起Flume这个组件能联想到的大多数都是Flume跟Kafka相结合进行日志的采集,这种方案有很多他的优点 ...
随机推荐
- javascript arguments解释,实现可变长参数。
在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用 ...
- Mybtis框架总结(一)
一:Mybaits下载并搭建核心框架 1:下载mybatis的jar包: 2:创建mybatis框架链接数据库的配置文件Configuration.xml,格式如下 <!DOCTYPE conf ...
- ueditor
1:添加插件包 2:添加文件上传的jar包 3:页面引入ueditor插件 <!-- ueditor --><link type="text/css" href= ...
- 解析JSON字符串
import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONOb ...
- Hadoop HDFS编程 API入门系列之RPC版本2(九)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.RPC.rpc2; public class LoginServiceImpl implement ...
- Maven的包依赖冲突可引发java.lang.IncompatibleClassChangeError错误
新版API上线后,发现LOG文件没有正常输出.查看Tomcat的Log文件发现如下的错误信息 May , :: AM com.sun.xml.ws.server.sei.EndpointMethodH ...
- redis 主从同步
修改redis.conf配置文件 vi redis.conf 在编辑模式下 输入 /slaveof 来搜索 将slaveof启用 即 将#删除 依次配置所有 slave 并将进程 kill 掉 重启 ...
- Visual Studio 2013 always switches source control plugin to Git and disconnect TFS
A few days ago, I've been facing a strange behavior with Visual Studio 2013. No matter what solu ...
- react-组件生命周期
本文同步至微信公众号http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=402267570&idx=1&sn=4b0dc2 ...
- unity中三种调用其他脚本函数的方法
第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名()第二种,GameObject.Find("脚本所在的物体的名字").SendMessage(" ...