版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
授课老师:连国云项目7:智能机器人有求必应《智能机器人技术》课程任务要求知识导入任务实施任务评价用代码编写客户端,通过service向server提交3个数字,通过server计算出这3个数的平均值任务要求知识导入任务实施任务评价代码创建客户端在turtlesim节点中已经提供了一个名字叫做/spawn的service的server,该server可以在指定位置产生一个新的turtle。通过turtle_spawn节点的代码构建了一个名字叫做/spawn的service的客户端,通过这个客户端向server发送了一个新turtle位置的请求,server接收到这个请求之后,会在指定的位置产生一个新的turtle。任务要求知识导入任务实施任务评价c#!/usr/bin/envpython#-*-coding:utf-8-*-#该例程将请求/spawn服务,服务数据类型turtlesim::Spawn
import
sysimport
rospyfrom
turtlesim.srv
importSpawn任务要求知识导入任务实施任务评价def
turtle_spawn():#ROS节点初始化rospy.init_node('turtle_spawn')
#发现/spawn服务后,创建一个服务客户端,连接名为/spawn的servicerospy.wait_for_service('/spawn')
try:add_turtle=rospy.ServiceProxy('/spawn',Spawn)
#请求服务调用,输入请求数据response=add_turtle(2.0,2.0,0.0,"turtle2")
returnresponse.name
exceptrospy.ServiceException,e:
"Servicecallfailed:%s"%e任务要求知识导入任务实施任务评价if__name__==
"__main__":#服务调用并显示调用结果
"Spwanturtlesuccessfully[name:%s]"%(turtle_spawn())
任务要求知识导入任务实施任务评价(1)fromturtlesim.srvimportSpawn导入turtlesim.srv文件中定义的,名字叫做Spawn的srv(服务数据)。(2)defturtle_spawn():定义名字为turtle_spawn的函数。(3)rospy.init_node('turtle_spawn')初始化名字为turtle_spawn的ROS节点。任务要求知识导入任务实施任务评价(4)rospy.wait_for_service('/spawn')创建client,连接名字叫做“/spawn”的service。(5)add_turtle=rospy.ServiceProxy('/spawn',Spawn)创建服务处理句柄add_turtle,其中对应的服务为”/spawn”,对应的srv类型为Spawn。(6)response=add_turtle(2.0,2.0,0.0,"turtle2")按照Spawn的srv数据格式,将数据装入response数据部分。任务要求知识导入任务实施任务评价(7)returnresponse.name将response中的name数据作为turtle_spawn函数的返回值。(8)exceptrospy.ServiceException,e:
print"Servicecallfailed:%s"%e这两条语句为异常处理,并显示服务调用错误。(9)if__name__==
"__main__":
print"Spwanturtlesuccessfully[name:%s]"%(turtle_spawn())服务调用成功,显示成功信息。任务要求知识导入任务实施任务评价总结起来,通过代码实现service的客户端主要有4个步骤:(1)初始化ROS节点(2)创建client实例,并指定所要连接的service(3)将数据按照特定的srv格式中的request进行封装,并发送出去(4)等待server发回的response数据任务要求知识导入任务实施任务评价编译完成之后,启动小海龟的仿真程序,用键盘控制小海龟的运动,然后运行如下命令$rosmyturtle_serverturtle_spawn就可以看到仿真程序中多了一个小海龟。任务要求知识导入任务实施任务评价根据任务要求,具体的工作任务实施步骤如下:(1)编写client代码上一个任务已经建立calc_avg_02的package,在本任务中仍然在该package下编写相关节点代码。/catkin_ws/src/calc_avg_02/scripts文件夹下编写的代码为client.py任务要求知识导入任务实施任务评价(2)对编写的client.py进行编译(a)在编写的python代码文件所在的文件夹下修改python代码文件的权限,
使其变成可执行文件:$sudochmod+xclient.py(b)进行package编译操作$cd~/catkin_ws#进入工作空间所在的文件夹$catkin_make#对工作空间内所有的package都进行编译$source~/catkin_ws/devel/setup.bash#更新package对应的环境变量任务要求知识导入任务实施任务评价(3)运行server和client节点,查看消息(a)启动新的终端,输入启动ROS命令$roscore(b)启动新的终端,启动上一任务中已经编写的server节点命令$rosruncalc_average_02server.py(c)启动新的终端,启动client节点命令$rosruncalc_average_02client.py任务要求知识导入任务实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川三江汇海商业保理有限公司第一批员工招聘6人备考题库带答案详解(培优b卷)
- 2026贵州贵阳观山湖区远大小学教师招聘备考题库及1套完整答案详解
- 2026广东深圳市南山区松坪文理幼儿园招聘1人备考题库及答案详解参考
- 2026贵州省外经贸集团有限责任公司第一批面向社会招聘32人备考题库含答案详解(轻巧夺冠)
- 2026浙江大学工程训练中心招聘2人备考题库附答案详解(培优b卷)
- 2026江苏苏州资管集团下属公司招聘14人备考题库含答案详解(黄金题型)
- 2026广东汕头大学医学院第一批招聘6人备考题库及答案详解【夺冠】
- 2026江苏盐城市射阳县教育局下属事业单位赴高校招聘教师17人备考题库及答案详解【历年真题】
- 2026新疆得仁水务发展有限公司市场化选聘公司及子公司管理人员6人备考题库及一套参考答案详解
- 2026中运博(扬州)文化服务有限责任公司工作人员招聘15人备考题库含答案详解(新)
- 肾衰竭中医辨证施治方案
- 110接警员培训课件
- 攀登计划课件
- 四川综合评标专家库试题及答案
- 2025年机场运行与管理面试题库及答案
- GB/T 3934-2025普通螺纹量规技术条件
- 2025年高职网络营销与直播电商(直播营销)试题及答案
- 国土空间规划课件 第三讲 国土空间规划体系
- 皖北卫生职业学院单招职业适应性测试题库及答案解析
- 2025年智能穿戴设备数据采集合同
- 2025至2030中国牛肉行业运营态势与投资前景调查研究报告
评论
0/150
提交评论