视觉伺服学习笔记
文章平均质量分 55
深视
这个作者很懒,什么都没留下…
展开
-
ViSP学习笔记(四):在Gazebo环境下实现Pionner3dx移动机器人基于四个特征点的视觉伺服仿真
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文是在前文Visp_ros学习笔记(二):在Gazebo环境下实现Pionner3dx移动机器人视觉伺服仿真的基础上改进而来的,主要的改进包含一下几点:将对一个特征点的检测和跟踪改为对四个特征点的检测和跟踪将连通区域的手动.原创 2021-03-18 22:40:48 · 1634 阅读 · 3 评论 -
视觉伺服的个人理解
视觉伺服就是在已知系统(机器人)的期望状态s∗s^*s∗的条件下,通过控制系统(机器人)的运动使得系统(机器人)的实际状态sss与期望状态之间的误差e=s−s∗e=s-s^*e=s−s∗小于固定的阈值,与传统的开环控制方法(已知初始状态和期望状态,规划好控制策略后直接执行,中间过程中不再调整)不同,视觉伺服是通过多次迭代的方式逐步缩小误差eee,也就是在执行过程中根据当前状态与期望状态之间的差异,不断更新控制策略。 机器人的实际运行状态s=[m(t),a]s=[m(t),a]s=[m(t),a]是一原创 2020-11-25 20:25:59 · 5039 阅读 · 9 评论 -
Visp_ros学习笔记(三):对于视觉伺服过程中关键函数的理解
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1 在上一篇博客中介绍了使用Pionner3dx移动机器人完成视觉伺服任务的例程,收到篇幅限制,对于视觉伺服过程并没有具体介绍,本文针对过程中使用的几个关键函数做一下介绍。task.setServo(vpServo::EYEINHAND_L_cVe_eJe) 设定视觉伺服控制律的计算方法,例程中选择的是EYEINHAND_L_cVe_eJe方法,EYEINHAND表示相机固定在机器人上,L表示交.原创 2021-03-06 10:48:38 · 1928 阅读 · 0 评论 -
Visp_ros学习笔记(二):在Gazebo环境下实现Pionner3dx移动机器人视觉伺服仿真
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1 本文主要介绍了如何实现Pionner3dx移动机器人视觉伺服仿真,仿真环境是ROS+Gazebo,控制对象是Pioneer3dx(先锋)移动机器人,控制算法借助visp_ros工具实现。视觉伺服控制部分主要参考了visp_ros中的例程tutorial-ros-pioneer-visual-servo.cpp,但由于原本的例程是需要对真实的pionner机器人进行控制,对于没有pionner机器人的同.原创 2021-03-05 10:55:11 · 3400 阅读 · 21 评论 -
ViSP学习笔记(二十五):基于图像的视觉伺服
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现基于图像的视觉伺服(IBVS),关于视觉伺服原理的介绍这里就不再展开了,可以参看这篇博客。本文主要参考了visual-servo/ibvs中的tutorial-ibvs-4pts-image-tra.原创 2021-02-26 14:32:09 · 6079 阅读 · 0 评论 -
ViSP学习笔记(二十四):计算两幅图像之间的单应性矩阵
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP计算两幅图像之间的单应性矩阵,在已知同一个物体的特征点在两个相机中的图像坐标后,就能够计算两个相机坐标之间的单应性矩阵。如果能够保证两幅图像中的特征点是一一对应匹配的可以采用DLT或HLM算法进行计算。.原创 2021-02-25 11:25:15 · 1427 阅读 · 0 评论 -
ViSP学习笔记(二十三):根据特征点进行位姿估计
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现根据特征点进行位姿估计,在视觉伺服过程中,已知目标物体上的特征点在空间坐标系下的三维坐标和在图像坐标系下的二维坐标,计算当前目标物体相对于相机坐标系的位姿是非常重要的步骤。本文主要参考了comput.原创 2021-02-25 10:51:34 · 1066 阅读 · 1 评论 -
ViSP学习笔记(二十二):目标检测和定位
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现目标检测和定位,实现过程分为两步,第一步在参考图像中检测并提取目标物体表面的关键点,并保存其对应的三维坐标,第二步在当前图像中寻找匹配对的关键点,并根据目标物体的CAD模型信息和关键点坐标估计目标物.原创 2021-02-23 15:09:08 · 862 阅读 · 2 评论 -
ViSP学习笔记(二十一):人脸检测
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现人脸检测,主要是利用OpenCV中的Haar级联检测器来实现人脸检测功能的。本文主要参考了detection/face中的 tutorial-face-detector.cpp 例程。首先要获取这个.原创 2021-02-23 14:15:41 · 280 阅读 · 0 评论 -
ViSP学习笔记(二十):二维码检测
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现二维码检测,二维码包含QRCode和DataMatrixCode两个类型,本文主要参考了detection/barcode中的tutorial-barcode-detector.cpp例程。首先要获.原创 2021-02-23 13:49:37 · 1631 阅读 · 0 评论 -
ViSP学习笔记(十九):关键点检测和匹配
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现关键特征点的检测以及匹配,文中使用了ORB特征提取算法在参考图像中寻找关键点,并采用BruteForce-Hamming算法实现关键点的匹配,即从视频中寻找到与参考图像中相匹配的关键点。本文主要参考.原创 2021-02-23 12:29:03 · 1067 阅读 · 0 评论 -
ViSP学习笔记(十八):模板跟踪
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现特定形状模板的跟踪,本文主要参考了template-tracker中的tutorial-template-tracker.cpp 例程。首先要获取这个例程文件并编译它svn export http.原创 2021-02-22 17:48:28 · 601 阅读 · 0 评论 -
ViSP学习笔记(十七):通用的基于模型的目标跟踪
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现基于CAD模型的目标跟踪,需要提供目标物体的CAD模型文件(cao格式或者vrml格式),目标物体的初始位置(init文件),视频文件,并且需要手动在视频文件的第一帧中选择出目标物体的初始位置(至少.原创 2021-02-22 17:07:01 · 1386 阅读 · 1 评论 -
ViSP学习笔记(十六):运动的边缘跟踪
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现运动的边缘跟踪,调用摄像头获取视频图像,并从第一帧图像本文主要参考了 中的 例程。首先要获取这个例程文件并编译它svn export https://github.com/lagadic/vi.原创 2021-02-22 15:50:23 · 838 阅读 · 2 评论 -
ViSP学习笔记(十五):关键点跟踪
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现关键点跟踪,实现过程使用了OpenCV中的KLT跟踪算法,主要流程是在第一帧图像中选择出(手动或自动)待跟踪的目标关键点,然后在后面的每一帧中都搜索对应的目标关键点实现关键点跟踪。本文主要参考了 k.原创 2021-02-22 12:06:58 · 1560 阅读 · 0 评论 -
ViSP学习笔记(十四):连通区域跟踪
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现连通区域的跟踪,具体而言就是以鼠标点击的位置作为起始点搜索最近的连通区域,然后根据当前连通区域的信息,在一幅图像中搜索与之匹配的其他连通区域,如果在连续的图像序列中分别寻找匹配的连通区域的话就可以实.原创 2021-02-21 15:25:43 · 649 阅读 · 0 评论 -
ViSP学习笔记(十三):泛洪算法(flood fill)
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现泛洪算法,所谓泛洪算法就是在一个封闭图形中从一个像素点出发,以此向周边的像素点扩充着色,直到图形的边界。本文主要参考了imgprco中的tutorial-flood-fill.cpp例程。首先要获取.原创 2021-02-20 17:57:40 · 831 阅读 · 0 评论 -
ViSP学习笔记(十二):连通区域标记
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP实现连通区域标记,本文主要参考了 imgproc中的 tutorial-connected-components.cpp 例程。首先要获取这个例程文件并编译它svn export https://g.原创 2021-02-20 17:30:27 · 377 阅读 · 0 评论 -
ViSP学习笔记(十一):从二值化图像中提取边缘
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP从二值化图像中提取轮廓,本文主要参考了imgproc中的 tutorial-contour.cpp 例程。首先要获取这个例程文件并编译它svn export https://github.com/la.原创 2021-02-20 16:57:25 · 1357 阅读 · 0 评论 -
ViSP学习笔记(十):自动阈值划分
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP自动设定阈值对图像进行二值化处理,主要涉及Huang、Intermodes、Isodata、Mean、Otsu、Triangle等自动阈值划分算法。本文主要参考了imgproc中的 tutorial-.原创 2021-02-20 16:18:06 · 410 阅读 · 0 评论 -
ViSP学习笔记(九):图像锐化
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍如何使用ViSP实现图像锐化处理,主要涉及直方图拉伸、直方图均衡、CLAHE算法、非锐化掩膜(unsharp masking)算法。本文主要参考imgproc中的 tutorial-contrast-sharpening.原创 2021-02-20 16:03:54 · 285 阅读 · 0 评论 -
ViSP学习笔记(八):调整图像明度和对比度
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用ViSP来调整图像的明度和对比度,主要涉及四种内置的调整算法:线性调整,伽马修正,正方图均衡和Retinex算法。本文主要参考了imgproc中的 tutorial-brightness-adjustment..原创 2021-02-20 15:35:14 · 370 阅读 · 0 评论 -
ViSP学习笔记(七):平面图像投影
开发环境:Ubuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文介绍了如何使用ViSP计算平面图像的投影,我们在空间中放置一个正方形,通过投影计算在空间中不同位置观察这个正方形时,所呈现图像的形状。本文主要参考了simulator中的tutorial-image-simulator.cpp例.原创 2021-02-20 14:31:48 · 678 阅读 · 1 评论 -
ViSP学习笔记(六):使用ViSP实现常见的图像滤波
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文介绍了如何使用ViSP实现常见的图像滤波,如高斯滤波、梯度计算、卷积运算、Canny边缘检测等。在vpImageFilter类中提供了多种滤波函数,使用者只需调用即可。本文的介绍主要参考了image中的tutorial-ima.原创 2021-01-29 15:21:49 · 1203 阅读 · 0 评论 -
ViSP学习笔记(五):绘制并保存一张RGB图像
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文主要介绍了如何使用vpImageDraw类中定义的函数来绘制一张图片,并使用vpImageIo类中定义的函数来保存一张图片。下文借鉴了testImageDraw.cpp测试例程中的部分内容,但并不完全相同。首先,我们先要新建一.原创 2021-01-28 20:54:48 · 546 阅读 · 0 评论 -
ViSP学习笔记(四):创建并显示一幅图像
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 本文介绍了如何使用ViSP创建一幅图像,并在窗口中显示出来。如果你已经按照ViSP学习笔记(二):使用CMake编译ViSP工程中的步骤,下载了image文件夹并完成了CMake步骤,那么下面只需要进行简单的编译和执行工作,就能完.原创 2021-01-28 17:40:19 · 633 阅读 · 0 评论 -
ViSP学习笔记(三):新建Visp工程并使用CMake完成编译
开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1文章内容主要参考ViSP官方教学文档:https://visp-doc.inria.fr/doxygen/visp-daily/tutorial_mainpage.html 在上一篇文章ViSP学习笔记(二):使用CMake编译ViSP工程中我们介绍了如何使用CMake编译一个现成的Visp例程,而在这篇文章中我们就介绍如何从无到有新建一个Visp工程并完成编译过程。1. 创建工程新建文件夹.原创 2021-01-28 16:09:57 · 1145 阅读 · 0 评论 -
Visp_ros学习笔记(一):如何从ROS中抓取图像
本文是利用Visp_ros中的一个例程 tutorial-ros-grabber来实现图像的获取,这个例程的使用需要先手动完成visp、visp_ros、vision_visp的安装,安装方法可参考这篇博文。完成基础功能包的安装之后,就可以尝试实现该例程了。 首先,需要有一个USB摄像头并与电脑相连(笔记本电脑自带摄像头应该也可以),并安装ROS环境下的usb_cam功能包,安装过程如下cd catkin_ws/srcgit clone https://github.com/bosch-ros-原创 2021-01-26 22:01:33 · 1530 阅读 · 1 评论