OdometryHelperRos类阅读

本文深入探讨OdometryHelperRos类在base_local_planner中的角色,该类从/odom主题提取机器人速度状态,包括线速度和角速度,并进行数据类型转换,以供局部规划器使用。
#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中的位置信息仅是使用了它的速度信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值