Ubuntu16.04LTS 下ros(kinetic)的arduino应用(五)
来源:互联网 发布:mastercam三维编程步骤 编辑:程序博客网 时间:2024/05/22 10:33
Ubuntu 16.04下arduino示例ros_lib例程TimeTF
介绍:
- 该文主要讲述如何使用ros::Time和TF在Arduino上创建tf publisher
- 使用历程为应用(一)中Arduino IDE 文件->示例->ros_lib->TimeTF
示例中的代码如下:
/* * rosserial Time and TF Example * Publishes a transform at current time */#include <ros.h> //包含了标准ROS类的声明#include <ros/time.h> //包含ros库中的时间库文件#include <tf/transform_broadcaster.h> //包含transform broadcaster头文件ros::NodeHandle nh; /*(节点句柄)对象是你的程序用于和ROS系统交互的主要机制。创建此对象会将你的程序注册为ROS节点管理器的节点。最简单的方法就是在整个程序中只创建一个NodeHandle对象*/geometry_msgs::TransformStamped t; //实例化TransformStamped消息类tf::TransformBroadcaster broadcaster; //实例化broadcaster类char base_link[] = "/base_link"; //定义字符型数组,指定需要进行转换的参考系名称/base_link/odomchar odom[] = "/odom"; //定义字符型数组,指定需要进行转换的参考系名称/odomvoid setup() /*Arduino的Setup函数,用于初始化ROS节点处理,初始化节点处理类,初始化broadcaster类,使用节点处理类作为参数*/{ nh.initNode(); broadcaster.init(nh);}void loop() /*在Arduino的loop函数,转化相关参数,并调用nh.spinOnce(),这样所有的ROS回调函数就会被处理*/{ //设置不同参考系的名称,及转换的值内容 t.header.frame_id = odom; t.child_frame_id = base_link; t.transform.translation.x = 1.0; t.transform.rotation.x = 0.0; t.transform.rotation.y = 0.0; t.transform.rotation.z = 0.0; t.transform.rotation.w = 1.0; t.header.stamp = nh.now(); /*调用nh.now(),返回当前的时间。作为ros::Time 的实例,就像使用 roscpp's ros::Time::now().**/ /*发布转换,调用spinOnce之后,需要等待一会,在循环。*/ /*转换都是按正常速率发布*/ /*数据字段将从实际数据中填充*/ broadcaster.sendTransform(t); nh.spinOnce(); delay(10);}
代码下载:
- 将arduino开发板通过串口与电脑连接,点击Arduino IDE 文件->下载
运行代码:
1.打开终端,输入如下:
$ roscore
2.打开另一个终端,输入如下:
$ rosrun rosserial_python serial_node.py /dev/ttyACM0
或
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
3.打开另一个终端,输入如下代码,检查是否成功:
$ rosrun tf tf_echo odom base_link
或
$ rosrun tf view_frames
上述内容为本人参考下方链接并结合自身操作所遇问题,对前者进行了相关补充,由于编者水平有限,如有错误,还请指出。
参考链接:> http://wiki.ros.org/rosserial_arduino/Tutorials/Time%20and%20TF
阅读全文
0 0
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(五)
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(一)
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(二)
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(三)
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(四)
- Ubuntu16.04 LTS 安装 ros kinetic
- Ubuntu16.04--ROS--kinetic
- Ubuntu16.04安装ROS kinetic
- Ubuntu16.04安装ROS Kinetic
- ROS配置<一>:Ubuntu16.04下安装Kinetic
- Nvidia TX1安装 Ubuntu16.04LTS+ROS Kinetic版本+turtlebot 完整篇
- Ubuntu16.04 ROS kinetic 版本的rivz教程
- SLAM: Ubuntu16.04安装ROS-kinetic
- opencv2.4.13+ros kinetic +ubuntu16.04+iai_kinect2
- ROS Kinetic系统在ubuntu16.04配置
- ubuntu16.04 ROS-kinetic环境搭建
- Ubuntu16.04中安装ROS Kinetic
- ubuntu16.10上的ROS Kinetic和ubuntu14.04上的ROS Jade的通讯设置
- 数据结构----二叉树(交换子树)
- js面向对象编程:如何定义常量?
- java动态代理原理解析
- oracle存储函数
- textView相关知识
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(五)
- 有儿子之后
- 转载一篇MTK平台Camera(OV13850)驱动移植说明
- 第十三周-Java集合框架Map
- rpm的查看安装的应用以及查看mysql的安装状态
- pio中关于excel单元问题
- RN工程修改完依赖 即修改了package.json文件 如何重新安装依赖
- arcgis发布服务显示打包成功,发布失败,无法写入D:\arcgisserver\directories\arcgiscache
- Android使用highcharts实现可左右滑动的折线图