Behavior Server
源代码在 Github.
行为服务器实现了处理各种行为的服务器,例如恢复和对接、请求以及托管实现各种 C++ 行为的插件向量。 也可以为每个自定义行为实现独立的行为服务器,但此服务器将允许多个行为共享资源,例如成本图和 TF 缓冲区,以降低新行为的增量成本。
注意:等待恢复行为没有参数,等待时间在操作请求中给出。 注意:在 Rolling/Humble 之前,这是恢复服务器,而不是行为服务器。启动文件、行为和测试都已重命名。
行为服务器参数
- local_costmap_topic:
Type
Default
string
“local_costmap/costmap_raw”
- Description
用于在本地代价地图上进行碰撞检查的原始代价地图主题。
- global_costmap_topic:
Type
Default
string
“global_costmap/costmap_raw”
- Description
用于在全局代价地图上进行碰撞检查的原始代价地图主题。
- local_footprint_topic:
Type
Default
string
“local_costmap/published_footprint”
- Description
本地代价地图框架中的足迹主题。
- global_footprint_topic:
Type
Default
string
“global_costmap/published_footprint”
- Description
全球代价地图框架中的足迹主题。
- cycle_frequency:
Type
Default
double
10.0
- Description
运行行为插件的频率。
- action_server_result_timeout:
Type
Default
Unit
double
10.0
seconds
- Description
如果未产生结果,则操作服务器丢弃目标句柄的超时值(以秒为单位)。这在 rcl 中默认为 15 分钟,但在此 PR #1012 中更改为 10 秒,这可能小于 Nav2 中某些操作的运行时间。对于大多数应用程序,只要服务器内的操作不超过此期限,就不需要调整。 此问题已向 OSRF 提出,以寻找另一种解决方案来避免记账时出现活动目标超时,因此这是一个半临时的解决方法
- transform_tolerance:
Type
Default
double
0.1
- Description
TF 变换容差。
- local_frame:
Type
Default
string
“odom”
- Description
局部参考框架。
- global_frame:
Type
Default
string
“map”
- Description
全球参考框架。
- robot_base_frame:
Type
Default
string
“base_link”
- Description
机器人底座框架。
- behavior_plugins:
Type
Default
vector<string>
{“spin”, “back_up”, “drive_on_heading”, “wait”}
- Description
要使用的插件名称列表,也匹配动作服务器名称。
- Note
此列表中定义的每个插件命名空间都需要有一个:code:plugin 参数来定义要在命名空间中加载的插件类型。
Example:
behavior_server: ros__parameters: behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"] spin: plugin: "nav2_behaviors::Spin" # In Iron and older versions, "/" was used instead of "::" backup: plugin: "nav2_behaviors::BackUp" # In Iron and older versions, "/" was used instead of "::" drive_on_heading: plugin: "nav2_behaviors::DriveOnHeading" # In Iron and older versions, "/" was used instead of "::" wait: plugin: "nav2_behaviors::Wait" # In Iron and older versions, "/" was used instead of "::"
Default Plugins
Note
在 Iron 和更早的版本中,使用“/”代替“::”。
当未覆盖:code:behavior_plugins 参数时,将加载以下默认插件:
Namespace
Plugin
“spin”
“nav2_behaviors::Spin”
“backup”
“nav2_behaviors::BackUp”
“drive_on_heading”
“nav2_behaviors::DriveOnHeading”
“wait”
“nav2_behaviors::Wait”
自旋行为参数
旋转距离由动作请求给出
:提前模拟:
Type
Default
double
2.0
- Description
是时候展望碰撞了。
:最大旋转速度:
Type
Default
double
1.0
- Description
最大旋转速度(弧度/秒)。
- min_rotational_vel:
Type
Default
double
0.4
- Description
最小旋转速度(弧度/秒)。
- rotational_acc_lim:
Type
Default
double
3.2
- Description
最大旋转加速度(rad/s^2)。
- enable_stamped_cmd_vel:
Type
Default
bool
false
- Description
是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。
备份行为参数
备份距离、速度和时间余量由行动请求给出。
- simulate_ahead_time:
Type
Default
double
2.0
- Description
是时候展望碰撞了。
- enable_stamped_cmd_vel:
Type
Default
bool
false
- Description
是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。
DriveOnHeading Behavior Parameters
DriveOnHeading 距离、速度和 time_allowance 由动作请求给出。
- simulate_ahead_time:
Type
Default
double
2.0
- Description
是时候展望碰撞了。
- enable_stamped_cmd_vel:
Type
Default
bool
false
- Description
是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。
- bond_heartbeat_period:
Type
Default
double
0.1
- Description
生命周期节点债券机制发布周期(在 /bond 主题上)。如果小于或等于 0.0,则禁用。
AssistedTeleop 行为参数
AssistedTeleop time_allowance 在操作请求中给出
- projection_time:
Type
Default
double
1.0
- Description
是时候展望碰撞了。
- simulation_time_step:
Type
Default
double
0.1
- Description
投影的时间步长(s)。
- cmd_vel_teleop:
Type
Default
string
cmd_vel_teleop
- Description
监听远程操作消息的主题。
- enable_stamped_cmd_vel:
Type
Default
bool
false
- Description
是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。
Example
behavior_server:
ros__parameters:
local_costmap_topic: local_costmap/costmap_raw
local_footprint_topic: local_costmap/published_footprint
global_costmap_topic: global_costmap/costmap_raw
global_footprint_topic: global_costmap/published_footprint
cycle_frequency: 10.0
behavior_plugins: ["spin", "backup", "drive_on_heading", "wait", "assisted_teleop"]
spin:
plugin: "nav2_behaviors::Spin" # In Iron and older versions, "/" was used instead of "::"
backup:
plugin: "nav2_behaviors::BackUp" # In Iron and older versions, "/" was used instead of "::"
drive_on_heading:
plugin: "nav2_behaviors::DriveOnHeading" # In Iron and older versions, "/" was used instead of "::"
wait:
plugin: "nav2_behaviors::Wait" # In Iron and older versions, "/" was used instead of "::"
assisted_teleop:
plugin: "nav2_behaviors::AssistedTeleop" # In Iron and older versions, "/" was used instead of "::"
local_frame: odom
global_frame: map
robot_base_frame: base_link
transform_timeout: 0.1
simulate_ahead_time: 2.0
max_rotational_vel: 1.0
min_rotational_vel: 0.4
rotational_acc_lim: 3.2
enable_stamped_cmd_vel: false