zoukankan      html  css  js  c++  java
  • ROS Learning-018 Arduino-For-ROS-003 (总结篇) 模板程序 即 如何运行

    Arduino For ROS-003 — (总结篇) 模板程序 即 如何运行

    我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位
    Arduino的版本:Arduino 1.6.11 Linux 32位
    Arduino 板子的型号:Arduino UNO R3
    使用 的ROS版本:ROS Indigo


    如果你还没有搭建ROSArduino之间的连接关系的话, 请参考 这篇博客:搭建 ROS 和 Arduino 相连接的开发环境 ,进行搭建。


    一. 下面,我来总结一下:如何写 Arduino For ROS 的程序

    下面的步骤,就是编写 Arduino For ROS 程序的模板,即大概步骤。

    1 . 下面的头文件必须要有:

    #include <ros.h>

    2 . 并定义一个 ROS Node Handle

    ros::NodeHandle nh;

    3 . 同时添加你需要发布( 或订阅 )的话题中消息类型 头文件:e.g.

    #include <std_msgs/String.h>
    #include <tf/transform_broadcaster.h>
    #include <rosserial_arduino/Adc.h>

    4 . 同时定义相关消息变量

    std_msgs::String str_msg;
    tf::TransformBroadcaster  broadvaster;
    rosserial_arduino::Adc adc_msg;

    5 . 定义发布器

    ros::Publisher chatter(“chatter”, &str_msg); 

    6 . 定义订阅器编写回调函数

    void servo_cb(const std_msgs::Uint16& cmd_msg){
        //自定义
    }
    ros::Subscriber<std_msgs::Uint16> sub(“servo”, servo_cb); 

    7 . 在setup()函数中初始化ROS Node Handle,并给它添加你定义的发布器:

    void setup(){
        nh.initNode();
        nh.advertise(chatter);
    } 

    8 . 在 loop() 函数中, 更新数据:

    void loop(){
        char hello[13] = “hello world!”;  //获取数据
        str_msg.data = hello;
        chatter.publish(&str_msg);
        nh.spinOnce();
    }

    二. 如果运行 Arduino For ROS 的程序:

    运行,一共是两大步:

    第一步:

    将程序烧写到 Arduino 板子上。请参考这篇博客:Ubuntu/Linux 系统下,如何给Arduino板子烧写程序

    第二步:

    在 电脑上, 分别开3个终端,执行下面的命令:

    1 . 启动 ros 主程序节点:

    roscore

    2 . 启动 ros 串口监视节点:

    rosrun rosserial_python serial_node.py /dev/ttyACM0  # 这个 /dev/ttyACM0 端口根据你的事情情况进行修改
    # rosrun rosserial_python serial_node.py [端口名]

    3 . 这个命令就要根据你程序的情况而定了。比如对于 上一篇博客 来说,这个命令就是: 监听 /chatter 话题:

    rostopic echo /chatter

    搞定

  • 相关阅读:
    [SDOI2011]消防
    10.15 上午 考试
    松鼠搬家 ( 切比雪夫距离 到 曼哈顿距离 )
    10.14 上午 考试
    10.13 下午
    bzoj2640 元素 线性基+贪心
    猪国杀 大模拟
    10.13 上午 考试
    10.12 两次考试
    阿狸和桃子的游戏
  • 原文地址:https://www.cnblogs.com/aobosir/p/5928565.html
Copyright © 2011-2022 走看看