网站大量收购闲置独家精品文档,联系QQ:2885784924

机器人操作系统(ROS2)入门与实践 课件全套 第1--12章 Linux Ubuntu入门基础 ----基于ROS2的综合应用.ppt

机器人操作系统(ROS2)入门与实践 课件全套 第1--12章 Linux Ubuntu入门基础 ----基于ROS2的综合应用.ppt

  1. 1、本文档共314页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

9.3基于图像视觉的目标追踪实现切换到仿真窗口,可以看到里面的机器人对准桔色球,轻微向后移动,与桔色球保持固定距离。如图所示,在运行cv_follow节点的终端窗口,可以看到追踪目标物的中心坐标值在不停地刷新。sourceinstall/setup.bashros2runwpr_simulation2ball_random_move为了测试机器人追踪目标球的效果,可以借助wpr_simulation2附带的程序让桔色球动起来。以便进行观察。打开第3个子窗口。执行之后,可以看到仿真窗口里的桔色球开始随机运动,而机器人也追着桔色球在移动。此时再切换到“RGB”窗口,观察蓝色十字标记是对桔色目标球的追踪效果。9.3基于图像视觉的目标追踪实现9.3基于图像视觉的目标追踪实现经过前面三个实验,终于将识别检测和运动行为结合起来,形成一个典型的视觉闭环控制系统。机器人与外部世界的交互,形式虽然多样,但是本质上都是这样一套“识别→定位→操作”的闭环控制系统。通过这样一个简单的例子,了解和学习这种实现思路,可以为将来构建更复杂的机器人系统奠定一个基础。9.4基于图像视觉的人脸检测实现本节借助现成的人脸识别算法库来实现人脸检测,这个算法库的调用在wpr_simulaiton2的face_detector.py节点中已经实现,直接使用即可。face_detector.py节点会订阅话题“/face_detector_input”,作为人脸图像的输入。图像中的人脸被检测到后,其坐标值会发布到话题“/face_position”中去。所以,这个实验只需要编写一个节点,从相机的话题中获取图片,转发给face_detector.py节点进行人脸检测。然后从face_detector.py的“/face_position”话题获取人脸坐标结果即可。9.4基于图像视觉的人脸检测实现详细操作步骤见教材P311-P326页在编写代码前,需要安装人脸检测节点face_detector.py的依赖项。cd~/ros2_ws/src/wpr_simulation2/scripts/./install_dep_face.sh9.4.1编写人脸检测程序1、编写节点代码在cv_pkg软件包中的[src]文件夹新建文件,命名为“cv_face_detect.cpp”。9.1视觉图像数据的获取详细操作步骤见教材P260-P272页视觉图像数据的获取是通过订阅相机驱动节点发布的话题,从话题中获取相机发出的消息包来实现的。机器人头部安装的是KinectV2RGB-D相机,对应的话题名称为“/kinect2/qhd/image_raw”,话题中的消息包格式为sensor_msgs::Image。9.1视觉图像数据的获取本实验将会实现一个订阅者节点,订阅相机发布的话题/kinect2/qhd/image_raw。从此话题中接收sensor_msgs::Image类型的消息包,并将其中的图像数据转换成OpenCV的格式。最后使用OpenCV的图形显示接口,将图像显示在图形窗口中。9.1.1编写图像数据获取程序cd~/ros2_ws/srcros2pkgcreatecv_pkg打开一个新的终端窗口,在工作空间中创建一个名为“cv_pkg”的软件包。1、编写节点代码在cv_pkg软件包中的[src]文件夹新建文件,命名为“cv_image.cpp”。下面编写这个代码文件内容:9.1视觉图像数据的获取#includerclcpp/rclcpp.hpp#includesensor_msgs/msg/image.hpp#includecv_bridge/cv_bridge.h#includeopencv2/imgproc/imgproc.hpp#includeopencv2/highgui/highgui.hpp?std::shared_ptrrclcpp::Nodenode;?voidCamRGBCallback(constsensor_msgs::msg::Image::SharedPtrmsg){cv_bridge::CvImagePtrcv_ptr;cv_ptr=cv_bridge::toCvCopy(msg,sensor_msgs::image_encodings::BGR8);?cv::MatimgOriginal=cv_ptr-image;cv::imshow(RGB,imgOriginal);

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档