Ubuntu16.04LTS 下ros(kinetic)的arduino应用(三)
来源:互联网 发布:男生冬季服装搭配知乎 编辑:程序博客网 时间:2024/05/22 05:30
Ubuntu 16.04下arduino示例ros_lib例程Blink
介绍:
- 该文主要讲述如何通过rosserial创建subscribers(订阅者),点亮Arduino开发板上的LED
- 使用例程为应用(一)中Arduino IDE 文件->示例->ros_lib->Blink
示例中的代码如下:
/* * rosserial Subscriber Example * Blinks an LED on callback */#include <ros.h> //包含了标准ROS类的声明#include <std_msgs/Empty.h> //包含消息头文件ros::NodeHandle nh; /*(节点句柄)对象是你的程序用于和ROS系统交互的主要机制。创建此对象会将你的程序注册为ROS节点管理器的节点。最简单的方法就是在整个程序中只创建一个NodeHandle对象*/void messageCb( const std_msgs::Empty& toggle_msg) /*定义回调函数messageCb,且形式参数为常量消息引用值,消息类型是std_msgs::Empty,消息名称是toggle_msg*/{ digitalWrite(13, HIGH-digitalRead(13)); // blink the led}ros::Subscriber<std_msgs::Empty> sub("toggle_led", &messageCb );/*实例化一个订阅,且含有两个参数,主题名toggle_led与回调函数,且主题类型为std_msgs::Empty*/void setup() //Arduino的Setup函数,用于初始化ROS节点处理,并宣告所有的发布或订阅{ pinMode(13, OUTPUT); nh.initNode(); nh.subscribe(sub);}void loop() //在Arduino的loop函数,定义发布的内容,并调用nh.spinOnce(),这样所有的ROS回调函数就会被处理。{ nh.spinOnce(); delay(1);}
代码下载:
- 将arduino开发板通过串口与电脑连接,点击Arduino IDE 文件->下载
运行代码:
1.打开终端,输入如下:
$ roscore
2.打开另一个终端,输入如下:
$ rosrun rosserial_python serial_node.py /dev/ttyACM0
或
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
3.3.打开另一个终端,输入如下代码,发布主题toggle_led,点亮Arduino板上的LED灯
$ rostopic pub toggle_led std_msgs/Empty --once
或
rostopic pub -r 1 /toggle_led std_msgs/Empty
- PS:其中rostopic pub为ros的发布命令。
- rostopic pub -r rate-in-hz topic-name message-type message-content
其中-r rate-in-hz 可以用 -1代替表示发送一次
上述内容为本人参考下方链接并结合自身操作所遇问题,对前者进行了相关补充,由于编者水平有限,如有错误,还请指出。
参考链接:> http://www.ncnynl.com/archives/201610/920.html
阅读全文
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的通讯设置
- php代码,做跳转用的好久没写了,记录一个
- RK3288 编译环境搭建
- hdu 4677 并查集+分块算法 好题 (2013多校联合)
- 银行排队叫号系统
- Redis的监控功能
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(三)
- Dubbo动态改变端口配置
- 编程思想之多线程与多进程(3)——Java中的多线程
- 机器学习和深度学习面试题
- 数据结构 -- 双向链表 linkedList 手写
- c语言第三次练习题
- CSS3-转换之perspective
- VS2010下使用QT环境配置
- 好文