机器人建模与仿真
URDF(Unified Robot Descrption Format,统一机器人描述格式),ROS提供了URDF的c++解析器。
安装语法检查工具
sudo apt-get install liburdfdom-tools
检查urdf语法
check_urdf xxx.urdf
查看urdf模型的整体结构
urdf_to_graphiz xxx.urdf

===========================================================

机器视觉
摄像头标定:摄像头本身存在光学畸变,可以使用camera_calibration功能包实现双目和单目摄像头的标定。
基于OpenCV的人脸识别和物体跟踪:可以使用cv_bridge功能包实现
二维码识别:可以使用ar_track_alvar功能包创建多种二维码标签,并且可以使用摄像头或Kinect实现二维码的识别与定位
物体识别:ORK是ROS中的物体识别框架,提供了多种物体识别的方法。需要将已知物体模型进行训练,通过模式匹配的方式识别三维物体的位置。

二维图像数据
启动摄像头
roslaunch usb_cam usb_cam-test.launch
查看当前系统中的图像话题
rostopic info /usb_cam/image_raw
查看图像信息的详细定义
rosmsg show sensor_msgs/Image
查看图像的压缩消息类型
rosmsg show sensor_msgs/CompressedImage

三维点云数据
查看三维点云数据消息类型
rostopic info /camera/depth_registered/points
rosmsgs show sensor_msgs/PointCloud2

摄像头标定(camera_calibration)
安装
sudo apt-get install ros-kinetic-camera-calibration
启动摄像头
roslaunch robot_version usb_cam.launch
启动标定程序
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0254 image:=/usb_cam/image_raw camera:=/usb/cam

标定Kinect
包含两个摄像头:一个RGB摄像头,一个红外深度摄像头,两个摄像头需要分别标定,方法同USB摄像头的标定相同
命令如下:
roslaunch robot_vision  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

加载标定参数的文件(YAML格式)
例如摄像头文件为:robot_vision/launch/usb_cam_with_calibration.launch

OpenCV库(Open Source Computer Vision Library)开源计算机视觉库
实现了图像处理和计算机视觉方面很多通用算法。
安装
sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv
使用cv_bridge实现ROS和OpenCV之间图像的转换
roslaunch robot_vision usb_cam.launch
rosrun robot_vision cv_bridge_test.py
rqt_image_view
主要应用 人脸识别 和 物体跟踪。

二维码识别(ar_track_alvar)
安装
sudo apt-get install ros-kinetic-ar-track-alvar
生成二维码
rosrun ar_track_alvar createMarker AR_ID
eg:
rosrun ar_track_alvar createMarker 0
查看帮助
rosrun ar_track_alvar createMarker
创建一系列二维码标签
roscd robot_vision/config
rosrun ar_track_alvar createMarker -s 5 0
rosrun ar_track_alvar createMarker -s 5 1
rosrun ar_track_alvar createMarker -s 5 2

摄像头识别二维码
ar_track_alvar功能包支持USB和RGB-D摄像头作为识别二维码的视觉传感器,分别对应于individualMarkersNoKinect和invidualMarkers两个不同的识别节点。

物体识别框架(OKR, Object Recognition Kitchen)
包含了多种三维物体识别的方法。
安装
sudo apt-get install ros-indigo-object-recognition-kitchen-*    备注:没有安装成功(ubuntu16.04)
kinetic版本下的安装:
1)安装依赖库
sudo apt-get install meshlab
sudo apt-get install libosmesa6-dev
sudo apt-get install python-pyside.qtcore
sudo apt-get install python-pyside.qtgui
2)下载源码安装
mkdir ork_ws && cd ork_ws
wstool init src https://raw.github.com/wg-perception/object_recognition_core/master/doc/source/ork.rosinstall.kinetic.plus
cd src && wstool update -j8
cd .. && rosdep install --from-paths src -i -y
cd src && git clone https://github.com/jbohren/xdot.git
cd .. && catkin_make
echo "export ~/ork_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

该命令会安装OKR中以下功能包:
1)object-recognition-core: 核心功能包,提供多种物体识别的算法,以及模型训练和模型数据库配置的工具
2)object-recognition-linemod:基于OpenCV中linemod方法的物体识别,擅长刚性物体的识别
3)object-recognition-tabletop:用于同一平面上pick-and-place操作中的物体识别方法
4)object-recognition-tod: Textured Object Recognition,基于物体外部文理的识别方法
5)object-recognition-reconstruction: 使用RGB-D摄像头构建物体3D模型
6)object-recognition-renderer: 渲染物体模型的可视化显示
7)object-recognition-msgs:定义object-recognition-core功能包中所需要的message和action
8)object-recognition-capture: 从3D视图中获取物体信息
9)object-recognition-transparent-objects:识别和估计物体的位姿
10)object-recognition-ros-visualization: 物体识别可视化显示的rviz插件

建立物体模型库
安装
sudo apt-get install couchdb
测试是否安装完成
curl -X GET http://localhost:5984

ROS学习笔记(三)的更多相关文章

  1. ROS学习笔记三:编写第一个ROS节点程序

    在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package).   1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...

  2. ROS学习笔记三(理解ROS节点)

    要求已经在Linux系统中安装一个学习用的ros软件包例子: sudo apt-get install ros-indigo-ros-tutorials ROS图形概念概述 nodes:节点,一个节点 ...

  3. Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  4. Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. 大数据之路week07--day05 (一个基于Hadoop的数据仓库建模工具之一 HIve)

    什么是Hive? 我来一个短而精悍的总结(面试常问) 1:hive是基于hadoop的数据仓库建模工具之一(后面还有TEZ,Spark). 2:hive可以使用类sql方言,对存储在hdfs上的数据进 ...

  2. (一)WCF基础

    我们近期在做项目的时候用到了WCF,之前已经看了部分视频,对于WCF有了一定的了解,但仅限于能够根据搭建好的框架使用WCF,还不了解.所以就进行了研究,这样既有实践也能增加理论,二者结合,使用起来更胜 ...

  3. set_index

    Signature: df.set_index( ['keys', 'drop=True', 'append=False', 'inplace=False', 'verify_integrity=Fa ...

  4. Tomcat默认连接超时时间

    秒=1小时 2. 在web.xml中通过参数指定: xml 代码 <session-config>         <session-timeout>30</sessio ...

  5. Javaweb学习笔记(一)

    一.javaweb学习是所需要的细节 1.发送响应头相关的方法 1).addHeader()与setHeader()都是设置HTTP协议的响应头字段,区别是addHeader()方法可以增加同名的响应 ...

  6. C++数组排序泛型算法

    //数组排序泛型算法 #include <vector> #include <iostream> #include <algorithm> //内置泛型算法头文件 ...

  7. 用SAM实现后缀排序

    因为本人几乎不会后缀数组,所以遇到这种SA的模板题也要拿SAM解决. 还是有一点思维难度的. 首先按照国际惯例,建反串的SAM. 然后对于这个反串,我们考虑两个前缀哪一个字典序小:因为是串是反的,所以 ...

  8. Codevs 3002 石子归并 3(DP四边形不等式优化)

    3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...

  9. Processing玩抠图

    突然兴起想玩一下抠图,试着用自带的Example\video来改,花了一个中午做了个小样: 分别是白色为底与黑色为底的效果,代码如下: import processing.video.*; int n ...

  10. idea使用/***/单行注释格式化后会显示多行,如何能保持单行显示