- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
机器人操作系统(ROS2)入门与实践;机器人操作系统(ROS2)入门与实践;;激光雷达的旋转部分搭载激光测距探头,其在旋转的过程中每隔一定角度就会测量一次距离值。当其旋转一圈时,刚好可以对周围障碍物进行均匀的测距采样,这么一组测距值就是激光雷达的输出数值。;ROS2中的激光雷达的节点会在指定名称的话题里发布消息。话题名称在REP-138中推荐为“/scan”。消息的类型为sensor_msgs::LaserScan,其格式如图所示:;在ROS2中,提供了一个图形化工具,可以直观的查看传感器的数值。这个工具名字叫“RViz2”,其中“RViz”是“ROSVisualizationTool”的缩写,“2”表示第二代。;5.2在RViz2中查看激光雷达数据;5.2在RViz2中查看激光雷达数据;5.2在RViz2中查看激光雷达数据;5.2在RViz2中查看激光雷达数据;激光雷达数据的获取是通过订阅激光雷达发布的话题,从话题中获取激光雷达发出的消息包来实现的。如图所示,将会实现一个订阅者节点,订阅/scan话题。从此话题中接收sensor_msgs::LaserScan类型的消息包,并解析出雷达的测距数值。;5.3激光雷达数据获取;5.3激光雷达数据获取;5.3激光雷达数据获取;5.3激光雷达数据获取;下面将激光雷达数据获取和速度控制进行结合,实现一个避障程序。程序订阅雷达数据的“/scan”话题,从中接收激光雷达节点发来的sensor_msgs::LaserScan类型消息包,并解析出雷达测距值。根据雷达测距值让机器人做出反应:前方没有障碍物就前进,前方遇到障碍物就转向。;5.4.1编写雷达避障程序;5.4.1编写雷达避障程序;#includerclcpp/rclcpp.hpp
#includesensor_msgs/msg/laser_scan.hpp
#includegeometry_msgs/msg/twist.hpp?
std::shared_ptrrclcpp::Nodenode;
rclcpp::Publishergeometry_msgs::msg::Twist::SharedPtrvel_pub;
intnCount=0;?
voidLidarCallback(constsensor_msgs::msg::LaserScan::SharedPtrmsg)
{intnNum=msg-ranges.size();
intnMid=nNum/2;
floatfMidDist=msg-ranges[nMid];
RCLCPP_INFO(node-get_logger(),ranges[%d]=%fm,nMid,fMidDist);?
if(nCount0)
{nCount--;
return;}?
geometry_msgs::msg::Twistvel_msg;
if(fMidDist1.5f)
{vel_msg.angular.z=0.3;
nCount=100;}
else
{vel_msg.linear.x=0.1;}
vel_pub-publish(vel_msg);
};intmain(intargc,char**argv)
{
rclcpp::init(argc,argv);
?
node=std::make_sharedrclcpp::Node(lidar_behavior_node);
?
vel_pub=node-create_publishergeometry_msgs::msg::Twist(/cmd_vel,10);
autolidar_sub=node-create_subscriptionsensor_msgs::msg::LaserScan(/scan,10, LidarCallback);
?
rclcpp::spin(node);
?
rclcpp::shutdown();
?
return0;
};2、设置编译规则;sourceinstall/setup.bash;5.5本章小结
您可能关注的文档
- 机电设备控制技术课件:气压传动技术.pptx
- 机电设备控制技术课件:液压传动基础知识.pptx
- 机电设备控制技术课件:液压基本回路及典型液压系统.pptx
- 机电设备控制技术课件:液压系统元件.pptx
- 机电设备维护与管理(第2版)课件:常用高低压成套电气设备的维护.pptx
- 机电设备维护与管理(第2版)课件:典型修复技术.pptx
- 机电设备维护与管理(第2版)课件:电气设备的维修.pptx
- 机电设备维护与管理(第2版)课件:动力设备及起重设备的管理.pptx
- 机电设备维护与管理(第2版)课件:机电设备管理要求、内容及基础工作.pptx
- 机电设备维护与管理(第2版)课件:起重设备的维护维修.pptx
- 2025年新疆乌鲁木齐市单招职业适应性测试题库学生专用.docx
- 2025年揭阳职业技术学院单招职业适应性测试题库汇编.docx
- 2025年怀化职业技术学院单招职业技能测试题库及参考答案一套.docx
- 2025年开封职业学院单招职业适应性测试题库精编答案.docx
- 2024-2025统编版道德与法治六年级下册期末考试卷附答案 (8).docx
- 2024-2025统编版道德与法治六年级下册期末考试卷附答案 (9).docx
- 2024-2025统编版道德与法治六年级下册期末考试卷附答案 (10).docx
- 2024-2025统编版道德与法治六年级下册期末考试卷附答案 (11).docx
- 公路工程业务知识单选题100道及答案.docx
- 高三自然地理+一轮复习课件+河流侵蚀地貌..pptx
文档评论(0)