±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½²½âÁË·É¿ØÈí¼þһЩÈí¼þ¡¢Ëã·¨²¿·Ö½øÐÐÌÖÂÛ
,¸ü¶àÄÚÈÝÇë¿´È«ÎÄ¡£
À´×ÔÓÚ΢ÐÅAuscor,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
1 ·É¿ØÈí¼þµÄ»ù±¾Ä£¿é
ÎÞÈË»úÄܹ»·ÉÐÐÖ÷ÒªÊÇÒÀ¿¿´«¸ÐÆ÷ϵͳ»ñȡλ×ËÐÅÏ¢²¢·´À¡µ½Î¢´¦ÀíÆ÷½øÐпØÖÆÏµÍ³µÄÔËËã¡£ËùÒÔ·É¿ØÈí¼þÉè¼ÆÖ÷Òª¸ºÔð´î½¨ºÏÀíÈí¼þÁ÷³Ì£¬Ê¹¸÷¹¦ÄÜÄ£¿éе÷ÓÐЧµÄ¹¤×÷¡£
Ò»¸ö·É¿ØÏµÍ³µÄ»ù±¾¹¤×÷Ö÷ÒªÓУº
1¡¢CPU½ÓÊÕÒ£¿ØÆ÷µÄ²Ù×÷Ö¸ÁîºÍ´«¸ÐÆ÷Ðźţ»
2¡¢´«¸ÐÆ÷µÄÊý¾Ý´¦ÀíºÍÊý¾ÝÈÚºÏËã·¨ÔËË㣬µÃµ½Î»Öá¢×Ë̬ÐÅÏ¢£»
3¡¢¸ù¾Ý¿ØÖÆÖ¸ÁîÍê³ÉÏàÓ¦µÄ¿ØÖÆÆ÷£¨×Ë̬¡¢Î»Ö㩼ÆË㣬µÃ³ö¿ØÖÆÁ¿²¢Êä³öµ½µç»úÇý¶¯£»
2 Èí¼þÉè¼Æ·½·¨µÄÌÖÂÛ
¸Õ½Ó´¥·É¿ØµÄʱºò£¬ÊµÑéÊÒÔÚÉè¼ÆÖ®³õ£¬ÎªÁË·½±ã¿ì½Ý£¬Èí¼þϵͳµÄ±àд²ÉÓÃǰºǫ́²Ù×÷µÄ·½Ê½¡£Õâ¸ö·½Ê½µÄÓ¦ÓóÌÐòÊÇÔÚ·ÅÔÚmianÖ÷º¯ÊýÀïÃæÎÞÏÞÑ»·£¬µ÷ÓÃÏàÓ¦µÄ´¦Àí×Óº¯Êý¡£Õâ³ÆÎªºǫ́³ÌÐò¡£¶øÇ°Ì¨³ÌÐòÖ¸µÄ¾ÍÊÇÖжϳÌÐò´¦ÀíÒì²½´¥·¢Ê¼þµÄ³ÌÐò¡£¹Êǰ̨³ÌÐò³ÆÎªÖжϼ¶³ÌÐò£¬¶øºǫ́³ÌÐò³ÆÎªÈÎÎñ¼¶³ÌÐò¡£Òò´ËÓÐЩ¹Ì¶¨ÖÜÆÚÖ´ÐеÄÈÎÎñ¶¼Òª¿¿ÖжϷþÎñ³ÌÐòÀ´Íê³É£¬ÒÔ±£Ö¤Ê±¼äµÄ¾«È·ÐÔ¡£µ«ÊÇÔÚÖжϴ¦Àí³ÌÐòÖÐÖ»±ê¼ÇʼþµÄ·¢Éú£¬²»×öÈκδ¦Àí£¬×ª¶øÓɺǫ́ϵͳµ÷¶È´¦Àí£¬ÕâÊÇΪÁ˱ÜÃâÔÚÖжϳÌÐòÖ´ÐÐʱ¼ä¹ý³¤Ó°ÏìºóÐøºÍÆäËûÖжÏʼþ¡£
ÕâÖÖÉè¼Æ·½·¨µÄÓŵ㣺
1¡¢ÊµÏÖ¼òµ¥£¬ÌرðÊǶÔÓÚ±ÊÕßÕâÑùµÄ±à³ÌÔü£¬ÕÕ×Åstm32µÄ¿âº¯Êýд´úÂ룬Ҳ¿É¼òµ¥ÊµÏÖ£»
2¡¢ÀàËÆµ¥Æ¬»úµÄ±à³Ì£¬Ã»ÓÐOS£¬Òò´Ë¶ÔCPUµÄÐÔÄÜÒªÇó²»Ëã¸ß£¬²»Ì«¹Ø×¢ROM/RAM£»
3¡¢Èç¹ûÉè¼ÆµÃµ±£¬Ïà½ÏÓÚ´øOSµÄ·É¿Ø£¬ÏµÍ³ÔËÐиü¼ÓÎȶ¨£¬Ìý˵ºÜ¶à¹¤Òµ¼¶µÄ·É¿ØÊDz»´øOSµÄ£»
ȱµã£º
ÓÉÓÚÊÇÓÃÔÚ·ÉÐпØÖÆÏµÍ³ÖУ¬¶ÔÕû¸öϵͳµÄʵʱÐÔÓÐןܸߵÄÒªÇó£¬Èç¹ûÂß¼ºÍʱÐò³öÏÖÆ«²î£¬½«³öÏÖÎÞ·¨¹À¼ÆµÄÑÏÖØºó¹û¡£¶øÔÚ³õʼ¿ª·¢¹ý³ÌÖУ¬·¢ÏÖ²ÉÓôËǰºǫ́ϵͳ´øÀ´Á½´óÎÊÌ⣺
1¡¢Éè¼Æ²»µ±µÄ»°£¬±ÈÈçij¸öÖÜÆÚµÄº¯ÊýÖ´Ðг¬Ê±£¬ºóÃæËùÓеijÌÐò¶¼»áÊܵ½Ó°Ïì¡£Èç¹û·É¿Ø³ÌÐòÖ´ÐÐʱ¼ä±äµÃ²»¹»×¼È·£¬²»ÀûÓÚ¶Ô·ÉÐÐÆ÷µÄ¿ØÖÆ£¬ÑÏÖØÊ±·¢Éú·É»úʧ¿ØµÄÏÖÏó¡£
2¡¢ÒÆÖ²ÐÔºÍÀ©Õ¹ÐԲ¸øÕû¸ö³ÌÐòºóÐø¸Ä¶¯ºÍά»¤´øÀ´²»±ã£¬ÓÉÓÚ¸÷ÖÖÈÎÎñ¶¼ÊÇÏà¹ØµÄ×Óº¯Êý£¬ÍùÍùÒ»¸öÈÎÎñÐèÒªµ÷Óöà¸ö×Óº¯Êý¡£ÔÚ³ÌÐò¸Ä¶¯»òÕßά»¤µÄʱºò±äµÃ·Ç³£·±Ëö¸´ÔÓ¡£¾³£ÓÉÓÚºöÂÔijһϸ½Ú¶øµ¼Ö¹¦ÄÜÎÞ·¨ÊµÏÖ£¬×îºóµ¼Ö³ÌÐòµÄ¿É¶ÁÐÔ½µµÍ£¬²»ÀûÓÚËûÈË×ö³ÌÐòÐ޸ġ£
×î½ü¼¸ÄêÒ²½Ó´¥ÁËһЩ¿ªÔ´·É¿Ø£¬¿´ÁËÓйشøOSµÄ·É¿ØÉè¼Æ¡£ÕâÖÖÉè¼Æ·½·¨ÊÇÔÚijһ²Ù×÷ϵͳÉϽøÐжþ´Î¿ª·¢£¬OSͨ¹ýÒ»¸öÄں˵ĵ÷¶ÈÀ´¹ÜÀíCPU£¬Ê¹µÃËùÓеÄÄ£¿éÒ²¾ÍÊÇÈÎÎñ¶¼ÄÜÕý³£ÔËÐУ¬´ïµ½Ïà¶ÔÒâÒåµÄ¡°²¢ÐС±¡£Í¬Ê±²ÉÓûùÓÚÓÅÏȼ¶µÄ¿É°þ¶áÐÔµ÷¶ÈËã·¨À´±£Ö¤ÊµÊ±ÐÔ¡£RTOS
½«Ó¦ÓòãÈí¼þ·Ö³É¶à¸öÈÎÎñ£¬¼ò»¯ÁËÓ¦ÓÃÈí¼þµÄÉè¼Æ£¬Í¬Ê±Ê¹µÃ·ÉÐпØÖƵÄʵʱÐԵõ½±£Ö¤¡£
3 ÍêÕûµÄ·É¿ØÏµÍ³×é³ÉÄ£¿é
µ±Éè¼ÆÒ»¸öÉÌÒµ·É¿ØµÄÈí¼þʱ£¬¾Í²»½ö½öÊÇÈ÷ɻú·ÉÆðÀ´ÄÇô¼òµ¥ÁË£¬Ò²¾ÍÊÇ˵Èí¼þÄ£¿é³ýÁË»ù±¾ÒªËØÍ⣬»¹ÐèÓÐÆäËûÀ©Õ¹£¬ÈçÏÂͼËùʾ¡£

4 ·É¿ØÊý¾ÝÁ÷·ÖÎö
µ±ÊìϤÁË·É¿ØÏµÍ³Öг£ÓõÄÈí¼þÄ£¿é£¬ÄÇÕâЩģ¿é»¥ÏàÖ®¼äÓÖÊÇÔõÑùµÄ¹ØÏµ£¿ÓÖÊÇÈçºÎ»¥ÏàͨÐÅ£¬¸÷×ÔÐèҪʲôÊý¾ÝÀ´Íê³É·ÉÐÐÈÎÎñ£¿
ÒÔpixhawk·É¿ØµÄÔÉú¹Ì¼þΪÀý£¬ÈçÏÂͼËùʾ¡£ÕâͼÊǺÜÔçÆÚµÄ´úÂë¼Ç¼ÏÂÀ´µÄ£¬Óë×îеĴúÂëÏà±È£¬ÓÐЩÎó²î£¬²»¹ý²î²»¶à£¬ÄܽâÊÍÎÊÌ⣬ËùÒÔ±ÊÕßÀÁµÃ¸üУ¬ÖØÐ»ͼÁË¡£

5 ʾÀý·ÖÎö
ÕÆÎÕÁËÒÔÉÏËùÃèÊöµÄ¼¸¸ö֪ʶµã£¬ÕâÑù»ù±¾ÉÏÔÚ³õ´ÎÔĶÁÒ»·Ý·É¿Ø´úÂëʱ£¬ÄÜÓÐÆðÂëµÄÈÏÖªÁË¡£ÏÂÃæ¼òµ¥½éÉÜÁ½¿î¿ªÔ´µÄ·É¿Ø´úÂ룬¶¼ÊÇÍøÉÏÕҵĴúÂ룬Ö÷Òª¿´ÏÂÈí¼þ¼Ü¹¹¡£
5.1 ºãÍØ¿ªÔ´·É¿Ø
»ùÓÚMDKµÄ¿ª·¢»·¾³£¬Ê¹ÓÃCÓïÑÔ£¬»ùÓÚSTM32µÄ¹Ù·½¿â¡£
´úÂë½á¹¹£º

STARTUPCODE£ºstm32µÄÆô¶¯Îļþ£»
StdPeriph_Driver£º»ùÓÚ3.5°æ±¾µÄ¿âº¯ÊýµÄÇý¶¯Îļþ£»
USB-FS-Device_Driver£ºUSBÉ豸Çý¶¯Îļþ£»
usb_virture_com£ºUSBµÄ°å¼¶Ö§³ÖÇý¶¯£»
Driver£º°å¼¶Çý¶¯²ã£¬°üº¬Ò»Ð©×ÜÏߺÍÍâÉèµÄÇý¶¯³ÌÐò£»
Modules£º´«¸ÐÆ÷Ä£¿éµÄÇý¶¯³ÌÐò£»
Algorithm£ºËã·¨³ÌÐò£¬°üº¬Â˲¨¡¢Êýѧ¿âµÈ£»
Function£º·ÉÐÐÓ¦Óò㣬¹Ø¼üÄ£¿é£¬±ÈÈç×Ë̬¹À¼Æ¡¢×Ë̬¿ØÖƵȣ»
User£ºÖ÷³ÌÐòºÍÖжÏÓ¦ÓóÌÐò£»
ANO_DT£ºÖ§³ÖÄäÃûµØÃæÕ¾ÐÒ飻
Heigh£º¸ß¶È¿ØÖƳÌÐò£»
Õû¸ö´úÂëµÄÄ£¿é»¯·Ç³£Ï¸Ö£¬±È½ÏÇåÎú¡£
´úÂëÉè¼Æ¾ÍÊÇÇ°ÃæËù½²µÄÂã»ú´úÂëµÄÒ»°ãʵÏÖ·½·¨¡£
ÏÈ¿´mainÎļþ£º

·Ç³£¼òµ¥£¬ÉÏµç½øÐи÷ÖÖ³õʼ»¯£¬È»ºó´óÑ»·£¬Ñ»·Ö´ÐÐÈÎÎñµ÷¶È¡£
ÏÂÃæ¿´ÏÂloopµÄº¯ÊýÄÚÈÝ¡£

½«Õû¸ö·É¿Ø´úÂë·Ö³ÉÁ˼¸¸öÖÜÆÚ·Ö±ðΪ5ms£¬10ms£¬25ms¡¢50msºÍ100msµÄÈÎÎñ¡£¶øÃ¿¸öÈÎÎñµÄʱ¼ä±êÖ¾flagÊÇÓÉÒ»¸öʱ¼äƬº¯Êý½øÐйÜÀíµÄ¡£ÉèÁËÒ»¸ötick½ÚÅÄ£¬2.5msÒ»´Î£¬ËùÒÔ±ÈÈç¼ÆÊý´ïµ½2´Î£¬Ôò5msµÄ¶¨Ê±ÈÎÎñ¼´¿ÉÖ´ÐС£

¶øÕâ¸öʱ¼äƬº¯ÊýÊÇÒ»¸ö¶¨Ê±Öжϣ¬Ã¿¸ô2.5msÖ´ÐÐÒ»´Î¡£

ÕâÖÖ³ÌÐòÉè¼Æ·½·¨ÈçÏÂͼËùʾ¡£¶¨Ê±ÖжϵÄÓ°ÏìÖ»ÔÚÈÎÎñµ÷¶ÈÄ£¿éÀïÆð×÷Óã¬ÒÀ´ÎÈò»Í¬µÄÈÎÎñ°´²»Í¬µÄÖÜÆÚ½øÐÐÖ´ÐС£Òª×¢ÒâµÄÊÇËùÉè¼ÆµÄÿ¸öÈÎÎñÔËÐÐʱ¼ä²»Äܳ¬¹ýÉ趨µÄÖÜÆÚ¡£

±ÊÕßÒ²¿´Á˹úÄÚÓÐÃûµÄÄäÃû·É¿Ø£¬Ò²ÊÇͬÑùµÄµ÷¶ÈÉè¼Æ·½·¨£¬Áí¿ªÔ´ardupilot·É¿Ø£¬ÒòÀúÊ·ÔÒò£¬ÊǼ̳ÐAPM·É¿Ø¶øÀ´£¬Ò²ÊDzÉÓÃÕâÖÖÀàOSµÄαµ÷¶ÈÆ÷·½Ê½£¬´úÂëÈ«²¿Ë³ÐòÖ´ÐУ¬¸ù¾Ý¶¨Ê±µÄ¼ÆÊý±ê־ȥ·Ö±ð°²ÅÅ·É¿ØÈÎÎñ¡£
5.2 PX4·É¿Ø - PixhawkÔÉú¹Ì¼þ
¿ªÔ´PX4·É¿ØÏà¶Ô¸´ÔÓ¶àÁË£¬ºÜ¶àÈí¼þµÄϸ½Ú±ÊÕßÒ²²»ÉõÁ˽⣬ËùÒԾͼòµ¥ÃèÊöÏ¡£
PX4·É¿Ø´ÓÈí¼þ¼Ü¹¹ÉÏ¿ÉÒÔ·ÖΪËIJ㡣ÔÚÿһ²ãÀ¸÷¸öÇý¶¯³ÌÐò»òÉϲãµÄ¿ØÖÆ/¹À¼ÆËã·¨¶¼ÊÇÒ»¸ö¶ÀÁ¢Ä£¿é£¬Äܹ»ÔÚÔËÐÐÆÚ¼ä»¥ÏàͨÐÅ¡£ÕâÖÖÄ£¿é»¯µÄÉè¼Æ²»½öÓÐÖúÓÚÖ§³Ö¸ü¶à»úÐÍ(ÒòΪ²»´æÔÚÌØ¶¨»úÐ͵ÄÖ÷Ñ»·)£¬Í¬Ê±Ê¹µÃ´úÂë¾ßÓи߶ȵĿÉÒÆÖ²ÐÔ¡£
1¡¢ Ó¦Óò㣺¸Ã²ãÊÇÕû¸ö·É¿ØÏµÍ³ÔËÐеĺËÐÄ¡£·É¿ØÈÕ³£·ÉÐÐËùÓõ½µÄÄ£¿é»ù±¾É϶¼ÔÚÕâ²ã£¬°üÀ¨×Ë̬¿ØÖÆ£¬×´Ì¬¹À¼Æ£¬µ¼º½Ä£¿éµÈµÈÀ´Íê³É¶àÐýÒíºÍ¹Ì¶¨ÒíÍêÈ«×ÔÖ÷µÄº½µã·ÉÐС£Ó¦Óòã¿ÉÒÔʹÓÃÆäËûµÄ¿ØÖÆÈí¼þ£¬ÈçAPM:Plane¡¢APM:Copter£¬µ«±ØÐëÔËÐÐÓÚÖмä²ãÖ®ÉÏ¡£
2¡¢ Öмä²ã£º ͨѶµÄÖмä²ãÔËÐÐÓÚ²Ù×÷ϵͳ֮ÉÏ£¬ÌṩÉ豸Çý¶¯ºÍÒ»¸ö΢¶ÔÏóÇëÇó´úÀí£¨micro object
request broker £¬uORB)ÓÃÓÚ·É¿ØÉÏÔËÐеĵ¥¸öÈÎÎñÖ®¼äµÄÒ첽ͨÐÅ¡£
3¡¢ NuttX²Ù×÷ϵͳ²ã£ºÌṩ¸øÓû§²Ù×÷»·¾³£¬½øÐеײãµÄÈÎÎñµ÷¶È¡£
4¡¢ µ×²ãÇý¶¯²ã£º ÌṩϵͳÔËÐÐËùÐèÒªµÄÓ²¼þÇý¶¯£¬ÈçһЩ´«¸ÐÆ÷¡¢Ö´ÐÐÆ÷µÈ¡£

°åÔØ³ÌÐòÄ£¿é£º

uorbͨÐŹ¦ÄÜÃèÊö
ÔÚ·É¿ØÏµÍ³ÖУ¬Ó¦ÓòãËùÓеŦÄܱ»¶ÀÁ¢ÒÔ½ø³ÌÄ£¿éΪµ¥Î»½øÐÐʵÏÖ²¢¹¤×÷£¬¶ø½ø³Ì¼äµÄÊý¾Ý½»»¥¾ÍÓÉÎªÖØÒª¡£ÎªÁËÈ·±£Í¨Ñ¶·ûºÏʵʱ¡¢ÓÐÐòµÄÌØµã£¬ÐèÒªÒ»ÖÖ°²È«µÄͨѶ»úÖÆ¡£Px4·É¿ØÏµÍ³²ÉÓÃuORBͨѶ·½Ê½¡£
uORB(Micro Object Request Broker£¬Î¢¶ÔÏóÇëÇó´úÀíÆ÷)ÊǷdz£ÖØÒªÇҹؼüµÄÒ»¸öÄ£¿é£¬Ëü¼ç¸ºÁËÕû¸öϵͳµÄÊý¾Ý´«ÊäÈÎÎñ£¬ËùÓеĴ«¸ÐÆ÷Êý¾Ý¡¢GPS¡¢PPMÐźŵȶ¼Òª´ÓоƬ»ñÈ¡ºóͨ¹ýuORB½øÐд«Êäµ½¸÷¸öÄ£¿é½øÐмÆËã´¦Àí¡£Êµ¼ÊÉÏuORBÊÇÒ»Ì×¿ç½ø³ÌµÄIPC£¨Inter
Process Communication£©Í¨Ñ¶Ä£¿é¡£
uORBµÄ·¢²¼-¶©ÔÄÉè¼ÆÄ£Ê½£¨publish¨Csubscribepattern£©
·É¿ØÏµÍ³ÊÇ»ùÓÚNuttXʵʱARMϵͳ£¬¶øuORB¶ÔÓÚNuttX¶øÑÔ£¬Ëü½ö½öÊÇÒ»¸öÆÕͨµÄÎļþÉ豸¶ÔÏó£¬Õâ¸öÉ豸֧³ÖOpen¡¢Close¡¢Read¡¢Write¡¢IoctlÒÔ¼°Poll»úÖÆ¡£Í¨¹ýÕâЩ½Ó¿ÚµÄʵÏÖ£¬uORBÌṩÁËÒ»Ìס°µã¶Ô¶à¡±µÄ¿ç½ø³Ì¹ã²¥Í¨Ñ¶»úÖÆ£¬¡°µã¡±Ö¸µÄÊÇͨѶÏûÏ¢µÄ¡°Ô´¡±£¬¡°¶à¡±Ö¸µÄÊÇÒ»¸öÔ´¿ÉÒÔÓжà¸öÓû§À´½ÓÊÕ¡¢´¦Àí¡£¶ø¡°Ô´¡±Óë¡°Óû§¡±µÄ¹ØÏµÔÚÓÚ£¬Ô´²»ÐèҪȥ¿¼ÂÇÓû§ÊÇ·ñ¿ÉÒÔÊÕµ½Ä³Ìõ±»¹ã²¥µÄÏûÏ¢»òʲôʱºòÊÕµ½ÕâÌõÏûÏ¢¡£ËüÖ»ÐèÒªµ¥´¿µÄ°ÑÒª¹ã²¥µÄÊý¾ÝÍÆË͵½uORBµÄÏûÏ¢¡°×ÜÏß¡±ÉÏ¡£¶ÔÓÚÓû§¶øÑÔ£¬Ô´ÍÆËÍÁ˶àÉٴεÄÏûÏ¢Ò²²»ÖØÒª£¬ÖØÒªµÄÊÇÈ¡»Ø×îеÄÕâÌõÏûÏ¢¡£
uORBʵ¼ÊÉÏÊǶà¸ö½ø³Ì´ò¿ªÍ¬Ò»¸öÉ豸Îļþ£¬½ø³Ì¼äͨ¹ý´ËÎļþ½Úµã½øÐÐÊý¾Ý½»»¥ºÍ¹²Ïí¡£

·É¿ØÖÐÿ¸ö½ø³Ì¶¼¿ÉÒÔͨ¹ýPublish/Subscribe£¨·¢²¼/¶©ÔÄ£©Ä£Ê½ÓëÆäËû½ø³ÌÒÔ¼°Çý¶¯½øÐÐÁ¬½Ó¡£ÒÔ´«¸ÐÆ÷Ó¦ÓóÌÐò·¢ËÍ´«¸ÐÆ÷Êý¾Ýµ½×Ë̬¹À¼ÆÓ¦ÓóÌÐòΪÀý¡£½ø³Ì£¨»òÕ߳ƽڵ㣩ͨ¹ýÃüÃûµÄ×ÜÏß½»»»µÄÏûÏ¢³ÆÖ®Îª¡°Ö÷Ì⡱£¬ÔÚϵͳÖУ¬Ò»¸öÖ÷Ìâ½ö°üº¬Ò»ÖÖÏûÏ¢ÀàÐÍ£¬ÀýÈ磺vehicle_attitude
Ö÷Ìâ´«Êä°üº¬×Ë̬½Ç£¨¹öת¡¢¸©ÑöºÍÆ«º½£©µÄÏûÏ¢¡£½Úµã¿ÉÒÔÔÚ×ÜÏß¡¢Ö÷ÌâÉÏ·¢²¼Ò»ÌõÏûÏ¢(Send data)
»òÕß¶©ÔÄ×ÜÏß¡¢Ö÷Ì⣨Receive Data£©¡£Í¨Ñ¶Ë«·½Ö®¼ä²¢²»ÖªµÀÔÚÓëËͨѶ£¬¿ÉÒÔ´æÔÚ¶à¸ö·¢²¼Õß»òÒ»ÌõÏûÏ¢Óжà¸ö¶©ÔÄÕߣ¬½ø³ÌµÄ·¢²¼ºÍ¶©ÔÄ¿ÉÒÔÔÚͬһʱ¼ä£¬Ö÷Ìâ¶ÔÏóÔÚ×ÔÉí״̬±ä»¯Ê±£¬»á֪ͨËùÓж©ÔÄÕß¶ÔÏó£¬Ê¹ËüÃÇÄܹ»×Ô¶¯¸üÐÂ×Ô¼ºµÄ״̬¡£ÕâÖÖÉè¼ÆÄ£Ê½¿ÉÒÔ·ÀÖ¹Ëø¶¨µÄÎÊÌ⣬³£ÓÃÓÚ»úÆ÷È˼¼Êõ¡£ÎªÁ˱£Ö¤¸ßЧ£¬Ò»Ìõ×ÜÏßÉÏʼÖÕÖ»ÓÐÒ»ÌõÏûÏ¢£¬²¢ÇÒ²»Ê¹ÓöÓÁдæ·Å¡£

Px4¹ÙÍø¸ø³öµÄ¼¸ÖÖ³£ÓÃͨѶ»úÖÆÊ±¼äÑӳٶԱȣº

uORBµÄʵÏÖλÓڹ̼þÔ´ÂëµÄsrc/modules/uORB/uORB.cppÎļþ£¬Ëüͨ¹ýÖØÔØCDev»ùÀàÀ´×éÖ¯Ò»¸öuORBµÄÉ豸ʵÀý¡£²¢ÇÒÍê³ÉRead/WriteµÈ¹¦ÄܵÄÖØÔØ¡£uORB
µÄÈë¿ÚµãÊÇuorb_mainº¯Êý£¬ÔÚÕâÀïËü¼ì²éuORBµÄÆô¶¯²ÎÊýÀ´Íê³É¶ÔÓ¦µÄ¹¦ÄÜ£¬uORBÖ§³Östart/test/statusÕâ3ÌõÆô¶¯²ÎÊý£¬ÔÚ·É¿ØÏµÍ³µÄrcSÆô¶¯½Å±¾ÖУ¬Ê¹ÓÃstart²ÎÊýÀ´½øÐгõʼ»¯£¬ÆäËû2¸ö²ÎÊý·Ö±ðÓÃÀ´½øÐÐuORB¹¦ÄܵÄ×Ô¼ìºÍÁгöuORBµÄµ±Ç°×´Ì¬¡£
ÔÚrcSÖÐʹÓÃstart²ÎÊýÆô¶¯uORBºó£¬uORB»á´´½¨²¢³õʼ»¯ËüµÄÉ豸ʵÀý£¬ ÆäÖеÄʵÏִ󲿷ֶ¼ÔÚCDev»ùÀàÍê³É¡£Í¨¹ýinitµ÷ÓÃÍê³ÉÉ豸µÄ´´½¨£¬½Úµã×¢²áÒÔ¼°ÅÉDzÀý³ÌµÄÉèÖõȡ£
ÏÂͼÊÇÒ»¸öÉ豸¶©ÔÄ/·¢²¼uorbÏûÏ¢µÄÁ÷³Ìͼ¡£

µ×²ãÇý¶¯ÖÐÀàµÄ¸ÅÄî
PX4Öв»ÉÙ³ÌÐòÊÇÓÃC++дµÄ£¬´óÁ¿Ê¹ÓÃÁËÀàµÄ¸ÅÄî¡£ÈçMPU6000Õâ¸öоƬ£¬ÓëSTM32µÄSPI½Ó¿ÚÏàÁ¬£¨¼¸¸ö´«¸ÐÆ÷¶¼ÊÇͨ¹ýͬһ¸öSPIÓëSTM32ÏàÁ¬£¬Ö»ÊÇÓÃCSÒý½ÅÀ´¼ÓÒ»Çø·Ö£©¡£ÔÚsrc/drivers/device/spi.cppÖж¨ÒåÁËSPIÀ࣬¶øÔÚMPU6000µÄÇý¶¯Ô´Îļþ£¨src/drivers/mpu6000/mpu6000.cpp£©ÖУ¬Ê¹ÓÃÁ˼̳еķ½·¨´´½¨ÁËmpu6000Àࣺ
class MPU6000 :public device::SPI¡£ÆäËû¼¸¸öÓëSPIÏàÁ¬µÄ´«¸ÐÆ÷Ò²ÊÇÈç´Ë½øÐгõʼ»¯¡£
ÓйØpx4·É¿ØµÄÈí¼þÉè¼Æ£¬¿ÉÒÔ¿´Ï¹ÙÍø¸ø³öµÄÂÛÎÄ£º
Lorenz Meier,Dominik Honegger and Marc Pollefeys.
PX4: A Node-Based Multithreaded OpenSource Robotics
Framework for Deeply Embedded Platforms, ICRA (Int.
Conf. onRobotics and Automation) 2015. (to appear)
6 ¼¸¸ö˼¿¼
·É¿ØÈí¼þÖÐÄÄЩÈÎÎñÓÅÏȼ¶¸ß£¿
ºÜÏÔÈ»¾ÍÊÇÇ°ÃæËù½²µÄ»ù±¾Ä£¿é£¬°üÀ¨Ò£¿ØÊäÈë¡¢´«¸ÐÆ÷Êý¾Ý¶ÁÈ¡¡¢×Ë̬¹À¼Æ/¿ØÖÆÕâÒ»Àà¡£µ±È»ÕâÒ²Éè¼Æµ½·É¿ØµÄ¸÷¸ö¿ØÖÆ»ØÂ·ËùÐèµÄ¸üÐÂËÙÂÊÎÊÌâµÈ£¬ºóÐø»áÏêϸ²ûÊöÏ·ɿØÖеĸ÷¸ö¿ØÖÆ»ØÂ·¡£¹ØÓÚÓÅÏȼ¶¿ÉÒԲο´px4·É¿Ø£º
1.£¨Öжϼ¶£©¿ìËÙ´«¸ÐÆ÷Çý¶¯³ÌÐò
2.¿´ÃŹ·/ϵͳ״̬¼à¿Ø
3.Çý¶¯Æ÷Êä³ö£¨PWMÊä³öÇý¶¯Æ÷Ị̈߳¬IOCOMMS·¢ËÍÃüÁîỊ̈߳©
4.×Ë̬¿ØÖÆÆ÷
5.¸üÐÂËÙÂÊÂýµÄ´«¸ÐÆ÷Çý¶¯³ÌÐò£¨²»ÄÜ×èÈû×Ë̬¿ØÖÆÆ÷£©
6.º½Â·/λÖÿØÖÆÆ÷
7.ĬÈÏÓÅÏȼ¶ - ͨÓÃÓû§´úÂ룬shellÃüÁîµÈ
8.ÈÕÖ¾¼Ç¼£¬²ÎÊýͬ²½³ÌÐò
9.¿ÕÏнø³Ì
·É¿ØÈí¼þµÄ¸üÐÂÖÜÆÚÉè¼Æ£¿
·É¿ØÖÐÓÐÁ½¸ö»ù±¾µÄ¼ÆÊ±£º¸üÐÂÖÜÆÚºÍÑÓ³Ù¡£ÒªÏë»ñµÃÁ¼ºÃµÄϵͳÐÔÄÜ£¬¾Í±ØÐë¼õÉÙÑÓ³Ù¡£Ò»°ãÇé¿öÏ£¬ÑÓ³ÙÉõÖÁ±È¸üÐÂÖÜÆÚ¸üÖØÒª¡ªÒòΪ´óÑÓ³Ù²úÉúÏàÒÆ¡£ÑÓ³ÙÔì³ÉµÄÏàÒÆ»áÈÃÄãÊä³ö´íÎóµÄ¿ØÖÆÁ¿¡£
ËùÒÔ·É¿ØÖУ¬³ýÁËÉè¼ÆÒ»¸ö¹Ì¶¨µÄ¸üÐÂÖÜÆÚ£¬»¹Ðè¹Ø×¢ÑÓ³Ù¡£Ò»¸ö¹Ì¶¨ÆµÂʵĿØÖÆÑ»·£¬ÓÐʱ»áÒòΪÑÓ³Ù£¬µ¼ÖÂÐÔÄܺܲ¾Ù¸öÀý×Ó£º¼ÙÉèÄãÒÔ100Hz²ÉÑùËÙÂʶÁÈ¡´«¸ÐÆ÷£¬×´Ì¬¹À¼ÆºÍ¿ØÖÆÆ÷Ò²¶¼ÊÇ100Hz¡£ÄÇÿһ²½ÊäÈëµÄ×î´óÑÓ³Ù/ÑÓ³ÙÊÇ10ms£¿
ÁíÍ⣬Èç¹û·Ö±ðÉè¼Æ3¸öÑ»·£¬´«¸ÐÆ÷¶ÁÈ¡£¬×´Ì¬¹À¼Æ£¬¿ØÖÆ»òÕß½«3Õß·ÅÔÚÒ»¸öÈÎÎñÑ»·ÀÓÐÊ²Ã´Çø±ð£¿
500hzµÄ¶ÁÈ¡Êý¾Ý£¬×´Ì¬¹À¼Æ£¬ÔÙ½øÐпØÖƺÍ500hz¶ÁÈ¡Êý¾Ý£¬×´Ì¬¹À¼Æ£¬250hz¿ØÖÆÁ½ÖÖ·½Ê½ÓÐÇø±ðÂð£¿Õâ3¸öÎÊÌ⣬Ŀǰ±ÊÕßҲûÓÐÈ·ÇеĴ𰸣¬Òò´Ë¾Í²»Ð´ÁË£¬Áô×÷´ó¼Ò˼¿¼£¬¿ÉÒÔ»¥ÏཻÁ÷¿´·¨¡£
²âÁ¿º¯ÊýÔËÐÐʱ¼ä£¿
ÔÚ·É¿ØËã·¨ÖУ¬ÐèÒªÓõ½¸üÐÂÖÜÆÚÕâ¸ö±äÁ¿£¬µ±È»£¬Èç¹ûËã·¨ÔËÐÐÊǹ̶¨ÖÜÆÚ£¬Ôò±äÁ¿µÄÖµ¾ÍÊÇËùÉ趨µÄÖÜÆÚ£¬»¹¿ÉÒÔ´úÂë×ÔÐвâÁ¿£¬ÈçÏÂËùʾ¡£

µ±È»£¬¶ÔËã·¨¶øÑÔ£¬²ÉÓù̶¨µÄ²ÉÑùÂÊ»¹ÊǼÆËã³öÀ´µÄ²ÉÑùÂÊ£¬¸öÈ˾õµÃÀíÂÛÉÏÀ´½²£¬¼ÆËã³öÀ´µÄ¸ü׼ȷ£¬Ó¦¸ÃÊǸüºÃ£¬µ±È»Èç¹û¹Ì¶¨µÄÖÜÆÚ²»³ö´í£¬Ó¦¸ÃÒ²ÎÞ´óµÄÓ°Ïì¡£
²âÁ¿¹Ì¶¨ÖÜÆÚ£¿
±ÊÕßÔø¾ÔÚ±àдÂã»ú·É¿Ø´úÂëʱ£¬ÏëÈ·ÈÏÏÂËùÉè¼ÆµÄ¹Ì¶¨ÖÜÆÚÊÇ·ñ׼ȷ£¬²ÉÓÃÁËÒ»¸ö±¿°ì·¨¡£ÔÚÖÜÆÚÀÅäÖÃÒ»¸öÊä³öÒý½Å£¬Ã¿Ö´ÐÐÒ»´Î£¬Òý½ÅµÄµçƽȡ·´£¬È»ºóÓÃʾ²¨Æ÷¹Û²ì²¨ÐΣ¬¿´ÏÔʾµÄÖÜÆÚÊÇ·ñÓëÉ趨µÄÒ»Ö£¬ÊÇ·ñ»á²¨¶¯±ä»¯¡£Èç¹û²¨¶¯±ä»¯ºÜ´ó£¬ËµÃ÷´úÂëÖÐÓÐÈÎÎñ³¬Ê±ÁË£¬Õû¸ö´úÂëÔËÐгö´í¡£ |