ros 学习之计算机视觉资料总结

ros 学习之计算机视觉

  • ros高效编程
    • Visual Servoing
    • Augmented Reality(AR)
    • Perception and object recognition
    • visual odometry
  • 古月居ros实践一书
  • 古月居ros机械臂课程
    • 第8节
    • 第9节
  • ros robotics project
    • find object 2D
    • 开始3D物体感知
      • 他这里讲的也是 ORK
      • Detecting and recognizing objects from 3D meshes
      • Training using 3D models of an object
      • Training from captured 3D models
      • Recognizing objects

ros高效编程

相关ros功能包:

ros中使用相关功能不需要重复开发。
可以 1 第三方软件
2 视觉设备与机器人相连
3 做仿真

相关说明:

ros机械臂视觉抓取

Visual Servoing

Visual Servoing 从视觉传感器获取反馈信息来控制机器人动作的技术,特别是手臂抓取。
ros中可以使用visp软件控制夹持器。Visp是一种完全跨平台的库。ros包提供了一种跟踪器,它能够通过visp_tracker移动边缘跟踪器节点或visp auto tracker基于模型的跟踪器节点运行。他还能帮助摄像头标定和手眼标定。手眼标定对于抓取任务中的视觉伺服是极为重要的。
下面放网址:
visp - ROS Wiki
ViSP代表视觉伺服平台是一个模块化的跨平台库,允许使用视觉跟踪和视觉伺服技术进行原型设计和开发应用程序,这是Inria Lagadic团队所做研究的核心。ViSP能够计算可应用于机器人系统的控制方案。它提供了一组视觉特征,可以使用实时图像处理或计算机视觉算法进行跟踪。ViSP还提供模拟功能。ViSP可用于机器人技术、计算机视觉、增强现实和计算机动画。
ViSP提供了多个跟踪器,这些跟踪器依赖视觉伺服技术来跟踪对象并实时估计其位置。

To install ViSP and additional third party dependencies such as
OpenCV, Coin, … please run the following command:

  $ sudo apt-get install ros-kinetic-visp

http://visp.inria.fr/

Augmented Reality(AR)

Perception and object recognition

这里讲到了ORK
http://wiki.ros.org/object_recognition
然而,更值得探索的工具: Robot earth 将模型数据放到全球的数据库中。

visual odometry

视觉里程计,假定在一个静止的环境中估计机器人运动。

古月居ros实践一书

古月居书第七章内容。

  1. 摄像头标定 P177
  2. opencv
    他这里就粗浅的讲了opencv与ros之间连接关系,简单的使用了两个函数。
  3. 人脸识别 opencv集成了人脸识别算法,基于Haar特征的级联分类器对象检测算法。
  4. 物体跟踪 也是用到了openccv中的接口,对前后两幅图像比较,之后发布。物体跟踪和物体识别还不一样,是针对动态的场景
  5. 二维码识别,利用ar track alvar功能包
    针对USB摄像头和RGBD有不同的节点文件。

该功能包不仅能识别图像中的二维码,还能确定二维码姿态,还能计算二维码相对于摄像头的空间位置。

该话题包含二维码信息 id和状态

rostopic list 进一步查看ar pose marker 并使用rostopic echo

后面就是该包在kinect中的调用。
7. ORK

ros中集成了强大的物体识别框架 ORK object recognition kitchen

古月居ros机械臂课程

第8节

opencv简单的颜色识别抓取小方块

第9节

find object 2d这是一个ros集成的包
tensorflow object detection api
object recognition 这个就是ORK

ros robotics project

detection只是检测一类物体的存在
recognition还要在此更进一步指导物体的名字

find object 2D

前面讲的都是用摄像头查找2D位置和方向
对于3D环境中的关系,需要用到深度信息传感器,同时使用RGB和depth信息。
P198

开始3D物体感知

处理3D数据或者是点云
匹配感知到的物体与训练的物体数据,匹配算法会根据匹配度标记出相应的检测位置。

他这里讲的也是 ORK

https://blog.csdn.net/sinat_39416814/article/details/94591175
已经停止维护了,不是一个特别好的算法

博主,您好 打扰您啦!问您一个问题,我在使用该算法识别可乐罐的位姿信息时,白色的模型总是在跳跃,造成得到的可乐罐位姿估计总是在变化,您知道应该使用哪些方法可以不让白色的模型跳跃吗?谢谢您啦~~~
和传感器还有算法都可能有关系,建议控制变量找到问题所在。我可以提醒你的是,ork已经停止维护了,它不是一个那么好用的算法。

它不仅是一个用于对象识别的工具包,还提供非视觉方面的功能,例如存储3D模型的数据库管理、输入/输出处理、机器人ROS集成和代码重用。
http://wiki.ros.org/object_recognition
http://wg-perception.github.io/object_recognition_core/

Detecting and recognizing objects from 3D meshes

  1. Building a CAD model of the object or capturing its 3D model
  2. Training the model
  3. Detecting the object using the trained model
    **Random Sample Consensus (RANSAC)**这个在PCL分割中提到了。

Training using 3D models of an object

Training from captured 3D models

If you don’t have a 3D mesh of the object, you can also create one by
capturing the 3D point cloud data and reconstructing the mesh

Recognizing objects

Alternatively, we can use the tabletop pipeline, which can detect objects placed on a flat surface, such as a table itself
If it is a tabletop pipeline, it will mark the plane area in which object is placed, as shown in the next screenshot. This pipeline is good for grasping objects from a table, which can work well with the ROS MoveIt! package.

你可能感兴趣的:(ros与计算机视觉,学习)