OdometryHelperRos類閱讀

#include <base_local_planner/odometry_helper_ros.h>

首先看其頭文件,可以知道OdometryHelperRos類是base_local_planner局部規劃器裏起輔助功能的一個類,主要作用就是從/odom的topic中獲取機器人的速度狀態(包括線速度(x,y),和角速度z)

TrajectoryPlannerROS局部規劃器初始化的時候便調用這個類初始化/odom topic

 TrajectoryPlannerROS::TrajectoryPlannerROS() :
      world_model_(NULL), tc_(NULL), costmap_ros_(NULL), tf_(NULL), 
      setup_(false), initialized_(false), odom_helper_("odom") {}

1. OdometryHelperRos ( std::string odom_topic = “” )

在這裏插入圖片描述
OdometryHelperRos()在初始化的時候,新建了NodeHandle並設置關注的topic的名稱odom_topic;
並在回調函數odomCallback()中, 取出速度信息

  base_odom_.twist.twist.linear.x = msg->twist.twist.linear.x;
  base_odom_.twist.twist.linear.y = msg->twist.twist.linear.y;
  base_odom_.twist.twist.angular.z = msg->twist.twist.angular.z;
  base_odom_.child_frame_id = msg->child_frame_id;

2. getRobotVel(tf::Stamped < tf::Pose>& robot_vel)

在這裏插入圖片描述

getRobotVel()函數更像是一個數據類型轉換的工具,將速度信息從nav_msgs::Odometry轉換到tf::Stamped< tf::Pose>中, 然後供外部調用.上圖便是一個它的一個被調用圖.

3. getOdom( nav_msgs::Odometry & base_odom )

在這裏插入圖片描述
getOdom()則將odom的速度信息以nav_msgs::Odometry格式傳遞出去;

總之, base_local_planner並沒有使用/odom中的位置信息僅是使用了它的速度信息.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章