zoukankan      html  css  js  c++  java
  • Ros使用Arduino 2 使用rosserial创建一个publisher

    1 启动arduino

    将arduino开发板连接到电脑的usb口,在arduino IDE中进行设置。

    选择Tools->Board,选择你所使用的arduino开发板的类型,所使用的arduino开发板是arduino pro min。

    设置好开发板之后,继续选择Tools->Serial Port->/dev/ttyUSB1。

    2 打开ROS例程

    设置完成以后,在arduino IDE中,选择File->Examples->ros_lib->HelloWorld,就打开了如下的代码:

    /*
     * rosserial Publisher Example
     * Prints "hello world!"
     */
    //包含ros.h和其它可能会用到的消息的头文件。
    #include <ros.h>
    #include <std_msgs/String.h>
    
    //创建了一个节点的句柄,它允许我们用来创建发布者和订阅者。这个节点的句柄同样与串口通信有关。 ros::NodeHandle nh;
    //我们需要创建一个将要使用的发布者和订阅者。在上面的两行代码中,我们在话题chatter上创建了一个发布者。第二个参数是被发布者将来用于发布消息的一个消息的引用。 std_msgs::String str_msg; ros::Publisher chatter("chatter", &str_msg); char hello[13] = "hello world!";
    //始化节点句柄,告知那些话题将会有发布,以及订阅你想收听的话题。   void setup() {
    nh.initNode(); nh.advertise(chatter); }
    //最后在loop函数中,节点在chatter话题上发布了消息“hello world”,并且调用了ros::spinOnce(),也就是说所有ROS通信的回调都被处理。 void loop() { str_msg.data = hello; chatter.publish( &str_msg ); nh.spinOnce(); delay(1000); }

     在arduino IDE中,点击upload运行程序。

    运行ROS节点

    打开一个窗口

    roscore
    

    新打开一个窗口

    rosrun rosserial_python serial_node.py /dev/ttyUSB1
    

    在一个终端中输入如下命令来查看你的arduino发送的消息:

    rostopic echo chatter

     你可看到arduino的数据通信灯在闪,这可以说明arduino确实在发送数据给电脑。

  • 相关阅读:
    *洛谷P1858 多人背包
    ZOJ3469 Food Delivery
    Hdu5115 Dire Wolf
    Codevs 2765 隐形的翅膀
    Hdu4055 Number String
    Codevs 1300 文件排版
    洛谷 P1412 经营与开发
    Codevs 4357 不等数列
    codevs 3333 高级打字机
    Bzoj 1086: [SCOI2005]王室联邦
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/7399197.html
Copyright © 2011-2022 走看看