我是靠谱客的博主 甜蜜发卡,这篇文章主要介绍实物机器人发布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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部