更多创客作品,请关注笔者网站园丁鸟,搜集全球极具创意,且有价值的创客作品
ROS中所有的零件都可以设定他的tf坐标数据,机器人在移动的时候会把这些点作为判断的数据,也是后面配置导航所必须的数据,具体的tf的概念,请学习官方文档http://wiki.ros.org/tf/Tutorials#Learning_tf,这里介绍diego中的代码
#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
int main(int argc, char** argv){
ros::init(argc, argv, "robot_camera_tf_publisher");
ros::NodeHandle n;
ros::Rate r(10);
tf::TransformBroadcaster broadcaster;
while(n.ok()){
broadcaster.sendTransform(
tf::StampedTransform(
tf::Transform(tf::Quaternion(0, 0, 0, 1), tf::Vector3(0.12, 0.0, 0.1)),
ros::Time::now(),"base_link", "camera_link"));
r.sleep();
}
}
代码很简单,主要的代码是设置Vector3(0.12, 0.0, 0.1))中的x,y,z参数,x代表传感器距离base_link的x轴距离,y代表传感器距离base_link的y轴距离,z代表传感器距离base_link的z轴距离,单位是m,可以按照自己机器人的实际情况来设置,其他的代码都是基本的ROS发布topic的代码,可以直接参考官方文档。