加载中…
请输入标题
暂无内容
个人资料
BigSam78
BigSam78
  • 博客等级:
  • 博客积分:0
  • 博客访问:642,268
  • 关注人气:175
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
标签:

androidstudio

分类: Android
作者: Sam (甄峰)  sam_code@hotmail.com

在Android系统发布早期,Android APP官方IDE是Eclipse+ADT(Android Developer Tools). 但因为这个方案有兼容性和稳定性等各种问题。2014年,Google基于IntelliJ IDEA制作了Android Studio。并将其作为官方唯一提供全面支持的Android IDE。 它由Google开发并免费提供给Android 开发社区。 Eclipse+ADT不再进行开发。

1. 安装JDK:
要使用Android Studio IDE, 需要安装JDK。 JDK7和JDK8均可用于Android Studio。在Linux和Windows系统,安装后还需要设置环境变量。

例如:
export JAVA_HOME=/usr/java/jdk1.7.0_09/
export JAVA_BIN=/usr/java/jdk1.7.0_09/bin
export PATH=$JAVA_HOME
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
作者: Sam (甄峰)  sam_code@hotmail.com

因为众所周知的原因,Android APP开发环境在国内安装很麻烦。 幸好有无数热心人提供了很多办法解决这个问题。现记录如下。

0. 不同形式的Android 开发环境。
首先介绍不同的Android 开发环境。
0.1. Eclipse + ADT  Plugin.
ADT plugin:eclipse里的一个插件,负责将eclipse与android sdk链接到一起,让eclipse可以调用adk的类库,虚拟机等功能
早期Google把Eclipse作为开发APP的IDE。它自己仅提供ADT  Plugin. 让Eclipse与Android SDK等联结在一起。Sam早期就这么做。
 但Eclipse在不断升级中, 不同版本ADT Plugin与之有兼容性问题。所以后期又推出其它解决方案。

0.2 . ADT bundle
为了解决ATD Plugin与Eclipse兼容性问题,Google推出了ADT Bundle.
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-09-26 15:08)
标签:

i2c

分类: linux
作者: Sam (甄峰) sam_code@hotmail.com

最近又需要研究I2C Driver。在测试连线时,需要I2C工具。于是下载编译了I2C_Tools. 记录之。

1. download and Make:
$git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git
$make

可以看到,库文件被放在i2c-tools/lib, 可执行文件被放在i2c-tools/tools。

2. 使用:
2.1:察看I2C总线:
查看I2C Busses(I2C总线)
# ./i2cdetect -l                                         
i2c-0   i2c             Tegra I2C adapter                       I2C adapter
i2c-1   i2c             Tegra I2C adapter &nb
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

nkd

makefile

cmake

分类: Android

作者: Sam (甄峰)  sam_code@hotmail.com

 

0. 基础介绍:

Android推出NDK,是为了可以编译JNI和Native程序。它提供了一系列脚本:ndk-build, ndk-stack, ndk-dbg, ndk-which.  用来帮助用户编译,调试程序。

 

有了这些脚本,尤其是ndk-build, 它和Android.mk,  Application.mk结合,可以快速的产生需要的库或可执行程序。但他们也隐藏了很多信息。例如:编译器用的是哪个,使用什么编译选项,什么链接选项等。头文件使用哪些,库文件使用哪些。无从得知。

 

如果我们不想利用ndk-build系列脚本,而是想直接使用编译器,添加相关编译选项,理论上完全可以编译出Native库和可执行程序。 

 

但这样做,有什么意义呢?Sam工作中会遇到这样的需求:有些第三方库,采用Makefile或CMake编译。若要使用NDK脚本编译,需要重新了解编译思路,哪些源码生成那些库,哪些可执行程序依赖哪些库,然后根据这个写Android.mk.   这样做比较麻烦,尤其对比较庞大复杂的第

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

ros

vision_opencv

分类: 机器人-ROS
作者: Sam  (甄峰)  sam_code@hotmail.com

0.vision_opencv简介:
这个stack是ROS的OpenCV Interface。这个stack包含两个Package。cv_bridge, image_geometry.
主要用来将sensor::Image (ROS)和cv::Mat(OpenCV)之间数据转换。


cv_bridge: ROS Message和OpenCV之间的桥接。
image_geometry: Collection of methods for dealing with image and pixel geometry

为了在ROS中使用OpenCV,主要使用cv_bridge Package. 



在Indigo和Jade,OpenCV2 作为官方版本存在。要使用它,必须增加dependency on opencv2并使用find_package() 在CMakeLists.txt. 


阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

opencv

分类: linux
作者:Sam (甄峰)  sam_code@hotmail.com

这几天需要编译Linux下几个特定版本(2.4.13)的OpenCV库。OpenCV各版本库已经编译多次,本想这是非常容易的事情了,可没想到竟然遇到一些问题。先把最后找到的经典方法记录如下:


0. Download OpenCV:
先使用:git clone https://github.com/opencv/opencv.git

#git branch -a 
master 
remotes/origin/2.4
remotes/origin/master
当前的分支是master.

#git describe
3.3.0-56-g89172c0
是3.3版本。但Sam需要2.4.xx版本。

切换:
#git checkout 2.4
#git describe
2.4.13-4-gf7d99f3

好,这个版本可以用了。

1. 编译:
先进入编译脚本目录:
cd platforms/scripts/
但里面没有i686版本脚本。所以Sam干脆增加一个脚本。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-08-22 13:25)
标签:

ros

分类: 机器人-ROS
作者: Sam (甄峰) sam_code@hotmail.com


毫米波实质上就是电磁波。毫米波的频段比较特殊,其频率高于无线电,低于可见光和红外线,频率大致范围是10GHz—200GHz。毫米波介于微波(Micro waves)和THz(1000GHz)之间,可以说是微波的一个子集。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-08-18 11:45)
标签:

ros

xtion

openni2

分类: 机器人-ROS
作者:Sam (甄峰)  sam_code@hotmail.com

 
0. 背景介绍:
近期要研究ROS Xtion Driver. 在ROS系统下, Xtion Driver是openni2_camera, 它读取Xtion数据并将数据发布到各Topic供其它Node使用。但研究下来,其实openni2_camera仅仅是冰山露出海面的部分。它构建了类似Linux Driver 中的Device,Driver 概念,并使用Manager管理Device。看起来很清晰,但数据处理,Device具体处理等庞大的部分,其实并不在这个包内。二是另有玄机。现在就将这部分内容大概的理一下。
 
 
1. openni2_camera文件结构和组成研究:
这个Package是
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2017-08-18 11:16)
标签:

usb

作者:Sam (甄峰)  sam_code@hotmail.com

USB线在生活和开发中很常用,但它有多种接口和连接器。以前工作中常用的Mini USB, Micro-USB,当前又有更方便的USB-Type C . 那他们之间有何关系,都有什么区别,现总结沟通一下。


首先看USB-Type A,  USB-Type B, USB-Type C:




MiniUSB:
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
作者: Sam (甄峰)  sam_code@hotmail.com

0. 背景介绍
ROS是一种基于消息传递的分布式多进程框架。ROS Node之间的通讯,是基于TCP/IP协议,在传递Message或Service时,都需要先打包,后解包。对资源有较大浪费,在实时性上也表现不佳。
在需要传递的数据附载小,频率低时,这样的资源和时间消耗还可以接受。但当传递的是图像,点云等数量巨大的数据时,或实时性要求较高时,传输问题则必需要考虑。nodelet的出现,就是为解决此类问题。

1. ROS Nodelet简介
Nodelet用来提供一种方式,让多个算法运行在同一个进程内,他们之间数据实现zero  copy 传输。
使用shared_ptr实现零copy传输(Zero  Copy Transport). 它使用插件机制。

简单的说:Nodelet即为将之前启动的多个Node捆绑到一起,由一个Manager管理。在同一个Manager内, Topic数据更快,zero Copy.

nodelet package既提供用来实现Nodelet的nodelet base cl
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有