zoukankan      html  css  js  c++  java
  • openCR-用ROS代码获取电压的方法

    //头文件 ros/ros.h 包含了标准 ROS 类的声明,你将会在每一个你写的 ROS 程序中包含它。
    #include <ros.h>
    //std_msgs中已经包含了所有的基本数据类型,此例子中用到了Float32类型
    #include <std_msgs/Float32.h>
    
    //在创建时,如果一个内部节点没有被启动,节点句柄将启动该节点.
    //一旦所有的节点句柄实例被销毁,那么节点将被自动关闭
    ros::NodeHandle nh;
    //定义一个相应数据类型的对象:电压值
    std_msgs::Float32 voltage_msg;
    //指明发布的数据类型,话题和缓存队列大小
    //声明发布者,话题名 = voltage
    ros::Publisher pub_voltage("voltage", &voltage_msg);
    
    
    void setup()
    {
      nh.initNode();
      nh.advertise(pub_voltage);
    }
    
    void loop()
    {
    //静态局部变量如果没有被用户初始化,则会被编译器自动赋值为0,
    //以后每次调用静态局部变量的时候都用上次调用后的值。
      static uint32_t pre_time;
    
    //millis()函数会返回一个值,该值代表当前cpu的时间
    //可以用来定时,这样可以不用占用cpu时间
      if (millis()-pre_time >= 50)
      {
    //将获取到的电压值赋值给data
        voltage_msg.data = getPowerInVoltage();
        pub_voltage.publish(&voltage_msg);
        pre_time = millis();
      }
    //loop函数中,调用了ros::spinOnce(),在这个函数中,所有ROS通信的回调函数都被处理
      nh.spinOnce();
    }
    

      

    作者:kay
    出处:https://www.cnblogs.com/kay2018/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    linux命令总结
    在阿里云centos7.6上部署vue.js2.6前端应用
    MongoDb语法
    Echarts 地图绘制
    在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
    django--- 支付宝退款
    响应式网站设计(Responsive Web design)
    django -- 推荐商品算法
    django -- 美多订单分表
    小程序基本配置
  • 原文地址:https://www.cnblogs.com/kay2018/p/10022337.html
Copyright © 2011-2022 走看看