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

什么网站可以做护考题网站主页作品欣赏

什么网站可以做护考题,网站主页作品欣赏,公司网站放哪些内容,网站建设图库ArduPilot开源代码之OpticalFlow_backend 1. 源由2. Library设计3. 重要例程3.1 OpticalFlow_backend::_update_frontend3.2 OpticalFlow_backend::_applyYaw 4. 总结5. 参考资料 1. 源由 光流计是一种低成本定位传感器#xff0c;所有的光流计设备传感驱动代码抽象公共部分统… ArduPilot开源代码之OpticalFlow_backend 1. 源由2. Library设计3. 重要例程3.1 OpticalFlow_backend::_update_frontend3.2 OpticalFlow_backend::_applyYaw 4. 总结5. 参考资料 1. 源由 光流计是一种低成本定位传感器所有的光流计设备传感驱动代码抽象公共部分统一由OpticalFlow_backend实现。设计的核心思想是将光流传感器的具体实现与其前端接口分离开来通过纯虚函数和友元类的机制实现了灵活且可扩展的架构。 2. Library设计 OpticalFlow_backend类是一个抽象基类用于表示光流传感器的后端实现。它包含了一些基本的接口函数如初始化、更新和消息处理函数。 公共部分使用虚函数根据不同硬件传感设备进行实现 init函数是一个虚函数允许子类在必要时重写初始化过程。update函数是一个纯虚函数强制所有子类必须实现自己的更新逻辑。handle_msg和handle_msp函数用于处理不同类型的消息提供了默认的空实现子类可以根据需要进行重写。 保护部分直接抽象的公共部分的函数实现如访问前端对象、更新前端状态、获取缩放参数、计算偏航角等。AP_OpticalFlow类被声明为友元类允许它访问OpticalFlow_backend的私有和保护成员。这表示AP_OpticalFlow可能是该后端类的管理类或控制类。**CLASS_NO_COPY(OpticalFlow_backend)**是一个宏用于禁止该类的拷贝构造和赋值操作确保每个对象都是唯一的。 class OpticalFlow_backend {// 将AP_OpticalFlow类声明为友元类允许其访问OpticalFlow_backend的私有成员friend class AP_OpticalFlow;public:// 构造函数接受一个AP_OpticalFlow对象的引用OpticalFlow_backend(AP_OpticalFlow _frontend);// 虚析构函数允许子类重写virtual ~OpticalFlow_backend(void);// 禁止拷贝构造和拷贝赋值操作CLASS_NO_COPY(OpticalFlow_backend);// 初始化传感器的函数默认实现为空virtual void init() {}// 从传感器读取最新的值并填充x, y和totals的纯虚函数必须在子类中实现virtual void update() 0;// 处理光流的mavlink消息的虚函数默认实现为空virtual void handle_msg(const mavlink_message_t msg) {}#if HAL_MSP_OPTICALFLOW_ENABLED// 处理光流的msp消息的虚函数默认实现为空virtual void handle_msp(const MSP::msp_opflow_data_message_t pkt) {} #endifprotected:// 前端对象的引用AP_OpticalFlow frontend;// 更新前端状态的函数void _update_frontend(const struct AP_OpticalFlow::OpticalFlow_state state);// 获取光流缩放参数的函数返回一个包含X和Y轴缩放因子的向量Vector2f _flowScaler(void) const { return Vector2f(frontend._flowScalerX, frontend._flowScalerY); }// 获取以弧度表示的偏航角的函数float _yawAngleRad(void) const { return radians(float(frontend._yawAngle_cd) * 0.01f); }// 应用偏航角到一个向量上的函数void _applyYaw(Vector2f v);// 获取ADDR参数值的函数uint8_t get_address(void) const { return frontend._address; }// 用于访问共享前端数据的信号量HAL_Semaphore _sem; };3. 重要例程 3.1 OpticalFlow_backend::_update_frontend // update the frontend void OpticalFlow_backend::_update_frontend(const struct AP_OpticalFlow::OpticalFlow_state state) {frontend.update_state(state); }3.2 OpticalFlow_backend::_applyYaw // apply yaw angle to a vector void OpticalFlow_backend::_applyYaw(Vector2f v) {float yawAngleRad _yawAngleRad();if (is_zero(yawAngleRad)) {return;}v.rotate(yawAngleRad); }4. 总结 OpticalFlow_backend继承出来的硬件传感设备在Ardupilot上目前有以下几类设备 AP_OpticalFlow_CXOFAP_OpticalFlow_HereFlowAP_OpticalFlow_MAVAP_OpticalFlow_MSPAP_OpticalFlow_OnboardAP_OpticalFlow_PixartAP_OpticalFlow_PX4FlowAP_OpticalFlow_SITLAP_OpticalFlow_UPFLOW MATEKSYS Optical Flow LIDAR 3901-L0X是其中的一种。 传感模块MATEKSYS Optical Flow LIDAR 3901-L0X[ArduPilot开源代码之MatekSys Optical Flow 3901-L0X](ArduPilot开源代码之MatekSys Optical Flow 3901-L0X)ArduPilot开源飞控之AP_OpticalFlow 5. 参考资料 【1】ArduPilot开源飞控系统之简单介绍 【2】ArduPilot之开源代码Task介绍 【3】ArduPilot飞控启动运行过程简介 【4】ArduPilot之开源代码LibrarySketches设计 【5】ArduPilot之开源代码Sensor Drivers设计
http://www.dnsts.com.cn/news/262649.html

相关文章:

  • 网站源码程序修改修改文案支持在线图片编辑
  • 建设公共网站的手续计算机软件开发培训
  • 网站会员注册系统源码河北石家庄旅游网页设计
  • 2017主流网站风格网站建设服务商的网站建设流程
  • 电子商务网站建设系统功能东营建网站公司
  • 长治建一个网站大概要多少钱哈尔滨快速建站合作
  • 运城推广型网站建设南通网站建设
  • 网站模板模仿黄石手机网站建设
  • 广州高端网站设计功能多的免费网站建设
  • 佛山网站建设定制科技公司官网设计源代码
  • 无锡网站建设推荐建设银行宁波分行网站
  • 采集文章留在网站网站开发工程师应聘书范文1000
  • 不要钱做网站软件沈阳市城乡建设局
  • 自己做旅游攻略的网站php响应式网站模板
  • 做网站文件夹都起什么名字2018wordpress 主题
  • 免费开网站系统做公司网站注意什么
  • 安阳网站哪家做的好贵阳网站制作费用
  • wordpress网页文件太多seo网络推广专员招聘
  • 网站 掌握做网站明细范文
  • 潍坊制作网站建设网站的建议
  • 建设工程168类似的网站怎么设计自己的个人网页
  • 汕头网页建站模板西安营销型网站制作价格
  • 哈尔滨营销网站制作建网通
  • 移动开发网站建设深圳互联网公司集中在哪个区
  • 沈阳做一个网站需要多少钱网站建设 环保素材
  • 官方网站面膜做代理代理龙华网站建设
  • 简单公司网站模版学做网站多久能学会
  • 搭建一个网站ui是什么工作
  • 旅游类网站开发开题报告范文六安网站制作人才招聘
  • 焦作网站设计多少钱网页传奇游戏如何0血打不死