机器人建模与仿真
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. 2019牛客多校第三场 F.Planting Trees

    题目链接 题目链接 题解 题面上面很明显的提示了需要严格\(O(n^3)\)的算法. 先考虑一个过不了的做法,枚举右下角的\((x,y)\),然后二分矩形面积,枚举其中一边,则复杂度是\(O(n^3 ...

  2. JQuery的入门(二)

    Jquery的遍历 jQuery对象本身就是数组对象,通过jquery选择器获得的都是满足该选择器条件的元素对象的集合体,因此在常常需要对jquery对象进行遍历.这里有三种遍历Jquery的方法. ...

  3. mysql.jdbc.Driver异常总结

    1.registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web applic ...

  4. HDU - 6125: Free from square (状压DP+分组背包)

    problem:给定N,K.表示你有数1到N,让你最多选择K个数,问有多少种方案,使得选择的数的乘积无平方因子数.N,K<500: solution:显然可以状压DP做,但是500以内的素数还是 ...

  5. 项链与手镯Uva 10294——Polya定理

    题意 项链和手镯都是由若干珠子串成的环形首饰,区别在于手环可以翻转,但项链不可以. 输入整数 $n$ 和 $t$,输出用 $t$ 中颜色 $n$ 颗珠子能制作成的项链和手镯的个数.($1\leq n ...

  6. Mysql 的使用方法

    一 .Mysql 优势: 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务. 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致 ...

  7. 一文读懂后缀自动机 Suffix_Automata

    原论文(俄文)地址:suffix_automata 原翻译(中文)地址:后缀自动机详解(DZYO的博客) Upd:强推浅显易懂(?)的SAM讲解 后缀自动机 后缀自动机(单词的有向无环图)--是一种强 ...

  8. SpringBoot官方文档学习(三)配置文件、日志、国际化和JSON

    一.Profiles Spring配置文件提供了一种方法来隔离应用程序配置的各个部分,并使其仅在某些环境中可用.任何@Component.@Configuration或@ConfigurationPr ...

  9. PostgreSQL 恢复大法 - 恢复部分数据库、跳过坏块、修复无法启动的数据库

    转载自:https://yq.aliyun.com/articles/582880 背景 一个较大的数据库,如何只恢复一部分数据(例如只恢复某个DB). 如果访问有坏块的表. 如何从无法启动的数据库中 ...

  10. 【JS】基础知识

    引言 在互联网的演化过程中,网页制作是Web1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主. 2005年以后,互联网进入了Web2.0时代,各类似桌面软件的Web应用大 ...