0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

代码分析:九轴姿态传感器是无人机中必备重要器件。

h1654155971.7688 来源:未知 作者:李倩 2018-03-12 11:29 次阅读

六轴加速度计和三轴陀螺仪所组成的九轴姿态传感器无人机中必备重要器件。本微信号之前已经对加速度计和陀螺仪的物理工作原理探讨过无数次了,在这里也不再絮叨了。目前很多开发板上也会安装这种传感器,从而获得开发板实时姿态,可用于无人机和体感游戏等应用的开发,本文以Genuino101中RawImuDataSerial的例子进行分析,从代码角度来和大家探讨一下姿态参数的获得。

1.Genuino101中使用的是USB虚拟串口,所以先进行串口初始化,设置波特率。

什么是USB虚拟串口呢,字面上好像很难的样子,可能很多新手都不知道,但是不用担心,USB虚拟串口就是把USB当作串口的串口来使用,在Nano,Mega板上都有USB转TTL的芯片,连接到电脑后,电脑就识别出了端口号。但是101上并未使用USB转TTL的芯片,101有USB接口,而USB可以作为几种使用类型,像HID鼠标键盘,大容量存储,摄像头等,其中有一种类型叫虚拟串口,使用的方法跟普通的串口是一样的。虚拟串口属于USB CDC,

也叫VCP。

2.while (!Serial); 这里是判断串口是否完成,为什么这样使用呢?看看参考资料

意思就是判断USB CDC串口是否已经打开了,如果已经打开,刚返回true,否则是false

3.开始进行IMU的初始化,这里的IMU包含在Intel Curie模块里面。输出

Initializing IMU device...

初始化的函数是: CurieImu.initialize();

看看里面做了什么

可以看到,首先是SPI的初始化,SPI连接的是型号为BMI160的六轴加速度计和陀螺仪传感器。具体是如何通过寄存器的读取加速度值的我们先不去研究,CurieImuClass里面已经做好了这些操作,我们只要知道使用,CurieImuClass就能得到六轴的原始数据就行了。那为什么要打开看看里面做了什么呢,其实我也就是好奇,想看看。

4.这里字面上的意思是测试CurieImu是否连接成功,我们打开CurieImu.testConnection()看看里面是啥。

其实就是通过SPI读取BMI160寄存器到的DeviceID,如果读到了,说明连接成功。

这里是读取寄存器里偏移量的值。这几个是已经默认在寄存器里了。

5.这里是进行陀螺仪校准,校准函数是 CurieImu.autoCalibrateGyroOffset();有点奇怪,为什么陀螺仪有三个轴,但是只用了一个校准呢?我们打开这个函数看一下。

看了一下注释,这个函数就是对3个轴进行校准。那就不管它了,具体那几个寄存器是什么也不用去理会。

6.这里对加速度计进行校准。用了三个校准函数,XY是0,Z的参数是1,为什么呢。是不是因为Z轴自身就收到重力呢?保留疑问。

7.校准好了之后,再读取一次偏移量。

8.这里字面上的意思是使能偏移量校准,也就是说,上面只是求出偏移量的值,而这里要进行使能。

9.接下来的便是loop()循环了。getMotion6()函数直接读取六个轴的值到变量。

10.接下来便是打印数据到串口了。

11.把程序烧写的板子上,打开串口,便能看到数据啦。

12.这里做一点小改动。把打印到串口的数据改成如下:

选择tools->Serial Plotter

Oh my god,好强大的功能,实时画六轴波形图啊。

最后小编向大家提一个问题,你们对于无人机的应用而言,多大的姿态数据刷新率最为合适?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    59

    文章

    7422

    浏览量

    258061
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1614

    浏览量

    89586
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66746

原文标题:代码分析:如何获得九轴姿态数据?

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    第四集 知语云智能科技无人机反制技术与应用--无人机的组成与工作原理

    ”,负责处理各种传感器数据,控制无人机的飞行姿态和轨迹。 传感器传感器无人机的“感官”,包括
    发表于 03-12 11:28

    无人机传感器市场火爆 未来5年规模达7亿美元

    看到的高科技工具,离普通老百姓的生活越来越近。据专家预测,到2018年,全球无人机市场规模将会攀升到10亿美元以上。 而在无人机和机器人的控制传感器起了至关
    发表于 06-03 10:30

    InvenSense电容式气压安徽传感器或将成大时代无人机标配怎么样

    ,气压计已成无人机标配  气压传感器无人机应用主要是检测气压变化以及定高。定高分为两种:首先是悬停,即将无人机固定在预设的高度位置上,现
    发表于 09-06 10:22

    Ameya360 无人机视觉、高级传感与处理解决方案

    回收等整个飞行过程的核心系统,飞控对于无人机相当于驾驶员对于有人机的作用,我们认为是无人机最核心的技术之一。飞控一般包括传感器、机载计算机和伺服作动设备三大部分,实现的功能主要有
    发表于 04-23 17:22

    无人机设计姿态检测算法、姿态控制算法有什么区别 ?

    无人机设计姿态检测算法、姿态控制算法有什么区别 ?推荐课程:张飞四旋翼飞行视频套件,76小时吃透四
    发表于 07-14 12:12

    无人机系列之飞控系统

    的大脑。 无人机姿态稳定与控制 与导航子系统协调完成航迹控制 起飞与返航控制 无人机飞行管理 无人机任务管理与控制 应急控制2.飞控系统--
    发表于 09-25 11:54

    无人机的MCU是如何工作的?

    的作用,我们认为是无人机最核心的技术之一。飞控一般包括传感器、机载计算机和伺服作动设备三大部分,实现的功能主要有无人机姿态稳定和控制、无人机
    发表于 10-09 10:44

    无人机——“会飞的传感器

    位置和无人机的飞行姿态,在维持无人机飞行控制起到关键的作用。MEMS加速度传感器有多种方式感知运动姿态
    发表于 11-29 10:38

    请问四元数在无人机姿态控制应用在哪一个环节?

    转化成最后供控制算法使用的三个当前飞行角度 φ, θ, ψ。使用四元数的原因除了没有 Gimbal lock,还有运算量小,适合运算能力差的嵌入式平台。我的问题是在我上述的无人机姿态控制过程
    发表于 05-30 01:05

    【设计技巧】无人机系列之飞控算法

    ` 一.无人机的分类 按飞行平台构型分类:无人机可分为固定翼无人机,旋翼无人机无人飞艇,伞翼无人机
    发表于 07-14 05:30

    基于STM32的四无人机姿态解算与控制系统设计

    基于STM32的四无人机姿态解算与控制系统设计
    发表于 08-06 20:33

    加速度传感器和陀螺仪如何让无人机飞的更稳

    近两年,伴随传感器技术的发展,消费电子产品领域逐渐成为行业热门。除了火热的可穿戴设备外,无人机在最近两年的发展势头也不可小觑。在2015年的开春之际,可以说,无人机,特别是多
    发表于 05-18 07:52

    姿态传感器是如何发展起来的?

    姿态传感器是如何发展起来的?
    发表于 11-01 07:33

    【罗姆传感器评估板试用体验连载】无人机感知系统

    【罗姆传感器评估板试用体验连载】-无人机感知系统 无人机的飞行感知技术主要用作两个用途,其一是提供给飞行控制系统,由于飞行控制系统的主要功能是控制飞机达到期望姿态和空间位置,所以这部
    发表于 03-20 17:20

    飞行的“传感器” 气压传感器无人机产品应用重要作用

    为了能更好地控制无人机飞行进而在人们生产生活中发挥更大作用,各种传感器的运用显得十分重要,甚至有人会将无人机称为一架会飞行的“传感器”。在
    发表于 04-26 14:39