精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品少妇一区二区三区日产乱码| 久久久国际精品| 欧美理论电影在线观看| 婷婷五月精品中文字幕| 男人皇宫亚洲男人2020| 亚洲婷婷国产精品电影人久久| 91大片在线观看| 可以免费在线观看的av| 午夜精品久久久久久久四虎美女版| 日韩精品中文字幕一区二区三区| 国产极品美女高潮无套久久久| 黄色网在线免费观看| 99视频超级精品| 成人一区二区电影| 亚洲另类在线观看| 欧美激情aⅴ一区二区三区| 亚洲欧洲视频在线| 野战少妇38p| 国产激情精品一区二区三区| 91久久精品一区二区| 欧美交换配乱吟粗大25p| 成人动漫在线播放| 91丝袜高跟美女视频| av观看久久| 国产免费无遮挡| 日本不卡123| 日本中文字幕久久看| 国产精彩视频在线| 欧美一区91| 日韩亚洲欧美中文高清在线| 91精品人妻一区二区三区| 国产人妖ts一区二区| 日韩欧美国产精品| 亚洲一区精品视频在线观看| 日本在线中文字幕一区二区三区| 精品久久久久久久久久久久久久| 成人av在线不卡| 伊人福利在线| 亚洲精品乱码久久久久久黑人| 日韩欧美激情一区二区| 免费人成在线观看网站| 99视频超级精品| 精品伦精品一区二区三区视频| a在线观看视频| 国产麻豆午夜三级精品| 91美女片黄在线观| 国产乱码精品一区二区| 久久aⅴ国产欧美74aaa| 成人精品久久久| 国产又爽又黄免费软件| 国产一区二区不卡老阿姨| 成人在线视频网站| 国产高清在线免费| 国产成人精品免费视频网站| 91中文字精品一区二区| 黄色av中文字幕| 99久久精品99国产精品| 久久青青草原| 国产日韩精品在线看| 国产精品网站在线观看| 一区二区三区四区国产| 黄色网在线免费看| 亚洲国产一区二区视频| 国产极品尤物在线| 成人小电影网站| 欧美少妇一区二区| 特级黄色片视频| 粉嫩久久久久久久极品| 精品无码久久久久久国产| 久久av无码精品人妻系列试探| 国产欧美日韩一区二区三区四区| 国产一区二区三区丝袜| 国产黄色的视频| 91久久视频| 国产91在线播放精品91| 国产精品久久久久久久成人午夜| 国产精品一二三四| 精品视频导航| 免费在线看黄网站| 亚洲一区二区三区精品在线| 能在线观看的av网站| 国产亚洲精彩久久| 欧美videos大乳护士334| 国产精品无码一区二区三区免费| 成人情趣视频网站| 日韩一区二区av| www.av视频在线观看| 久久国产毛片| 91pron在线| 男女视频在线观看| 亚洲视频一区二区在线| 免费无码不卡视频在线观看| 成人在线观看免费播放| 日韩精品专区在线影院重磅| 中文精品在线观看| 亚洲欧美网站在线观看| 欧美一级成年大片在线观看| 国产又色又爽又黄又免费| 91农村精品一区二区在线| 一区一区视频| 欧美momandson| 日韩午夜激情电影| 制服 丝袜 综合 日韩 欧美| 欧美高清不卡| 国产精品福利在线| 少妇一级淫片免费看| 国产精品久久久久久久久快鸭 | 天天干天天色天天| 国产精品久久久久久久久免费丝袜 | 一本之道在线视频| 国产日产精品一区二区三区四区的观看方式 | 国产欧美一区二区色老头| 成人免费视频网址| 国产特黄在线| 精品美女久久久久久免费| 国产精欧美一区二区三区白种人| 一本色道久久综合亚洲精品酒店| 欧美激情2020午夜免费观看| 亚洲一区二区三区高清视频| 久久久午夜电影| 国产无限制自拍| 日韩中文字幕| 久久亚洲精品一区| 最新在线中文字幕| 国产天堂亚洲国产碰碰| 日韩av综合在线观看| 亚洲福利合集| 久热在线中文字幕色999舞| 中文字幕一级片| 国产三级三级三级精品8ⅰ区| 自拍日韩亚洲一区在线| 91精品国产乱码久久久竹菊| 久久av中文字幕| 国产又粗又猛又色又| 亚洲国产精品二十页| 欧美一级片中文字幕| 亚洲电影一级片| 情事1991在线| 激情福利在线| 色播五月激情综合网| 亚洲国产av一区| 久久性色av| 日本一区二区精品视频| 88xx成人永久免费观看| 亚洲社区在线观看| 黄色一级视频免费看| 久久久久久久久久美女| 免费男同深夜夜行网站| 精品午夜久久| 国产精品美女免费| 日韩专区在线| 91精品福利在线一区二区三区| 国产高潮流白浆| 国产成人啪免费观看软件 | 性网站在线观看| 日韩亚洲欧美高清| 久久久久国产精品夜夜夜夜夜| 国产精品一级黄| 欧美精品一区二区三区三州| 日韩大片在线免费观看| 奇米四色中文综合久久| 岛国大片在线观看| 911精品国产一区二区在线| 538精品在线视频| 高清不卡一区二区| 精品欧美一区免费观看α√| 精品国产网站| 亚洲一区二区中文字幕| aa级大片免费在线观看| 亚洲免费av电影| 一区二区日韩视频| 亚洲一二三区视频在线观看| 国产伦精品一区二区三区妓女 | 亚洲美女毛片| 日韩av一级大片| 亚洲男女网站| 久久久亚洲成人| 黄色av网站在线| 91麻豆精品91久久久久久清纯| 免费一级片视频| 91麻豆免费在线观看| 色免费在线视频| 欧美日韩蜜桃| 日韩精品资源| 日韩区一区二| 国产999精品久久久影片官网| 免费在线观看av| 亚洲精品720p| 一级特黄色大片| 亚洲.国产.中文慕字在线| 一区二区三区在线观看免费视频| 国产精品88av| 黄色片在线免费| 好看的亚洲午夜视频在线| 日本高清一区| 中文字幕一区二区三区中文字幕 | 国产亚洲一区二区三区| 欧美精品 - 色网| 亚洲自拍另类| 中国黄色录像片| 精品欧美久久| 精品免费一区二区三区蜜桃| 在线高清欧美| 日韩**中文字幕毛片| 超黄网站在线观看| 色噜噜亚洲精品中文字幕| 亚洲av片在线观看| 日韩欧美一区二区三区在线| 午夜一区二区三区四区| 精品国产老师黑色丝袜高跟鞋| 亚洲天堂一级片| 国产亚洲欧美一区在线观看| 妖精视频一区二区| 国产精品91一区二区| av免费一区二区| 日日欢夜夜爽一区| 国产91在线免费| 亚洲黄色成人| 欧美黑人在线观看| 久久久久久久久久久妇女| 日韩欧美亚洲日产国| 无码日韩精品一区二区免费| 国产91社区| 一区二区三区日本视频| 国产精品普通话| 日本精品不卡| 欧美一级免费看| 成年人黄色大片在线| 午夜精品久久久久久久99热浪潮| 影音先锋在线视频| 蜜臀久久99精品久久久久久宅男| 日本在线免费看| 在线视频欧美性高潮| www.国产精品.com| 伊人一区二区三区久久精品| 国产在线观看免费网站| 亚洲视频一区二区三区| 日产精品久久久久久久性色| 日韩精品中文字幕久久臀| 西西人体44www大胆无码| 亚洲第一福利在线观看| 人妻丰满熟妇av无码区hd| 亚洲精品一区二区三区精华液| 不卡视频免费在线观看| 精品国产精品一区二区夜夜嗨| www久久久com| 亚洲第一精品自拍| 五月激情婷婷网| 亚洲欧美国产日韩天堂区| 免费在线毛片| 日韩在线观看免费网站| 欧美天天影院| 欧美另类在线播放| 成年男女免费视频网站不卡| 欧美资源在线观看| 怡红院成人在线| 成人精品一区二区三区| 国产亚洲观看| 国产精品一区二区三区观看 | 日韩经典第一页| 国产精品一二三区视频| 日韩中文字幕精品| av中文字幕在线观看| 高清欧美电影在线| 亚洲校园激情春色| 91精品久久久久久久久| 1313精品午夜理伦电影| 久久精品人成| 欧美疯狂party性派对| 肉大捧一出免费观看网站在线播放 | 欧美日韩在线免费播放| 精品一区二区日韩| 麻豆短视频在线观看| 久久久久久久电影| 神马久久精品综合| 精品国产91久久久久久| japanese国产在线观看| 日韩一区二区三区免费看| 四虎影院在线域名免费观看| 中文字幕亚洲国产| av丝袜在线| 国产精品久久久亚洲| 精品视频在线播放一区二区三区| 精品高清视频| 午夜激情久久| 日韩欧美视频网站| 狠狠色丁香婷婷综合久久片| 韩国无码一区二区三区精品| 国产精品高潮呻吟| 国产手机在线视频| 欧美精品久久99久久在免费线| 欧美一级特黄aaaaaa| 最近2019中文字幕第三页视频| 国产蜜臀在线| 中文字幕免费在线观看视频| 久久不见久久见免费视频7| 亚洲激情图片| 91久久综合| 999久久久精品视频| 久久亚洲精品小早川怜子| 少妇人妻丰满做爰xxx| 色婷婷久久99综合精品jk白丝| 99国产精品99| 国产一区二区三区日韩欧美| 99riav视频在线观看| 国产在线视频一区| 蜜臀91精品国产高清在线观看| 国产精品av免费观看| 麻豆成人av在线| 欧美 变态 另类 人妖| 亚洲专区一二三| 国产一区二区三区在线观看| 国产午夜精品视频| 极品在线视频| 国产成人亚洲欧美| 一本精品一区二区三区| 青青在线免费观看视频| av在线一区二区| 国产极品在线播放| 欧美tk—视频vk| 中文在线字幕免费观看| 91精品国产综合久久香蕉| 欧美日韩精品一区二区视频| 动漫av网站免费观看| www.欧美.com| 黄色一级片免费看| 日韩经典第一页| 亚洲国产欧美日本视频| 久久久免费看| 在线亚洲国产精品网站| 视频免费在线观看| 亚洲高清三级视频| 丰满人妻一区二区三区免费视频 | 日韩一级免费观看| 免费日本一区二区三区视频| 国产日韩在线视频| 日韩理论在线| 中文字幕中文在线| 中文字幕五月欧美| 国产精品久久久久久无人区| 久久久91精品国产一区不卡| 婷婷久久综合九色综合99蜜桃| 一区国产精品| 国产在线精品国自产拍免费| 动漫性做爰视频| 日韩欧美一级在线播放| 青青草原国产在线| 国产精品毛片va一区二区三区| 激情欧美日韩| 亚洲永久精品ww.7491进入| 黄色成人av网| 久草视频在线看| 国产精品亚洲美女av网站| 国产精品精品国产一区二区| 日本美女久久久| 亚洲第一成人在线| 日韩a在线观看| 国产精品第3页| 先锋资源久久| 国产艳妇疯狂做爰视频| 欧美性猛交xxxxx水多| www 日韩| av在线亚洲男人的天堂| 国产精品日本| 丁香激情五月少妇| 欧美一级在线视频| 是的av在线| 亚洲精品一品区二品区三品区 | 91最新在线视频| 国产一区二区高清不卡| 爽爽淫人综合网网站| 三级黄色在线观看| 精品99999| 另类中文字幕国产精品| 亚洲国产精品影视| 波多野结衣一区二区三区| 日韩 国产 欧美| 久久av资源网站| 亚洲美女久久| 在线观看日本www| 狠狠久久亚洲欧美专区| 日本黄色片在线观看| 精品免费一区二区三区蜜桃| 另类的小说在线视频另类成人小视频在线 | 日韩av片网站| 亚洲一区二区三区国产| 福利在线视频导航| 国产精品毛片一区视频| 美女诱惑一区二区| 日本网站在线免费观看| 伊人久久免费视频| 欧美日韩看看2015永久免费 | 狂野欧美xxxx韩国少妇| 日本不卡在线观看视频| 亚洲色欲色欲www在线观看| 午夜国产在线视频| 亚洲永久免费观看| 日本中文字幕一区二区有限公司| 国产在线拍揄自揄拍无码视频| 在线观看欧美成人|