精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

嵌入式算法之空間向量夾角公式及其應用

開發 前端 算法
有些設備正常工作時需按合適的方位安裝,比如GPS天線必須朝向天空才能保證信號最佳,溫濕度傳感器監測口必須朝向被測目標才能及時響應。軟件需求是在安裝角度異常時提醒用戶改變位置。

[[350122]]

有些設備正常工作時需按合適的方位安裝,比如GPS天線必須朝向天空才能保證信號最佳,溫濕度傳感器監測口必須朝向被測目標才能及時響應。軟件需求是在安裝角度異常時提醒用戶改變位置。那設備如何感知當前方位呢?需要一顆加速度傳感器硬件支持,輔以算法實現。

1、重力加速度

根據物理常識,地面上任何物體靜止時都受到1g的重力加速度,且方向是豎直向下。

 

因為傾斜角的不同,1g的加速度按向量分解到xyz三軸:

  • acc_x=1g.sinθ.cosϕ
  • acc_y=-1g.sinθ.sinϕ
  • acc_z=1g.cosϕ

符號.代表相乘,讀取加速度傳感器的xyz三軸數據的細節,不是本文考慮的范疇。

因為傳感器的位數精度和量程不同,同樣的1g,讀寄存器的數值不同,為統一后文描述,假設數值255對應1g的加速度。物體水平靜止時加速度值理想情況是(0,0,255),反向水平放置是(0,0,-255)。這個數值等比例的縮小或放大,不影響角度的判斷。

2、空間向量夾角

假設期望的正確安裝方式下三軸是(x0,y0,z0),實際三軸數據是(x1,y1,z1)。那如何得出當前偏差的角度呢?已知兩空間向量的坐標為a=(x1,y1,z1),b=(x2,y2,z2),則兩向量的夾角余弦cosθ公式為:

 

在實際應用中,翻轉角度為181度時,按179度處理。本文只考慮0-180度的應用,180度以上的需要額外再計算翻轉。

 

根據空間向量夾角余弦,再反余弦得出在0-180度的角度,即可判斷設備安裝角度是否正確。

3、代碼實現

  1. #include "math.h" 
  2. #include "stdio.h" 
  3.  
  4. #define PI  3.1415926 
  5.  
  6. typedef struct 
  7.     unsigned short x; 
  8.     unsigned short y; 
  9.     unsigned short z; 
  10. }sensor_data_struct; 
  11.  
  12. static sensor_data_struct ref={0,0,255}; 
  13. static sensor_data_struct test={0,180,180}; 
  14.  
  15. //計算當前向量與參考向量的夾角 
  16. float get_angle(sensor_data_struct data) 
  17.     float cosine; 
  18.     float temp,angle; 
  19.     cosine=(data.x*ref.x+data.y*ref.y+data.z*ref.z)/ \ 
  20.             ((sqrt(data.x*data.x+data.y*data.y+data.z*data.z))*\ 
  21.              (sqrt(ref.x*ref.x+ref.y*ref.y+ref.z*ref.z))); 
  22.  
  23.      temp=acos(cosine); 
  24.      angle=(temp*180)/PI; 
  25.      return angle; 
  26.  
  27. int main(int argc, char *argv[]) 
  28.     float angle; 
  29.     printf("reference vector (%d,%d,%d)\r\n",ref.x,ref.y,ref.z); 
  30.     printf("test vector (%d,%d,%d)\r\n",test.x,test.y,test.z); 
  31.     angle=get_angle(test); 
  32.     printf("angle = %f'\r\n",angle); 
  33.     return 0; 
  • reference vector (0,0,255)
  • test vector (0,180,180)
  • angle = 45.000004'

4、優化改進

求解角度使用的三角函數,部分單片機可能不支持;對角度的精度,使用整形即可。基于這個條件,可以建立cosθ的數組表,以1度--2度--3度---180度步進,按如下代碼生成數組表:

  1. void creat_table(void) 
  2.     float i; 
  3.     for(i=0;i<180;i++)//i的步進值決定精度 
  4.     { 
  5.         if((unsigned char )i%9==0) 
  6.         { 
  7.             printf("\r\n"); 
  8.         } 
  9.         printf("%f,",cos(i*PI/180));//角度轉弧度再傳入 
  10.     } 

根據代碼生成數組表后,查找余弦表,數組的下標即為角度。

  1. static const float cos_table[180]={ 
  2.     1.000000,0.999848,0.999391,0.998630,0.997564,0.996195,0.994522,0.992546,0.990268, 
  3.     0.987688,0.984808,0.981627,0.978148,0.974370,0.970296,0.965926,0.961262,0.956305, 
  4.     0.951057,0.945519,0.939693,0.933580,0.927184,0.920505,0.913545,0.906308,0.898794, 
  5.     0.891007,0.882948,0.874620,0.866025,0.857167,0.848048,0.838671,0.829038,0.819152, 
  6.     0.809017,0.798636,0.788011,0.777146,0.766044,0.754710,0.743145,0.731354,0.719340, 
  7.     0.707107,0.694658,0.681998,0.669131,0.656059,0.642788,0.629320,0.615661,0.601815, 
  8.     0.587785,0.573576,0.559193,0.544639,0.529919,0.515038,0.500000,0.484810,0.469472, 
  9.     0.453991,0.438371,0.422618,0.406737,0.390731,0.374607,0.358368,0.342020,0.325568, 
  10.     0.309017,0.292372,0.275637,0.258819,0.241922,0.224951,0.207912,0.190809,0.173648, 
  11.     0.156434,0.139173,0.121869,0.104528,0.087156,0.069756,0.052336,0.034900,0.017452, 
  12.     0.000000,-0.017452,-0.034899,-0.052336,-0.069756,-0.087156,-0.104528,-0.121869,-0.139173, 
  13.     -0.156434,-0.173648,-0.190809,-0.207912,-0.224951,-0.241922,-0.258819,-0.275637,-0.292372, 
  14.     -0.309017,-0.325568,-0.342020,-0.358368,-0.374607,-0.390731,-0.406737,-0.422618,-0.438371, 
  15.     -0.453990,-0.469472,-0.484810,-0.500000,-0.515038,-0.529919,-0.544639,-0.559193,-0.573576, 
  16.     -0.587785,-0.601815,-0.615661,-0.629320,-0.642788,-0.656059,-0.669131,-0.681998,-0.694658, 
  17.     -0.707107,-0.719340,-0.731354,-0.743145,-0.754710,-0.766044,-0.777146,-0.788011,-0.798635, 
  18.     -0.809017,-0.819152,-0.829038,-0.838671,-0.848048,-0.857167,-0.866025,-0.874620,-0.882948, 
  19.     -0.891007,-0.898794,-0.906308,-0.913545,-0.920505,-0.927184,-0.933580,-0.939693,-0.945519, 
  20.     -0.951057,-0.956305,-0.961262,-0.965926,-0.970296,-0.974370,-0.978148,-0.981627,-0.984808, 
  21.     -0.987688,-0.990268,-0.992546,-0.994522,-0.996195,-0.997564,-0.998630,-0.999391,-0.999848, 
  22. }; 
  23.  
  24. unsigned short get_angle(sensor_data_struct data) 
  25.     float cosine; 
  26.     unsigned short i; 
  27.  
  28.     cosine=(data.x*ref.x+data.y*ref.y+data.z*ref.z)/ \ 
  29.             ((sqrt(data.x*data.x+data.y*data.y+data.z*data.z))*\ 
  30.              (sqrt(ref.x*ref.x+ref.y*ref.y+ref.z*ref.z))); 
  31.  
  32.     for(i=0;i<180;i++) 
  33.     { 
  34.         if(cos_table[i]<cosine)//查表 
  35.         { 
  36.             return i; 
  37.         } 
  38.     } 
  39.     return 180;//error 
  40.  
  41. int main(int argc, char *argv[]) 
  42.     unsigned short angle;//改成整形 
  43.     printf("reference vector (%d,%d,%d)\r\n",ref.x,ref.y,ref.z); 
  44.     printf("test vector (%d,%d,%d)\r\n",test.x,test.y,test.z); 
  45.  
  46.     angle=get_angle(test); 
  47.  
  48.     printf("angle = %d'\r\n",angle); 
  49.     return 0; 
  • reference vector (0,0,255)
  • test vector (0,180,180)
  • angle = 46'

查表得出46度,因為查表以及浮點的精度,所以角度誤差+-1度,但這個不影響業務邏輯。

5、小節

1、空間向量夾角公式可在基于xyz三軸的傳感器中應用。

2、針對范例中的應用,兩個向量的參數必須是在靜止情況下采樣,根據向量模進行過濾,否則角度計算錯誤。

3、未考慮大于180度的翻轉。

本文轉載自微信公眾號「嵌入式系統」,可以通過以下二維碼關注。轉載本文請聯系嵌入式系統公眾號。

 

責任編輯:武曉燕 來源: 嵌入式系統
相關推薦

2021-11-05 22:47:44

冒泡排序選擇插入

2022-03-10 08:59:59

傅里葉變換算法系統

2020-11-04 10:20:56

嵌入式算法CRC

2023-03-26 12:41:46

2018-05-02 16:34:56

EAF嵌入式框架

2009-12-17 18:38:56

Fedora 7嵌入式

2009-04-11 15:22:24

Linux 2.6內核應用

2009-04-20 21:20:32

Linux文件系統存儲機制

2021-11-29 07:43:08

大數據存儲算法

2012-07-30 14:13:11

Linux 2.6內核嵌入式

2022-11-24 11:15:49

IoTLinux設備樹機制

2011-01-14 13:13:23

嵌入式Linux開發

2009-04-11 15:12:24

2022-03-25 20:00:40

人工智能機器人

2009-12-09 10:12:28

嵌入式Linux

2009-07-17 16:06:59

ARM嵌入式開發

2009-12-16 15:41:40

嵌入式Linux入門

2009-12-17 10:33:05

嵌入式Linux

2011-04-18 11:34:34

嵌入式軟件測試

2017-10-09 10:40:43

AMD
點贊
收藏

51CTO技術棧公眾號

国产成a人亚洲精v品无码| 制服丝袜在线第一页| 思思99re6国产在线播放| 国产精品一区2区| 91av在线播放| 黄色片网站在线播放| 超碰一区二区三区| 在线精品国精品国产尤物884a| 国产精品亚洲天堂| 日韩精品视频无播放器在线看 | 亚洲制服丝袜一区| 欧美精品一区二区三区在线看午夜 | 欧美日韩一区视频| 欧美二区在线视频| 在线网址91| 国产精品久久久久久福利一牛影视| 中文字幕日韩av资源站| 日韩视频123| 欧美激情国产精品日韩| 国产素人视频在线观看| 久久先锋资源网| 电影午夜精品一区二区三区| www成人在线| 伊人网免费视频| 欧美三级不卡| 日韩一区二区福利| 免费看裸体网站| 日本成人a网站| 日韩精品在线一区| 手机版av在线| 91国拍精品国产粉嫩亚洲一区 | 亚洲精品视频在线观看免费视频| www.在线欧美| 欧美日韩一区三区四区| 日本少妇高潮喷水视频| 午夜av在线免费观看| 中文子幕无线码一区tr| 欧美日韩在线精品| 三级视频网站在线| 99久久精品免费看| 一区视频在线播放| 日本免费高清不卡| 亚洲av成人精品一区二区三区在线播放 | 久久99久久99精品中文字幕| 亚洲女人久久久| 日韩国产一区二区| 中文字幕欧美视频在线| 亚洲性猛交xxxx乱大交| 一区二区三区日本久久久| 亚洲精品久久久久久久久久久| 精人妻一区二区三区| 亚洲欧洲国产精品一区| 日韩精品最新网址| 国产国语老龄妇女a片| 91蜜桃臀久久一区二区| 欧美日韩大陆在线| 中文字幕成人在线视频| 久久国产精品美女| 精品国产一区二区三区久久影院 | 日韩欧美中文在线视频| 欧美一区在线观看视频| 欧美变态tickle挠乳网站| 久久久久无码国产精品一区李宗瑞 | 97在线观看免费视频| 日韩精品网站| 久久精品国产久精国产一老狼| 成人在线观看免费完整| 黄色欧美成人| 日韩免费视频在线观看| 中国精品一区二区| 激情文学综合插| 国产91aaa| 美州a亚洲一视本频v色道| 国产欧美日韩综合| 蜜臀av.com| 蜜桃视频m3u8在线观看| 色猫猫国产区一区二在线视频| 妺妺窝人体色www在线观看| 久久天堂影院| 亚洲成av人乱码色午夜| 在线观看日韩精品视频| 日韩久久视频| 久久男人av资源网站| 成人h动漫精品一区二区下载| 久久国产精品第一页| 国产精品免费视频一区二区| 激情综合闲人网| 亚洲视频你懂的| 久久免费视频3| 亚洲青青久久| 亚洲欧美日韩中文在线制服| 99久久久免费精品| 99xxxx成人网| 国产狼人综合免费视频| 无码精品人妻一区二区| 国产精品久久福利| 九色在线视频观看| 电影91久久久| 亚洲人成伊人成综合网久久久| 国产精品免费人成网站酒店 | 免费一级毛片在线观看| 国产日韩精品一区| 五月天激情图片| 国产精欧美一区二区三区蓝颜男同| 欧美丝袜丝交足nylons图片| 香蕉在线观看视频| 日韩精品欧美| 欧洲成人午夜免费大片| 99久久久国产精品无码免费| 久久网这里都是精品| 国产日韩欧美大片| 电影一区电影二区| 亚洲黄在线观看| 印度午夜性春猛xxx交| 老司机精品福利视频| 国产欧美亚洲日本| 污污视频在线看| 欧美日韩一区小说| 欧美人妻一区二区三区| 亚洲国产激情| 97碰碰视频| 欧美成人hd| 欧美性三三影院| 人人妻人人澡人人爽人人精品| 欧美日韩国产欧| 国产精品一区二区性色av| 国产人成在线视频| 色诱视频网站一区| 喷水视频在线观看| 亚洲电影av| 国产精品一 二 三| a级片免费在线观看| 日韩写真欧美这视频| 国产67194| 国产在线精品不卡| 在线观看日本一区| 欧美系列精品| www.亚洲一区| 国产精品自拍电影| 亚洲少妇最新在线视频| 在线不卡一区二区三区| 日韩在线观看| 国产一区二区在线免费| 欧美高清视频| 欧美一区二区三区免费在线看 | 亚洲sss视频在线视频| 在线精品视频播放| 亚洲国产免费看| 韩国成人av| 自拍网站在线观看| 亚洲色图偷窥自拍| 波多野结衣激情视频| 欧美韩国日本综合| 亚洲另类第一页| 欧美1区3d| 国产超碰91| 91桃色在线| 亚洲精品在线看| 秋霞av一区二区三区| 亚洲国产精品二十页| 色悠悠久久综合网| 在线免费观看日本欧美爱情大片| 7777精品久久久大香线蕉小说| 牛牛精品在线视频| 亚洲精品电影网站| 涩涩视频在线观看| 亚洲色图在线视频| 欧亚乱熟女一区二区在线| 亚洲深爱激情| 亚洲日本欧美在线| 99精品国产一区二区三区2021 | 成人在线视频区| 欧美国产日韩一区二区在线观看 | 风间由美中文字幕在线看视频国产欧美 | 在线丝袜欧美日韩制服| 91精品丝袜国产高跟在线| 97国产一区二区精品久久呦| 精品av中文字幕在线毛片 | 国产人妖在线观看| 久久国产精品99国产| 一区国产精品| 欧美xxxx在线| 成人国产精品一区二区| bbw在线视频| 最近的2019中文字幕免费一页| 性生活黄色大片| 91久久精品国产91性色tv | 国内精品久久久久久久影视蜜臀| 欧美激情一区二区三区在线视频| 九九久久国产| 性色av一区二区三区免费| 成人精品一区二区三区校园激情| 日韩欧美在线1卡| 亚洲欧美日韩激情| 国产一区二区久久久久| 欧美激情乱人伦一区| 免费一级在线观看播放网址| 日韩欧美不卡一区| 亚洲av无码乱码国产精品fc2| 夜夜嗨av一区二区三区网页| 精品国产av色一区二区深夜久久| 另类小说综合欧美亚洲| 国产一区二区三区在线视频 | 欧美a在线看| 亚洲国产精品小视频| 91久久精品国产91性色69| 精品高清一区二区三区| 欧美在线视频第一页| 久久久久88色偷偷免费| 国产一卡二卡三卡四卡| 极品少妇一区二区| gv天堂gv无码男同在线观看| 9l亚洲国产成人精品一区二三| 国产成人极品视频| 黄页网站在线观看免费| 最近2019年日本中文免费字幕| 日韩一级片免费| 日韩欧美成人激情| 国产伦精品一区二区三区视频痴汉 | 日韩成人av影院| 国产精品高潮呻吟久久久久| 国产精品美女免费看| 日韩电影毛片| 久久久久久久久电影| 超碰在线免费播放| 日韩在线播放av| 在线免费看av| 色偷偷亚洲男人天堂| 国产98在线| 日本vs亚洲vs韩国一区三区二区 | 在线观看av不卡| 欧美另类一区二区| 午夜伦理一区二区| 日本最新中文字幕| 亚洲午夜av在线| av资源吧首页| 亚洲一线二线三线视频| 欧美成人免费看| 一区二区三区丝袜| 精品无码m3u8在线观看| 玉足女爽爽91| 久久一二三四区| 亚洲国产精品久久久男人的天堂| 国产亚洲第一页| 亚洲福利电影网| wwwxxx亚洲| 日韩欧美精品免费在线| 黄色av网站免费| 欧美日韩一区二区三区免费看| 成人黄色免费网| 欧美久久婷婷综合色| 国产欧美第一页| 精品国产乱码久久久久久夜甘婷婷| 午夜免费福利视频| 亚洲精品福利免费在线观看| 你懂的在线免费观看| 一区二区三区精品99久久| av在线电影网| 粗暴蹂躏中文一区二区三区| 欧洲中文在线| 欧美诱惑福利视频| 狠狠久久综合| 999久久久| 夜色77av精品影院| 亚洲ai欧洲av| 你懂的视频一区二区| 欧美三级在线观看视频| 日本亚洲视频在线| 国产999免费视频| www.欧美日韩| 夫妇露脸对白88av| 一区二区三区四区国产精品| 天堂网av手机版| 欧美色精品在线视频| 亚洲成人久久精品| 亚洲久久久久久久久久| 快射视频在线观看| 97国产精品免费视频| 成人国产一区| 国产精品区免费视频| 精品久久久久久久| 99久久久精品视频| 日韩一区精品视频| 免费欧美一级片| 久久精品一区二区三区不卡牛牛| 国产免费一区二区三区四区| 丰满岳妇乱一区二区三区| 一级黄色a视频| 日韩国产中文字幕| 黄av在线播放| 国产精品aaa| 开心激情综合| 操bbb操bbb| 蜜臀av性久久久久蜜臀aⅴ| 国产情侣久久久久aⅴ免费| 国产精品视频一二三区| 日干夜干天天干| 91精品啪在线观看国产60岁| 九一在线视频| 久久久免费精品| 亚洲一区二区av| 欧美一区激情视频在线观看| 亚洲国产精品第一区二区三区| 久久久久久久久久久久久久久国产| 99久久久久免费精品国产| 熟女av一区二区| 在线观看亚洲专区| 狠狠人妻久久久久久综合麻豆| 久久天堂av综合合色| 最新欧美电影| 久久久久久久有限公司| 亚洲午夜黄色| 天天av天天操| 中文字幕一区二区三区不卡在线| 波多野结衣 久久| 亚洲精品成a人在线观看| 深夜国产在线播放| 成人午夜一级二级三级| 久久性感美女视频| 簧片在线免费看| 久久色在线视频| 中文字幕一区二区三区精品| 精品嫩草影院久久| av网站导航在线观看免费| 国产一区二区丝袜高跟鞋图片| 成人同人动漫免费观看| 亚洲精品乱码久久久久久自慰| 99久久免费视频.com| 日本少妇bbwbbw精品| 精品国产一二三区| 久草在线视频资源| 国产精华一区二区三区| 欧美激情日韩| 亚洲av午夜精品一区二区三区| 一区二区三区久久| 亚洲av综合色区无码一区爱av| 久热在线中文字幕色999舞| 高清在线一区二区| 国产日产欧美一区二区| 国产一区二区三区免费观看| av激情在线观看| 日韩视频不卡中文| a国产在线视频| 久久精品日产第一区二区三区精品版| 99精品视频免费观看| 三级电影在线看| 色综合久久天天综合网| 午夜在线视频| 中文字幕综合一区| 日韩成人一区| 日韩中文在线字幕| 国产成人aaaa| 日韩三级免费看| 亚洲美女在线观看| 3d欧美精品动漫xxxx无尽| 日本10禁啪啪无遮挡免费一区二区| 日韩电影在线一区二区三区| 欧美福利第一页| 91麻豆精品国产91久久久久久| 18视频在线观看| 国模一区二区三区私拍视频| 免播放器亚洲| 手机av在线不卡| 欧美一级专区免费大片| a毛片不卡免费看片| 日韩高清国产精品| 激情成人午夜视频| 国产无套内射又大又猛又粗又爽| 精品五月天久久| 青青在线精品| 久久艹国产精品| 国产欧美在线观看一区| 国产视频一区二区三| 国内精品小视频在线观看| 精品国产一区一区二区三亚瑟| 久久久九九九热| 欧美日韩激情网| 在线观看二区| 国产精品有限公司| 免费成人小视频| 国产精品111| 中文字幕日韩有码| 久久中文资源| 国产美女18xxxx免费视频| 同产精品九九九| 在线看的av网站| 精品福利影视| 极品少妇xxxx精品少妇偷拍| 久久一区二区三区视频| 久久人人爽亚洲精品天堂| 欧美精品中文| 亚洲天堂网站在线| 在线精品视频免费观看| av在线网页| 99精品视频网站| 久久精品一区蜜桃臀影院| 人妻偷人精品一区二区三区| 国产日韩欧美成人| 久久免费黄色| 国产黄色片视频|