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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    window环境搭建contos 7,而后xshell链接
    .NET Core 学习笔记(二)之启动流程
    .Net Core 学习笔记(一)
    Redis入门指南(附网盘下载链接)
    结构化数据、半结构化数据和非结构化数据
    github上项目的目录结构说明
    数据库分库分表和带来的唯一ID、分页查询问题的解决
    博客目录
    14 SQLAlchemy
    13 Msql之四种事务隔离界别
  • 原文地址:https://www.cnblogs.com/kay2018/p/10022337.html
Copyright © 2011-2022 走看看