ROS2极简总结专题,其实主要是概念的讲解为主,不涉及程序等,之前没有更新完成,此时继续。参考文献:
导航首先需要目标,然后计算出到达目标所需要的路径,将路径解算为机器人的速度和角度控制量并驱动机器人行驶到目标位置(合理误差范围内)。
依据官方教程Nav2结构如下所示:
BT如果展开又是厚厚一本书啊……
使用行为树 XML 作为导航控制流
具体参考源码和官方文档。
此处给出全局坐标为:map地图,机器人坐标:base_link,里程计等……
配置简洁方便。
行为树是决策和执行流程的表示。
节点类型:
机器人进入房间流程包括:SequenceNode、DecoratorNodes、ConditionNode
房门是否打开,打开房门,进入房间,关闭房门。
回退包括:FallbackNode、SequenceNode、ConditionNodes
示例:使用具备恢复功能的导航
更多示例参考源码。
turtlebot3-burger配置参数:
bt_navigator:
ros__parameters:
use_sim_time: False
global_frame: map
robot_base_frame: base_link
odom_topic: /odom
default_bt_xml_filename: "navigate_w_replanning_and_recovery.xml"
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_follow_path_action_bt_node
- nav2_back_up_action_bt_node
- nav2_spin_action_bt_node
- nav2_wait_action_bt_node
- nav2_clear_costmap_service_bt_node
- nav2_is_stuck_condition_bt_node
- nav2_goal_reached_condition_bt_node
- nav2_goal_updated_condition_bt_node
- nav2_initial_pose_received_condition_bt_node
- nav2_reinitialize_global_localization_service_bt_node
- nav2_rate_controller_bt_node
- nav2_distance_controller_bt_node
- nav2_speed_controller_bt_node
- nav2_recovery_node_bt_node
- nav2_pipeline_sequence_bt_node
- nav2_round_robin_node_bt_node
- nav2_transform_available_condition_bt_node
- nav2_time_expired_condition_bt_node
- nav2_distance_traveled_condition_bt_node
bt_navigator_rclcpp_node:
ros__parameters:
use_sim_time: False