ROS

packages:

ROS 软件包是一组用于实现特定功能的相关文件的集合,包括可执行文件和其他支持文件。
在 ROS 中,所有软件都被组织为软件包的形式,比如 turtlesim 包就包含turtlesim_node 和turtle_teleop_key> 可执行文件,当然还有一些其他的可执行文件和配置文件。

Node:

节点是各自独立的可执行文件,在ROS程序的运行实例被称为节点程序( node)

Topics and Messages:

ROS节点之间进行通信所利用消息传递,而消息被有组织地存放在话题里 .
消息传递的理念是:当一个节点想要分享信息时,它就会发布(publish)消息到对应的一个或者多个话题;当一个节点想要接收信息时,它就会订阅(subscribe)它所需要的一个或者多个话题。 ROS节点管理器负责确保发布节点和订阅节点能找到对方.
所以节点之间通过topic机制来通信,topic机制是一个一对多的Publish/Subscribe 模式: 同一个话题也可以有很多个订阅者,它的底层传输依靠的是TCP/IP,也可以是UDP。topic具体传输的是message,具有一定的类型和数据结构,包括ROS提供的标准类型,和用户自定义类型。

msg是一个描述ROS中消息的域的简单的文本文件,它用来为消息产生不同语言的源代码。

一个srv文件描述一个服务,它由ROS两部分组成,请求和服务。

msg文件被存储在一个包的msg目录下,srv文件被存储在srv目录下。msg是简单的文本文件,它的每一行由一个与的类型和域的名字组成。你可以使用的域的类型有:

int8, int16, int32, int64 (plus uint*)
float32, float64
string
time, duration
other msg files
variable-length array[] and fixed-length array[C]

ROS中还有一个特殊的类型Header,header包括了一个时间戳和一个经产在ROS中使用的坐标框架信息。你经常会看到在msg文件的第一行代码是:

Header header  
string child_frame_id  
geometry_msgs/PoseWithCovariance pose  
geometry_msgs/TwistWithCovariance twist    

srv文件和msg文件是一样的,除了它们包括两部分:请求和响应,这两部分通过’—’分隔。下面是一个srv文件的例子:A和B是请求,sum是响应。

int64 A  
int64 B  
---  
int64 Sum     

roslaunch

$ roslaunch package_name file.launch
roslaunch文件是使用XML语言来描述节点以及相关参数的设置和软件的启动的。
标签是任何roslaunch文件的根元素。它的唯一目的是作为其他元素的容器。其包含的元素有:

<node> 启动节点 
<param> 对参数服务器进行参数设置 
<remap> 声明映射名 
<machine> 声明要启动的机器 
<rosparam> 使用rosparam文件启动设置ROS参数 
<include> 包含其他的roslaunch文件 
<env> 为启动节点指定一个环境变量 
<test> 启动一个测试节点 
<arg> 声明一个提要 
<group> 共享一个名称空间或重新映射组封闭元素

例子

<node name="listener1" pkg="rospy_tutorials" type="listener.py" args="--test" respawn="true" />
解释:这里使用在rospy_tutorials包里的执行文件listener.py启动一个名为listener1的节点,
同时执行命令行参数–test。如果这个节点为死亡,则重新启动。
<node name="bar1" pkg="foo_pkg" type="bar" args="$(find baz_pkg)/resources/map.pgm" />
解释:这里使用在rospy_tutorials包里的执行文件listener.py启动一个名为listener1的节点,
同时执行命令行参数–test。如果这个节点为死亡,则重新启动。

属性说明

pkg=”mypackage”—–节点所在的包
type=”nodetype”—–节点的类型。必须有一个对应的可执行文件名称相同的。
name=”nodename”—–节点的名称。名称不能包含一个名称空间,需使用ns属性代替。
args=”arg1 arg2 arg3”(可选)—–将参数传递给节点。
machine=”machine-name”(可选)—–指定的机器上启动节点。
respawn=”true”(可选)—–如果节点自动退出则重新启动节点。
respawn_delay=”30” (可选, 默认为 0)—–如果重启为真,在尝试重启之前,档检测到节点故障后则等待延时30秒。
required=”true”(可选)—如果节点死亡,则杀死整个launch
ns=”foo”(可选)—–启动节点在foo命名空间

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值