我是靠谱客的博主 甜蜜发卡,最近开发中收集的这篇文章主要介绍实物机器人发布odom到baselink的tf变换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实物机器人发布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变换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部