uBot ROS Command Receiver
通过 uBot ROS 桥接收 ROS 2 指令,并转给实现了 uBotCore 执行接口的目标的组件基类,不含控制逻辑。话题是 /<namespace>/<子类的末段名>(best_effort / volatile / 10);命名空间取自 uBot Identity,除非设了 Robot Namespace Override,Command Topic Override 则替换整个话题。目标是 Target Component,未设时用所属 Actor 或它第一个实现该子类接口的组件;没有目标时仍会解码指令、触发事件并计超时。超过 Command Timeout Seconds 仿真秒没有新指令,目标只会被释放一次(退回自己的默认行为,例如悬停),并触发 On Command Timeout;结束游戏时也会释放仍然生效的指令。
Get Command Error
Section titled “Get Command Error”Get Command ErrorTarget is uBot ROS Command ReceiverTargetReturn Value
最近一条错误的文字;自上次启动以来没有错误时为空。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | String |
Get Command Target
Section titled “Get Command Target”Get Command TargetTarget is uBot ROS Command ReceiverTargetReturn Value
指令交给的对象;没有目标(只触发事件)时为空。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Object对象引用 |
Get Resolved Command Topic
Section titled “Get Resolved Command Topic”Get Resolved Command TopicTarget is uBot ROS Command ReceiverTargetReturn Value
正在订阅的话题;没有订阅时,是下一次启动会用的话题。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | String |
Is Command Active
Section titled “Is Command Active”Is Command ActiveTarget is uBot ROS Command ReceiverTargetReturn Value
从收到有效指令到超时为 true;超时关闭时,收到过指令后一直为 true。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Boolean |
Is Command Receiver Ready
Section titled “Is Command Receiver Ready”Is Command Receiver ReadyTarget is uBot ROS Command ReceiverTargetReturn Value
已订阅时为 true,与桥是否连上无关。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Boolean |
Restart Command Receiver
Section titled “Restart Command Receiver”Restart Command ReceiverTarget is uBot ROS Command ReceiverTargetReturn Value
取消订阅后用当前设置重新订阅,超时计时继续。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Return Value | 输出 | Boolean |
Set Target Component
Section titled “Set Target Component”Set Target ComponentTarget is uBot ROS Command ReceiverTargetNew Target
用一个组件直接替换 Target Component;传空则恢复在所属 Actor 上自动查找。
| 引脚 | 方向 | 类型 |
|---|---|---|
| New Target | 输入 | Actor Component对象引用 |
Stop Command Receiver
Section titled “Stop Command Receiver”Stop Command ReceiverTarget is uBot ROS Command ReceiverTarget
取消订阅;已经生效的指令仍然按时超时。
在 Components 面板选中组件,在 Details 面板底部 Events 区点事件旁的 + 即可生成事件节点。
On Command Error
Section titled “On Command Error”On Command ErrorError Message
订阅失败、消息畸形或无效、目标不可用或拒绝了指令时触发。
| 引脚 | 方向 | 类型 |
|---|---|---|
| Error Message | 输出 | String |
On Command Timeout
Section titled “On Command Timeout”On Command Timeout
每次超时触发一次,在目标(如果有)被释放之后。
未特别标注的属性:蓝图里只读,Details 面板里可以编辑。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Auto Start ReceiverbAutoStartReceiver · uBot|ROS|Command | Boolean | true | Begin Play 时订阅;关闭后调用 Restart Command Receiver 开始接收。 |
Robot Namespace OverrideRobotNamespaceOverride · uBot|ROS|Command|Identity | String | "" | 留空时用 uBot Identity 解析出的命名空间(没有 Identity 组件则用净化后的 Actor 名)。前后的 / 被忽略,每一段都会被净化;只含 / 表示根命名空间。 |
Command Timeout SecondsCommandTimeoutSeconds · uBot|ROS|Command|Safety | Float | 0.5 | 超过这么多仿真秒没有新指令,就释放目标;0 关闭超时。最小 0.0;单位 s |
Target ComponentTargetComponent · uBot|ROS|Command|Target | Component Reference结构体 | () | 接收指令的组件,必须实现该子类对应的接口。留空时用所属 Actor,或它第一个实现该接口的组件;只设了 Referenced Actor 时,在那个 Actor 上同样查找。 |
Command Topic OverrideCommandTopicOverride · uBot|ROS|Command|Topic | String | "" | 非空时替代 /<namespace>/<末段名>,缺少前导 / 会补上。 |