ROS中使用Kinect摄像头和usb摄像头
1、安装的一些包
kinect用的freenect:
$ sudo apt-get install ros-indigo-freenect-launch
$ sudo apt-get install ros-indigo-freenect-camera
$ sudo apt-get install ros-indigo-freenect-stack
驱动安装好后,首先在终端输入“roscore”,启动节点,然后在新的终端输入“roslaunch freenect_launch freenect.launch”。
显示RGB图像:
方法一:rosrun image_view image_view image:=/camera/rgb/image_color 即可显示RGB图像。
方法二:用rviz显示:在终端输入“rosrun rviz rviz”打开rviz,点击add,修改Global Options里的Fixed Frame为camera_depth_frame,选择camera类型,添加成功后选择camera菜单下的Image Topic选项,选择/camera/rgb/image_color.
显示深度图像:
方法一:在终端输入“rosrun image_view image_view image:=/camera/depth/image_raw”,即可显示深度图;
方法二:使用rviz显示。在终端输入“rosrun rviz rviz”打开rviz,修改Global Options里的Fixed Frame为/camera_depth_optical_frame,接着点击add添加PointCloud2类型,修改topic为/camera/depth/points。
usb摄像头:
roslaunch usb_cam usb_cam-test.launch
特别注意:使用虚拟机的话,要设置USB兼容3.0.并在可移动设备里面将usb接口打上沟,如果rgb显示正常,但是深度显示不正常,重新插一下深度usb、然后先打开深度节点,再打开rgb节点,启动rviz,可以选择image,image topic可以选择rgb或者depth,也可以选则pointcloud2,订阅、camera/rgb/image_cloud或者深度对应的。如果此时看不到任何数据,status显示error,修改Fixed Frame参数,将其换成相机或者点云的话题即可
2、usb摄像头标定功能包:
安装标定功能包
$ sudo apt-get install ros-indigo-camera-calibration 启动usb摄像头
$ roslaunch usb_cam usb_cam-test.launch 启动标定程序
$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
就用书上的标定靶或者打印一份,对着摄像头不断前后左右旋转移动,直到Calibrate按钮变成绿色,此时界面会卡一会儿,千万不要关闭,参数计算完成后见面恢复,终端中会有标定结果的显示,点击SAVE,标定参数保存到默认文件夹中,可以在终端中看到路径,点击COMMIT提交数据并退出,打开/tmp文件夹,,标定结果为calibrationdata.tar.gz,解压找到ost.yaml,复制出来重命名即可使用,然后修改launch文件即可加载标定的yaml
3、kinect标定:
roslaunch freenect_launch freenect.launch
rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb --size 8x6 --square 0.024
rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image_raw camera:=/camera/ir --size 8x6 --square 0.024
加载方式:根据启动时候的报错信息,参数与实际的名称不符合,按提示修改launch文件即可为上述保存的标定文件名称
ROS中使用Kinect摄像头和usb摄像头的更多相关文章
- 2.7 usb摄像头之usb摄像头描述符打印
学习目标:参考lsusb源码,打印USB摄像头的设备描述符.配置描述符.接口联合描述符.端点描述符: 一.lsusb命令和源码 使用命令lsusb可以看看设备的id,并执行 # lsusb -v -d ...
- ROS学习(一)Ros 中使用kinect
上的安装说明如下: 官网上明确写了如果安装windows kinect还需要安装一个驱动,但是有些ROS的书上并没有这么做,只提到了使用如下两步进行安装即可使用: sudo apt-get insta ...
- RTSP流和USB摄像头转MJPEG使用VLC
测试环境: 系统: Ubuntu14.04 LTS Desktop 设备:海康IP摄像头和USB摄像头 1.需要先安装vlc包,命令行运行 sudo apt-get update sudo apt-g ...
- python opencv 读取USB摄像头的像素问题
问题描述 每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀. 问题分析 一番查找,关于用ope ...
- ROS学习笔记七:在ROS中使用USB摄像头
下面是一些USB摄像头的驱动(大多数摄像头都支持uvc标准): 1 使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ----------------------------- ...
- ROS 使用自带和usb摄像头获取图像
笔记本自带的摄像头的设备号一般为/dev/video0 第一步:安装Webcam 驱动 $ sudo apt-get install git-core $ cd ~/catkin_ws/src $ g ...
- 29、从零写USB摄像头驱动之通过urb接受数据后上报数据是函数中fid的作用
原因分析如下: 视频数据是由一帧一帧数据组成,为了防止数据错乱,会给每一帧数据分配一个frameid,从第0帧开始,接着是第1帧,接着又是第0帧这样交错进行的,对usb摄像头来说每一帧数据来源于多个包 ...
- ubuntu12.04+fuerte 下跑通lsd-slam——使用usb摄像头
上一篇介绍了如何使用数据集跑lsd-slam,这篇介绍如何用一个普通的usb摄像头跑lsd-slam,默认ubuntu12.04,fuerte已经安装好,workspace也已设置,如果没有,请参考上 ...
- Linux USB摄像头驱动【转】
本文转载自:http://www.itdadao.com/articles/c15a509940p0.html 在 cortex-a8 中,可接入摄像头的接口通常可以分为两种, CAMERA 接口和 ...
随机推荐
- [Codeforces Round #438][Codeforces 868C. Qualification Rounds]
题目链接:868C - Qualification Rounds 题目大意:有\(n\)个题目,\(k\)个人,每个人可能做过这\(n\)个题里的若干道,出题方要在这\(n\)个题目里选若干个出来作为 ...
- Unity进阶----AssetBundle_01(2018/10/30)
AssetBundle作用和定义 1).AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载: 2).AssetBundle自身保存着互相的依赖关系 ...
- MacBook Air 装win10系统 by DODUI
为了给齐哥更完美的体验Windows10系统,DODUI亲手操刀MacBook双系统安装Win10,双系统安装教程如下: 终于遇到各种奇葩问题,给小伙伴分享一下. 双系统安装Win10准备工具: 1. ...
- 2019.3.22 JMeter基础操作
1.添加线程组:testplan—添加—线程(用户)Threads(Users) 线程属性值:线程数(虚拟用户数).Rump-up(准备时长:设置所有线程全部启动时间).循环次数(每个线程重复发送请求 ...
- php 二维数组根据值进行排序
// 先获取要排序的值 $createTime = array_column($data, 'create_time'); // 排序成功 array_multisort($createTime, S ...
- Dynamics365 WebAPI ADFS token 获取
public class CrmAuth { ///<summary> /// Token /// </summary> public string access_token ...
- jmeter数据库连接配置
一.实际试过的mysql配置 1.导入一个JDBC jar包(我是直接把jar包放在了jmeter的lib目录),包:mysql-connector-java-5.1.7-bin.jar 2.设置JD ...
- type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。 作者:高
MySQL EXPLAIN详解 - 简书 https://www.jianshu.com/p/ea3fc71fdc45 type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: syst ...
- 在队列中join()与task_done()的关联性
1.基础解释: Queue.task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号 Queue.join() 实际上意味着等到队列为空,再执 ...
- C++编程剖析 问题 方案 和设计准则
1.Set的每个对象为什么会有三个指针? STL中的set使用方法详细!!!! 因为其底层是红黑树实现的,每个节点有两个子节点和一个父节点,所以需要三个指针. Set 与 map的区别是什么? 总的来 ...