最新消息:

ROS与navigation教程-rotate_recovery

ROS1/一代机器人系统 少儿编程 1995浏览 0评论
ROS与navigation教程

ROS与navigation教程-rotate_recovery

说明:

  • 介绍了rotate_recovery的概念及其相关知识。

代码库

  • 参考链接:https://github.com/ros-planning/navigation

概要

  • 该包给导航功能包提供了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。

参考资料

  • http://wiki.ros.org/rotate_recovery

  • http://blog.csdn.net/x_r_su/article/details/53405850

您必须 登录 才能发表评论!