无网不进  
软硬件开发

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();
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

代码很简单,主要的代码是设置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的代码,可以直接参考官方文档。

版权声明:本文为博主原创文章,未经博主允许不得转载。
posted on 2018-01-11 09:36  无网不进  阅读(188)  评论(0)    收藏  举报