Ubuntu64bit-15.04 开发环境安装配置
作者: Sam (甄峰) sam_code@hotmail.com 最近要重新安装ROS, 看ROS支持Ubuntu 15.04. 所以安装之。 0. 修改软件仓库: 在咱们伟大的天朝,Linux,Android开发者都明白的。 同时也要感谢那些把Linux软件仓库,Android开发者仓库搬运到国内的人和组织。 0.1:修改仓库列表权限: chmod 777...
View ArticleI2C基础学习
作者: Sam (甄峰) sam_code@hotmail.com 最近想在Android-ARM上添加一个9轴Sensor,倾向使用I2C串行总线。这就涉及到以下几个方面: A: 通过I2C,将Sensor与开发板连接起来。 B: 在Linux层写Driver。使上层程序可以拿到Sensor数据。(此处指NativeC程序可以得到数据) C: 使Android...
View ArticleLinux系统IIC驱动程序 基础知识
作者:Sam (甄峰) sam_code@hotmail.com 0. Linux I2C驱动体系概述: Linux I2C驱动体系结构由以下三部分组成: A: I2C Core。 B:I2C总线驱动。 C:I2C设备驱动。 I2C核心是I2C总线驱动和I2C设备驱动的中间枢纽,它以通用的、与平台无关的接口实现了I2C中设备与适配器的沟通...
View ArticleOpenMP在ARM-Linux以及NDK中的编译和使用
作者:Sam (甄峰) sam_code@hotmail.com 以前对OpenCV在ARM-Linux, ARM-Android上的优化做了很多编译方面的努力,例如添加TBB支持,添加CUDA支持(Nvidia K1平台上)。这次突然听同事说增加了OpenMP选项后,在Windows+X86上有极大的优势,adaboost速度提高3倍。所以赶快在ARM-Android-NDK上测试一下。...
View ArticleLinux系统IIC驱动程序 I2C设备驱动
作者: Sam (甄峰) sam_code@hotmail.com 上次谈了Linux 下I2C的框架,这次专门以MPU9250驱动为例,学习I2C设备驱动。 之前谈过, I2C设备驱动有两种模式:Adapter模式和Probe模式。前者在新kernel版本中已经不支持了,后者则是推荐方式。这次我们就以MPU9250 IIC Driver 为例,分析Probe模式的I2C driver....
View Articlediff和patch的使用
作者:Sam (甄峰) sam_code@hotmail.com 0. 基础知识: diff和patch是一对对应工具。从某种意义来说,diff就像是差值运算,patch就像是和运算。 diff命令比较两个文件或者连个文件夹的差异,并记录到到一个文件中,它就是patch文件,即补丁文件。 patch命令可以将补丁文件和之前的两个元素之一组合,形成另一个集合。 1. diff使用实例:...
View ArticleLinux设备树(Linux Device Tree)学习
作者: Sam (甄峰) sam_code@hotmail.com 0. Linux Device Tree基础: 在早期的ARM Linux Kernel中,板级细节使用代码形式,存放在arch/arm/目录。名字通常为:plat-xxxx或者mach-xxxx,内容多为特定板上细节信息,如platform, i2c_board_info,...
View ArticleInvensense mlSDK分析
作者:Sam(甄峰) sam_code@hotmail.com 0. 背景 最近在Nvdia Tegra K1平台上使用Invensense MPU9250 Sensor。MPU9250使用I2C连接到K1平台。在Driver支持后,/dev/input/中新建3个node, /dev/input/eventX. 通过ioctl(EVIOCGNAME)得到其名,分别为:MPU6500,...
View Articleffmpeg NDK再编译
作者:Sam (甄峰) sam_code@hotmail.com 之前使用过NDK编译过ffmpeg(http://blog.sina.com.cn/s/blog_602f87700102ux7o.html)。这次又要编译新版本ffmpeg. 那次是直接在各模块下添加Android.mk, Application.mk的方式,分别编译各模块。并最终编译出整个版本。...
View ArticleAndroid Developent with OpenCV3.1
作者: Sam (甄峰) sam_code@hotmail.com 本文参考: http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#dev-with-ocv-on-android...
View Article常见移动机器人底盘介绍
作者:Sam (甄峰) sam_code@hotmail.com 在移动机器人开发中,首先要选择的,就是移动机器人底盘。除了能够自己设计制造外,也可以选择成熟产品,或者使用成熟产品做算法,后期再使用自己的地盘做替代。现在就介绍几种非常常见的底盘。 1. 大名鼎鼎的先锋--Pioneer:...
View ArticleROS学习 ROS简介和简易安装
作者: Sam (甄峰) sam_code@hotmail.com Sam搞机器人相关也很久了,但一直徘徊在ROS门外。外来会需要仿照ROS内一些组件来作为机器人模块,所以从头开始学习ROS,作为记录存放在这。 0. ROS介绍: 0.1:What is ROS? 分布式的进程框架,属于次级操作系统。 底层:硬件抽象描述,底层驱动程序管理,进程间消息传递和程序包管理。...
View ArticleROS学习 ROS基本概念
作者:Sam (甄峰) sam_code@hotmail.com 这里介绍几个ROS基本概念。 1. 节点(Node) 节点是ROS中最重要的概念之一。每个ROS运行实例被称为节点。 换句话说,每个ROS程序运行的进程,就是一个节点。每个机器人程序,可以有非常多个节点。 我们也可以运行同一个程序的多个副本(但要确保每个副本使用不同节点名),则每个副本都被当作一个独立节点。...
View ArticleAndroid系统移植和设置udev
作者: Sam (甄峰) sam_code@hotmail.com 0. 需求: 在当前项目中,Android设备会插入多个USB-Serial接口,用来传输不同的外部数据。可/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2等Node与外部设备并不是直接一一对应,而是哪个设备先boot或插入,那个设备就占据前面的node....
View ArticleROS学习 准备工作
作者: Sam(甄峰) sam_code@hotmail.com 在使用简易方法安装ROS开发包后, 其实Exbot已经把环境和ROS开发环境已经设置成功了。但如果从裸Ubutu安装ROS开发环境, 则需要设置ROS开发环境和工作空间。现记录如下: 0.创建ROS工作空间: 对于ROS Groovy和之后的版本可以参考以下方式建立catkin工作环境: 运行: 1 mkdir -p...
View ArticleROS学习 Package创建和编译
作者: Sam (甄峰) sam_code@hotmail.com 0. Package(功能包)简介: 功能包(Package)是ROS中组织软件的主要形式,可以编写代码并编译,执行。一个功能包一般包含程序文件,库文件,编译描述文件,配置文件,脚本等。 它是一组用于实现特定功能的相关文件集合。每个功能包由一个清单文件(package.xml)定义 1.Package的建立:...
View ArticleROS学习 ROS第一个简单例子
作者: Sam (甄峰) sam_code@hotmail.com ROS学习过程中,Sam准备学习的第一个例子是:从头建立一个catkin package, 并创建一个发布者(Publisher)和订阅者(Subscriber)。 1. catkin package的创建: Sam在 catkin_ws/src/Test_Source目录下,运行: $catkin_create_pkg...
View Articleubuntu 12.04 64bit 使用
作者: Sam (甄峰) sam_code@hotmail.com Sam一直习惯与在Fedora下做开发工作,所以服务器设置,工作环境设置等都在Fedora下比较熟悉。对Ubuntu下的设置一直一知半解。 但在做ROS后,推荐的工作环境是Ubuntu 12.04. 所以必须在Ubuntu下建立开发环境,设置各类服务。现记录如下。 1. 查看Ubuntu各类版本信息: 1.1:...
View ArticleAndroid NDK下 Neon探索
作者:Sam (甄峰) sam_code@hotmail.com 之前在一些ARM CPU下,曾在编译时指定过Neon。 0. Neon简介: 0.1: 简介: ARM Advanced SIMD延伸集,(ARM Cortex-A系列处理器的128位SIMD架构扩展)称为NEON技术,它是一个结合64bit和128bit的SIMD(Single Instruction Multiple...
View ArticleROS学习 ROS launch
作者: Sam (甄峰) sam_code@hotmail.com 0. 背景: ROS提供一个同时启动节点管理器(Node Master, Node Core)和多个节点的方法------Launch file. 要实现一个较为复杂的功能,通常需要多个Node启动,有时还有一些配置和参数。如果一一手动启动, 不光麻烦重复,而且容易出错。所以就有了Launch File....
View Article