zoukankan      html  css  js  c++  java
  • ROS与Arduino学习(二)HelloWorld

    ROS与Arduino学习(二)HelloWorld

    Tutorial Level:准备工作

    Next Tutorial:订阅与发布

     

    本节我们开始解读第一个历程,HelloWorld往是每一个编程者使用一个新的编译环境的第一个程序,意味着睁眼看世界。

    代码如下:

    /*
     * rosserial Publisher Example
     * Prints "hello world!"
     */
    
    #include <ros.h>
    #include <std_msgs/String.h>
    
    ros::NodeHandle  nh;
    
    std_msgs::String str_msg;
    ros::Publisher chatter("chatter", &str_msg);
    
    char hello[13] = "hello world!";
    
    void setup()
    {
      nh.initNode();
      nh.advertise(chatter);
    }
    
    void loop()
    {
      str_msg.data = hello;
      chatter.publish( &str_msg );
      nh.spinOnce();
      delay(1000);
    }
    

    Tips 1 头文件

    两个头文件,一个是ros.h头文件。这个是必需的。另一个是std_msgs/String.h头文件,是消息程序包。用于节点之间发送消息功能。

    Tips 2 声明

    1句柄

    ros::NodeHandle  nh;
    

     生成节点句柄

    2话题

    ros::Publisher chatter("chatter", &str_msg);

     发布一个话题,名字叫做chatter,消息内容

    3消息对象

    std_msgs::String str_msg;
    

     声明一个消息对象str_msg。其参数为data内容为消息内容。

    Tips 3 发布消息

     chatter.publish( &str_msg );
    

     发布一个消息   话题.publish(&消息)

    接下来要运行程序,和我们windows中操作一致,用串口就可以下载。下载进去我们做一个简单的测试,用我们的PC看一下这个话题的消息。

    1. 运行roscore
    $ roscore
    
    1. 新终端运行,/dev/ttyUSB0为Arduino设备
    rosrun rosserial_python serial_node.py /dev/ttyUSB0
    

    rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0
    
    1. 显示主题chatter,获取Arduino板反馈的信息
    rostopic echo chatter

    在此可能会遇到一些问题。参考下面处理

    /dev/ttyUSB0 permission denied


  • 相关阅读:
    微信开发之注册公众号(二)
    我开通个人博客了~~~~
    微信开发之启用开发者模式(三)
    float浮动属性
    数组的定义与特点
    块级元素和行内元素
    对于if判断和switch选择的入门理解
    Form表单
    不知名的作业
    自我介绍
  • 原文地址:https://www.cnblogs.com/flyingjun/p/8932100.html
Copyright © 2011-2022 走看看