概述
实物机器人发布odom到baselink的tf变换
摘要:
ros navigation stack的输入默认是amcl定位,该定位包做好了map->odom->base_link的变换的,当需要替换为其他定位方式或定位包时就不一定有这个转换了。本文主要介绍如何提供定位包需要订阅的odom->base_link的变换。
参考
官方资料:链接1
翻译资料:链接2
真实机器人的tf变换
ros官方有个教程,该教程假设了机器人走一个圆。基础可以参考上方链接。本文之展示如何通过轮速里程计来开发,尤其是轮速来获取速度和位置。
int leftSpeedTick = encoderMsg->leftTick;
int rightSpeedTick = encoderMsg->rightTick;
double leftRpm = (double)leftSpeedTick * 60.0 / 65536.0 / wheelRate_;
double rightRpm = (double)rightSpeedTick * 60.0 / 65536.0 / wheelRate_;
double vx = rpm_to_liner_vel_x(leftRpm,rightRpm);
double vth = rpm_to_liner_vel_th(leftRpm,rightRpm);
current_time = ros::Time::now();
//compute odometry in a typical way given the velocities of the robot
double dt = (current_time - last_time).toSec();
double delta_x = (vx * cos(th)) * dt;
double delta_y = (vx * sin(th)) * dt;
double delta_th = vth * dt;
x += delta_x;
y += delta_y;
th += delta_th;
最后
以上就是甜蜜发卡为你收集整理的实物机器人发布odom到baselink的tf变换的全部内容,希望文章能够帮你解决实物机器人发布odom到baselink的tf变换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复