赞
踩
插值函数原型链接如下:
ros::tf中的插值函数
验证代码如下:
#include <ros/ros.h> #include <geometry_msgs/PointStamped.h> #include <tf/transform_listener.h> int main(int argc, char** argv){ while(1) { float ratio; tf::Vector3 data_begin(0,0,0); tf::Vector3 data_end(2,3,4); tf::Vector3 data_lerp; ROS_INFO("data_begin.x = %f data_begin.y = %f data_begin.z = %f",data_begin.x(),data_begin.y(),data_begin.z()); ROS_INFO("data_end.x = %f data_end.y = %f data_end.z = %f",data_end.x(),data_end.y(),data_end.z()); ratio = 0; data_lerp = data_begin.lerp(data_end,ratio); ROS_INFO("ratio = %f ",ratio); ROS_INFO("data_lerp.x = %f data_lerp.y = %f data_lerp.z = %f",data_lerp.x(),data_lerp.y(),data_lerp.z()); ratio = 0.3; data_lerp = data_begin.lerp(data_end,ratio); ROS_INFO("ratio = %f ",ratio); ROS_INFO("data_lerp.x = %f data_lerp.y = %f data_lerp.z = %f",data_lerp.x(),data_lerp.y(),data_lerp.z()); ratio = 0.5; data_lerp = data_begin.lerp(data_end,ratio); ROS_INFO("ratio = %f ",ratio); ROS_INFO("data_lerp.x = %f data_lerp.y = %f data_lerp.z = %f",data_lerp.x(),data_lerp.y(),data_lerp.z()); ratio = 0.7; data_lerp = data_begin.lerp(data_end,ratio); ROS_INFO("ratio = %f ",ratio); ROS_INFO("data_lerp.x = %f data_lerp.y = %f data_lerp.z = %f",data_lerp.x(),data_lerp.y(),data_lerp.z()); ratio = 1; data_lerp = data_begin.lerp(data_end,ratio); ROS_INFO("ratio = %f ",ratio); ROS_INFO("data_lerp.x = %f data_lerp.y = %f data_lerp.z = %f",data_lerp.x(),data_lerp.y(),data_lerp.z()); } }
运行结果如下:
另外tf还支持四元数球形插值:
函数原型链接如下:
四元数球形插值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。