ROS与navigation教程-rotate_recovery
ROS与navigation教程-rotate_recovery
说明:
- 介绍了rotate_recovery的概念及其相关知识。
代码库
概要
该包给导航功能包提供了rotate_recovery::RotateRecovery修复机制,它尝试让机器人执行360度旋转来完成清理导航功能包里的代价地图的空间。
同时rotate_recovery::RotateRecovery继承了nav_core::RecoveryBehavior接口,并以插件方式用于move_base node。
RotateRecovery
rotate_recovery::RotateRecovery将功能以 C++ ROS Wrapper导出,在初始化时指定的ROS命名空间中使用。
以下是创建rotate_recovery::RotateRecovery对象的示例:
#include <tf/transform_listener.h>
#include <costmap_2d/costmap_2d_ros.h>
#include <rotate_recovery/rotate_recovery.h>
...
tf::TransformListener tf(ros::Duration(10));
costmap_2d::Costmap2DROS global_costmap("global_costmap", tf);
costmap_2d::Costmap2DROS local_costmap("local_costmap", tf);
rotate_recovery::RotateRecovery rr;
rr.initialize("my_rotate_recovery", &tf, &global_costmap, &local_costmap);
rr.runBehavior();
( 1 ) API Stability
C++ API 是稳定的。
ROS API 是稳定的。
( 2 ) ROS Parameters
rotate_recovery::RotateRecovery对象假定move_base node使用的局部路径规划器是base_local_planner::TrajectoryPlannerROS,并相应地读取其中的一些参数。
其将会独立工作,同时需要用户指定其他参数。
( 2.1 ) RotateRecovery Parameters
~<name>/sim_granularity (double, default: 0.017)
在检查原地旋转是否安全时,检查机器人与障碍物之间的距离,单位为 radians 。
默认为1度。
~<name>/frequency (double, default: 20.0)
- 向移动基座发送速度命令的频率,单位为 HZ 。
( 2.2 ) TrajectoryPlannerROS Parameters
当使用base_local_planner :: TrajectoryPlannerROSjubu局部路径规划器时,这些参数已经设置好的。
只有当导航功能包集中的其它局部规划器被rotate_recovery::RotateRecovery使用时才有必要设置这些参数。
~TrajectoryPlannerROS/yaw_goal_tolerance (double, default: 0.05)
- The tolerance in radians for the controller in yaw/rotation when achieving its goal.
~TrajectoryPlannerROS/acc_lim_th (double, default: 3.2)
- 机器人的角速度极限,单位为 radians/sec^2 。
~TrajectoryPlannerROS/max_rotational_vel (double, default: 1.0)
- 移动基座允许的最大角速度,单位为 radians/sec 。
~TrajectoryPlannerROS/min_in_place_rotational_vel (double, default: 0.4)
- 移动基座在执行原地旋转时的最小角速度,单位为 radians/sec 。
( 3 ) C++ API
C ++ rotate_recovery :: RotateRecovery类继承nav_core包中的nav_core :: RecoveryBehavior接口。
详细资料请参阅RotateRecovery documentation。
参考资料
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号