当前位置: 首页 > news >正文

网站备案拍照是什么visual studio怎么新建网站

网站备案拍照是什么,visual studio怎么新建网站,郑州pc网站开发,怎么做一个设计师网站PX4源码添加自定义uORB消息并保存到日志 0 前言 PX4的内部通信机制主要依赖于uORB#xff08;Micro Object Request Broker#xff09;#xff0c;这是一种跨进程的通信机制#xff0c;一种轻量级的中间件#xff0c;用于在PX4飞控系统的各个模块之间进行高效的数据交换…PX4源码添加自定义uORB消息并保存到日志 0 前言 PX4的内部通信机制主要依赖于uORBMicro Object Request Broker这是一种跨进程的通信机制一种轻量级的中间件用于在PX4飞控系统的各个模块之间进行高效的数据交换它通过发布-订阅publish/subscribe模式实现了不同模块之间的异步通信。 uORB还允许开发者自定义新话题首先需要创建一个新的.msg文件将文件名添加到msg/CMakeLists.txt中之后进行编译来生成成对应的C代码及.h头文件然后在使用该话题的地方包含该头文件即可。 本篇文章介绍添加uORB消息具体方法并将该消息记录与日志中。 1 添加uORB消息方法 第一步添加对应的msg文件 PX4原定义好的msg文件都在PX4-Autopilot/msg 文件夹下面已经有非常多 打开飞机的位置消息文件 vehicle_local_position.msg 作为参考可以看到里面有很多的内容作为总结如下 定义的变量类型 有 boolcharfloat32 / float64uint8 / uint16 / uint64int8 /int16 /int32 相关的类型定义在 px_generate_uorb_topic_helper.py 文件中 [!NOTE] 也可以定义对应类型的向量例如 float32[3] msg文件最后两行还可以定义本msg的ID 例如vehicle_local_position.msg的 设置ID如下 [!NOTE] 一个uORB消息类型可以定义多个不同名字的msg ID 但是不同的uORB消息类型不可以定义相同名字的msg ID。 第二步将msg文件名添加到CMakeLists.txt 文件中 在编写好 **.msg 文件后需要将该文件的名字添加到PX4-Autopilot/msg/CMakeLists.txt 文件中 这样系统就将**.msg文件 自动编译生成对应的**.h文件了 添加到39行那个set函数里一般加到最下面一个 第三步引用头文件 在需要引用的头文件中加入uORB相关的头文件 通常一般需要引用的有下面几个 #include uORB/Publication.hpp #include uORB/Subscription.hpp #include uORB/SubscriptionCallback.hpp然后就是头文件引用对应msg生成的头文件 前面的路径一般是uORB/topics/ 。例如 #include uORB/topics/**.h至此添加一个uORB消息类型即完成了下面则是使用uORB消息的方法。 第四步uORB消息的订阅 订阅的声明举个例子 如下 uORB::Subscription _vehicle_land_detected_sub{ORB_ID(vehicle_land_detected)};uORB::Subscription 就是声明一个uORB订阅类型_vehicle_land_detected_sub 订阅变量的名字ORB_ID(vehicle_land_detected) 订阅的uORB的ID如果在msg文件中没有定义ID那么msg文件的名字就是ID也可以通过#TOPICS 来设置对应的ID 一个msg可以设置多个不同的ID 获取最新的已订阅的uORB消息伪代码如下 vehicle_land_detected_s 变量名a if(_vehicle_land_detected_sub.update(变量名a)) {具体操作 }第五步uORB消息的发布 发布的声明举个例子 如下 uORB::PublicationDatatakeoff_status_s _takeoff_status_pub{ORB_ID(takeoff_status)};uORB::PublicationData ——声明一个uORB发布类型takeoff_status_s ——发布消息的结构体一般结构体的名字就是msg文件的名字_takeoff_status_pub ——uORB发布类型的变量名称ORB_ID(takeoff_status) ——发布的订阅的uORB的ID 发布指定的uORB消息伪代码如下 takeoff_status_s 变量名a 变量名a 各成员变量赋值 _takeoff_status_pub.publish(变量名a);第六步将uORB消息记录在日志中 如果希望将该消息记录在日志中 那么需要打开 PX4-Autopilot/src/modules/logger/logged_topics.cpp 文件 文件中的 void LoggedTopics::add_default_topics() 函数就是 添加记录日志的topic的 可以看到原本的有这样几个功能函数 它们用于控制日志记录中的主题的功能区别是 add_topic —— 函数用于将指定的uORB主题添加到日志记录中。这意味着每当该主题的数据更新时都会被记录到日志文件中。带间隔参数add_topic(topic_name, interval_ms)其中 interval_ms 指定记录间隔毫秒例如add_topic(demo_uorb, 100) 表示每100毫秒记录一次该主题的数据add_optional_topic——函数用于添加一个可选的主题。与 add_topic() 不同该函数允许用户选择是否启用该主题的日志记录。用户可以根据需要手动开启或关闭该主题的日志记录。add_optional_topic_multi ——与 add_optional_topic() 类似但允许同时添加多个主题。这使得可以一次性配置多个可选主题的日志记录。 2 实践 2.1 代码实现 PX4-Autopilot/msg 文件夹下面新建一个文件文件命名为jone_demo.msg 在 jone_demo.msg 文件中定义四个参数 uint64 timestamp # time since system start (microseconds)bool enable float32 acc_norm float32[3] acc编写好jone_demo.msg文件后 将 jone_demo.msg 文件的名字添加到PX4-Autopilot/msg/CMakeLists.txt 文件中这样系统就将jone_demo.msg文件自动编译生成对应的jone_demo.h文件了 添加到39行那个set函数里一般加到最下面一个 先编译一下 make px4_sitl_default这样就生成了对应的jone_demo.h 路径是build/px4_sitil_default/uORB/topics 在之前添加的模块jone_demo中的JoneDemo.hpp 头文件中加入uORB相关的头文件 通常一般需要引用的有下面几个 #include uORB/Publication.hpp #include uORB/Subscription.hpp #include uORB/SubscriptionCallback.hppjone_demo.msg 生成的头文件为jone_demo.h #include uORB/topics/jone_demo.h下面订阅sensor_combined的uORB消息获取其中的三轴加速度信息 在JoneDemo.hpp 中类的私有变量区加入 uORB::Subscription _sensor_combined_sub{ORB_ID(sensor_combined)};去订阅传感器信息的uORB消息所以前面要加上该消息的引用 #include uORB/topics/sensor_combined.h在JoneDemo.hpp 中类的私有变量区加入 uORB::PublicationDatajone_demo_s _jone_demo_pub{ORB_ID(jone_demo)};可以打开jone_demo.h文件看下jone_demo_s 结构体的定义 下面在cpp文件中进行具体的uORB消息订阅与发布操作 在JoneDemo.cpp 的Run()函数中加入 sensor_combined_s imu;if(_sensor_combined_sub.update(imu)){jone_demo_s jone;jone.timestamp hrt_absolute_time();//获得系统的绝对时间jone.enable true;jone.acc[0] accelerometer_m_s2[0];jone.acc[1] accelerometer_m_s2[1];jone.acc[2] accelerometer_m_s2[2];jone.acc_norm sqrtf(jone.acc[0]*jone.acc[0]jone.acc[1]*jone.acc[1]jone.acc[2]*jone.acc[2]);_jone_demo_pub.publish(jone);}通过上面的代码在检测到sensor_combined_s消息更新时那么就会在jone_demo_s 变量中 赋值加速度三轴的值并且计算模长然后发布jone_demo_s变量的uORB消息。 将jone_demo消息添加在日志记录中 打开 PX4-Autopilot/src/modules/logger/logged_topics.cpp 文件 文件中的 void LoggedTopics::add_default_topics() 函数就是 添加记录日志的topic的 在add_default_topics() 函数里加入 add_topic(jone_demo);2.2 测试 编译下看有没有问题 make px4 default_sitl_default没问题则可以运行下 make px4 default_sitl_default gazebo控制飞机起飞飞一小段时间 下载日志 点QGC的这个图标 在弹窗选择分析工具 选择日志下载界面 一开始没有日志需要点击刷新 找到对应的日期日志点击下载即可 完成后则在对应的选择的路径下面生成了需要的日志文件 log_5说明下载的ID 5 的日志然后是时间 下面通过plotjudge数据分析工具来看日志里记录的uORB消息 在里面找到我们记录的对应的uORB消息的IDjone_demo 点开是我们声明的对应的消息体 对应的数据曲线
http://www.dnsts.com.cn/news/36627.html

相关文章:

  • 网站建设代码结构做面膜的网站
  • 网站显示系统建设中wix和wordpress区别
  • 网站建设多少钱实惠湘潭磐石网络wordpress教程 吾爱破解
  • 南京网站建设设计新月直播大全免费下载手机版官网
  • 网页设计与网站建设+pdf网站添加微信
  • 网站开发需要什么人才网站备案收录下降
  • 哈尔滨站建好了吗小程序商城需要办什么证
  • 赢卡购网站建设一般通过什么确定险情的严重程度
  • 一半都有哪些做影视外包的网站恐怖音乐怎么做的视频网站
  • 站长工具ping中国建设手机银行下载
  • 做网站外包最牛的公司wordpress 图片打开慢
  • 招聘网站建设有没关于做动画设计师的网站
  • 工业网站模板html代码大全网站推荐
  • 制作个人网站实例个人网站能挂广告吗
  • 马化腾做的电商网站长沙网站排名方法
  • 免费个人网站建站申请流程ppt模板免费下载图片
  • 免费做推广的网站有哪些长沙网站开
  • 设计做兼职的网站求推荐赣州seo公司
  • 企业网站建设市场分析商贸公司寮步网站建设
  • 潍坊做网站教程网站建设工作台账
  • 人工智能的网站网站建设规划书主题
  • 1688网站怎么做个人网页设计题目简介
  • 石狮建设银行网站在招聘网站做销售工资高吗
  • wordpress二次开发手册慈溪企业网站seo
  • 唐山高端网站建设怎么开发一个聊天软件
  • php 茶叶网站建设世界工厂采购网官网
  • 辽宁鹤城建设集团网站phpcms v9网站导航
  • 淄博网站制作网站后台模板修改用什么软件
  • 公司网站主页模板在线做视频的网站
  • 公司网站搭建在家给别人做网站合法吗