版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能网联创新实验室无人驾驶系统编成目录1ROS编成2ROSCPP3ROSPY4ROSLISP目录1ROS编成2ROSCPP3ROSPY4ROSLISPPage.
4ROS编成Page.
5ROS编程Page.
6ROS概述roscpp:ROS中的C++客户端库,执行效率高,在ROS中使用最广泛。rospy:ROS中的python客户端库,使得ROS可以享有面向对象的脚本语言所带来的便利。rospy注重开发效率而不是运行效率,master,roslaunch和很多工具都是采用rospy开发的。roslisp:用于LISP的客户端库,它目前用于开发规划库。其他实验库:rosjava,roslua目录1ROS编成2ROSCPP3ROSPY4ROSLISPPage.
8ROSCPP简单的主题发布者和主题订阅者:编写主题发布者节点需要:初始化ROS系统广播消息:在foo主题上发布Foo_type_msg类型的消息已指定频率发布消息到foo主题编写主题订阅者需要:初始化ROS从foo主题订阅消息Spin,然后等待消息到达当消息到达时,Msg_Callback()函数被调用Page.
9ROSCPPPage.
10ROSCPP简单的服务器端和客户端:服务器端客户端如何使用参数提取参数boolgetParam(conststd::string&key,parameter_type
&output_value)constparameter_typeparam(conststd::string&
param_name,parameter_type&
default_val)设置参数voidsetParam(conststd::string&key,parameter_type&v)
const删除参数booldeleteParam(conststd::string&key)
const检查存在性boolhasParam(conststd::string&key)
constPage.
11ROSCPPPage.
12ROSCPPPage.
13ROSCPPPage.
14ROSCPPHello
World程序节点:
2个节点talker
(talker.cpp)
:
包含一个发布者节点listener
(listener.cpp)
:
包含一个接收者节点间的通讯:Topic(话题的名称):“chatter”Message(传递的数据类型):std_msgs::StringString为
ROS自定义的数据类型String中包含唯一变量为
std::string
dataPage.
15ROSCPPHelloWorld程序Page.
16ROSCPPHello
World程序Page.
17ROSCPPHelloWorld程序目录1ROS编成2ROSCPP3ROSPY4ROSLISPPage.
19ROSPYrospy是ROS的纯Python客户端库。rospy客户端API使Python程序员能够快速与ROS
主题,服务和参数进行交互。rospy的设计有利于运行时性能的实现速度(即开发者时间),以便可以在ROS内快速对原型和测试进行算法测试。它也非常适合非关键路径代码,例如配置和初始化代码。许多ROS工具都是用rospy编写的,以利用类型内省功能。许多ROS工具,例如rostopic
和rosservice,都建立在rospy之上。Page.
20ROSPY编写发布节点“Node”(节点)是ROS术语,表示被连接到ROS网络的可执行文件。在这里,我们将创建发布者("talker")节点,这将持续的广播一个消息。目录更改为beginner_tutorials包,你在前面的教程中创建一个package(包):$roscd
beginner_tutorials我们创建一个“脚本”文件夹来存储我们的Python脚本:$mkdir
scripts$cd
scripts那么示例脚本下载talker.py到新的脚本,目录,使其可执行:$wget/ros/ros_t...
_listener/talker.py$chmod+x
talker.py您可以查看和编辑文件
$
rosed
beginner_tutorials
talker.py
或者看下面。Page.
21ROSPY//
切换行号显示#!/usr/bin/env
python#licenseremovedfor
brevityimport
rospy//每个Python
ROS
节点都会有这样的声明在顶部from
std_msgs.msg
import
String
//
std_msgs.msg导入,使我们可以重新使用std_msgs
/String消息类型发布。def
talker():pub
=
rospy.Publisher('chatter',
String,
queue_size=10)
//声明节点发布到话题使用消息类型是String。String这里实际上是std_msgs.msg.String类。该queue_size参数是在新的ROS
hydro中,
若subscriber
(订阅者)接收并不是足够的快的情况下
,限制队列消息的数量。rospy.init_node('talker',
anonymous=True)
//是非常重要的,因为它会告诉rospy节点的名称—直到rospy有这方面的信息,就不能开始与ROS
Master(ROS控制器)通信。在这种情况下,您的节点将命名为talker.
。rate=rospy.Rate(10)
#
10hz //该行创建了一个Rate的对象。其为了方便实现sleep()方法,它提供了一个便捷的途径在所需的速度下循环。随着它的参数10,我们应该预料到每秒10次经过一个循环while
not
rospy.is_shutdown():
//这个循环是一个很标准的rospy结构:检查rospy.is_shutdown()标志位,然后进入while循环。你必须察看is_shutdown()来检查你的程序应该退出rospy.get_time() rospy.loginfo(hello_str)hello_str
=
"hello
world
s"pub.publish(hello_str)rate.sleep()if__name
=='__main
':try:talker() //除了标准的
Python
__main
check之外,还将获得一个rospy.ROSInterruptException.except
rospy.ROSInterruptException:pass //当按下Ctrl-C键被按下或当节点关闭时,可以通过rospy.sleep()和rospy.Rate.sleep()方法关闭节点。这引发异常的原因是为了在执行代码
sleep()
后继续执行。目录1ROS编成2ROSCPP3
ROSPY 4ROSLISPPage.
23ROSLISPRoslisp是用于在惯用Common
Lisp中编写ROS节点的客户端库。该库的编写是为了支持易用性,快速编写节点脚本以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职(环境监测技术)环境评价阶段测试试题及答案
- 2025年中职机械加工技术(切削加工)试题及答案
- 2025年大学汉语言文学(古代文学作品选)试题及答案
- 2026年住院医师规培推拿科(专业知识)试题及答案
- 2025年大学会计学(财务会计)试题及答案
- 2025年高职(航空物流)航空货运代理试题及答案
- 2025年高职药物制剂技术(制剂工艺进阶)试题及答案
- 2025年大学轨道装备(轨道报告编写)试题及答案
- 初中七年级(历史)2027年下学期期末试题及答案
- 2025年大学工业机器人技术(机器人运动控制)试题及答案
- 墙壁维护施工方案(3篇)
- 2024CSCO肿瘤患者静脉血栓防治指南解读
- MOOC 中国文化概论-华南师范大学 中国大学慕课答案
- 博物馆保安服务投标方案(技术方案)
- 浙人美版美术五年级上册期末复习资料整理
- 年产20万吨氯乙烯工艺设计
- GB/T 42737-2023电化学储能电站调试规程
- 人民网舆情监测室发布2023年互联网舆情分析报告
- 博士论文的写作
- 新概念英语第二册+Lesson+78+The+last+one+最后一支吗?讲义
- QC成果范文:提高管道焊接质量
评论
0/150
提交评论