ROS学习笔记(三)
机器人建模与仿真
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学习笔记(三)的更多相关文章
- ROS学习笔记三:编写第一个ROS节点程序
在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package). 1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...
- ROS学习笔记三(理解ROS节点)
要求已经在Linux系统中安装一个学习用的ros软件包例子: sudo apt-get install ros-indigo-ros-tutorials ROS图形概念概述 nodes:节点,一个节点 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) 补充 hector_slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Learning ROS for Robotics Programming Second Edition学习笔记(三) indigo rplidar rviz slam
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- java之jvm学习笔记三(Class文件检验器)
java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
随机推荐
- notepad++ 调整行间距
在“设置”-“语言格式设置”里面,找到style里面的Line number margin一项,调整字体大小就可以调整左边标号的大小,然后文本内容的行间距即可任意调整.
- jquery 如何控制音乐打开和关闭
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 布鲁克斯法则 (Brooks's Law)
软件开发后期,添加人力只会使项目开发得更慢. 这个定律表明,在许多情况下,试图通过增加人力来加速延期项目的交付,将会使项目交付得更晚.布鲁克斯也明白,这是一种过度简化.但一般的推理是,新资源的增加时间 ...
- 如何在Processing中用鼠标获取RGB颜色数值
要做一个抠图应用,所以随手做了个鼠标取色,代码如下: void mousePressed(){ int imgC = get(mouseX,mouseY); int R = (imgC >> ...
- Matlab中的变量名
在Matlab中使用save和load命令时,可能会出现变量名出错的问题. 如: save('A1.mat', 'A1'); load('A1.mat', 'A1'); 如果程序中还有名为a1的变量名 ...
- (1)Go变量声明、赋值和常量
先简单了解一下控制台输出,在go中,我们使用fmt包中的函数进行在控制台中打印,一般用以下几个函数 fmt.Print() #不换行输出 fmt.Printf() ...
- Pytest权威教程21-API参考-07-配置选项(Configuration Options)
目录 配置选项(Configuration Options) addopts cache_dir confcutdir console_output_style doctest_encoding do ...
- ICEM-hollow
原视频下载地址: http://yunpan.cn/cumt7U7ufYfA3 访问密码 a46d
- [Linux] 启用win10下Linux子系统
转载请注明出处:https://www.cnblogs.com/lialong1st/p/12004080.html 最新的win10引入了Linux子系统,这样就免去了安装虚拟机或者双系统的麻烦. ...
- zabbix基于docker安装
centos的版本 # cat /etc/redhat-release CentOS Linux release (Core) docker的安装 配置yum源 # vim /etc/yum.repo ...