rocon app

规格:

Rapp指代rocon_app或者叫robot_app,用在机器人的控制中Robotics in Concert,这是通过 Rapp Manager 安装和执行的元数据。它旨在允许更高级别的控制器采用提供所需公共接口的系统,而不管其平台如何。Rapps 根据平台相关参数(例如启动)和 Rapp 继承的存在分为实现/虚拟和祖先/子级。

rapp类型

虚拟祖先:是rapp;包含公共接口,没有与平台相关的信息;不可执行;示例:rocon_apps/teleop
实现子:不完整的rapp;包含与平台相关的数据,但没有公共 API。它从父母那里继承参数,成为一个完整的 Rapp;示例:turtle_concert/teleop
实现祖先:是完整的rapp;包含要执行的完整信息;例 : turtle_concert/turtle_stroll
虚拟子:无效的rapp;有关详细信息,请参阅设计决策。

rapp参数

下表描述了每种 rapp 类型和要求的特征

R = 必需
O = 可选
N = 不允许
i = 从父级继承(如果不存在)

 功能依赖关系

ROS中功能的概念是机器人拥有的大多数“能力”存在更高级别的接口。格式遵循功能接口规范。

- name: <capability interface name>
    interface:
      topics:
        requires:
          <interface topic>: <rapp topic>
        provides:
          <interface topic>: <rapp topic>
      services:
        requires:
          <interface service>: <rapp service>
        provides:
          <interface service>: <rapp service>
      actions:
        requires:
          <interface action>: <rapp action>
        provides:
          <interface action>: <rapp action>

设计决策

虚拟/实现rapp

如果存在以下两个,则它是 rapp 实现。否则,它是一个虚拟的rapp。

  • compatibility : Rocon URI
  • launch - <package_name>/</.launch>

如果是rapp以下三个参数是可选的

  • icon
  • capabilities

父 VS 祖先

如果rapp是连接的,继承则会涉及多个rapp,父是子继承的rapp,如果一个孩子从它继承,一个子可以同时是一个父。不从另一个子/父继承的父项是祖先。

child -> parent/child -> parent/child -> parent(ancestor)

子 VS 祖先

如果存在以下内容,则为子rapp。否则就是祖先的rapp。

  • parent_name : <package_name>/<rapp name>

 parent_name和public_interface是相互排斥的。

祖先可以是虚拟的也可以是实现的

子rapp必须是实现的

为什么没有虚拟子rapp

引入了虚拟和实现 rapp 的分离,以简化 rapp 组合并最大限度地提高各种平台之间的可移植性。Virtual Child被丢弃,因为其他三个都可以满足所有rapp设计选择。

列子

Chirp -虚拟祖先rapp

# rocon_apps/chirp
display: Chirp
description: Make an audible "chirp" sound.
icon: chirp_bubble_icon.png
public_interface: chirp.interface
public_parameters: chirp.parameters

Chirp -子rapp是实现

# turtlebot_apps/chirp
description: Make a "moo" sound.
launch: chirp.launch
compatibility: rocon:/turtlebot
parent_name: rocon_apps/chirp

 Kobuki Random Walker-功能型rapp

# kobuki_apps/random_walker
display:          Random Walker
description:      Makes Kobuki wander off and explorer the world
compatibility:    rocon:/kobuki|turtlebot2
launch:           random_walker.launch.xml
public_interface: random_walker.interface
icon:             random_walker.png
required_capabilities:
  - name: std_capabilities/DifferentialMobileBase
    interface:
      topics:
        requires:
          '/cmd_vel': 'kobuki_random_walker_controller/commands/velocity'
        provides: []
  - name: kobuki_capabilities/KobukiLED1
    interface:
      topics:
        requires:
          '/kobuki_led1': 'kobuki_random_walker_controller/commands/led1'
        provides: []
  - name: kobuki_capabilities/KobukiLED2
    interface:
      topics:
        requires:
          '/kobuki_led2': 'kobuki_random_walker_controller/commands/led2'
        provides: []

输出

...
<export>
  <rocon_app>RELATIVE_PATH_IN_PACKAGE</rocon_app>
  <!--<rocon_app>apps/chirp/chirp.rapp</rocon_app>-->
</export>
...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

身在江湖的郭大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值