智能机器人技术 课件 项目7智能机器人有求必应_第1页
智能机器人技术 课件 项目7智能机器人有求必应_第2页
智能机器人技术 课件 项目7智能机器人有求必应_第3页
智能机器人技术 课件 项目7智能机器人有求必应_第4页
智能机器人技术 课件 项目7智能机器人有求必应_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

授课老师:连国云项目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:

print

"Servicecallfailed:%s"%e任务要求知识导入任务实施任务评价if__name__==

"__main__":#服务调用并显示调用结果

print

"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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论