Ⅰ 關於linux系統搭建飛控系統時遇到的一堆紅字報錯的問題
你用的是python2.7?
這個報錯是安裝的時候請求超時
建議下載離線包 安裝
希望可以幫助你 請採納
Ⅱ 飛控能不能定位
飛控能定位。
GPS也定位了,數據也有了,這個信號也會通過一個編譯器在次編譯成一個電子信號傳給飛控,讓飛控知道自己所在的位置、任務的位置和距離、家的位置和距離以及當前的速度和高度
Ⅲ 如何使用「ArPilot-Arino-1.0.3-windows」編譯,上傳APM程序
APM飛控程序是開源的,我們可以對某一版本的APM飛控程序進行修改做二次開發。當對APM程序二次開發完成後就要將修改的APM程序編譯上傳到APM飛控板子中。下面就是介紹如何使用「ArPilot-Arino-1.0.3-windows」編譯、上傳APM程序。
1,下載APM飛控程序編譯環境(IDE)--「ArPilot-Arino-1.0.3-windows」,注意不要使用其他版本的Arino編譯環境。
2,下載一個APM飛控程序,例如:ArPlane-2.75。另外「ArPilot-Arino-1.0.3-windows」文件夾與飛控程序文件夾放在一個文件夾中,文件夾的命名最好都是用英文。
3,使用「ArPilot-Arino-1.0.3-windows」時,打開該文件夾,直接雙擊「arino」圖標使用,無需安裝。「ArPilot-Arino-1.0.3-windows」的設置:
tool-->board: Arino mega 2560 or mega ADK;
tool-->programmer: AVRISP mkII
ArPilot-->: HAL board: Arpilot mega 2.X(現在使用的APM2.0-2.5-2.6等)
File-->reference-->Sketchbook 選為要編譯的飛控程序文件夾,每次更改後點OK,並關掉Arino 1.0.3 再打開,這時再選File-->Sketchbook中一項進行編譯。
例如,對File-->Sketchbook中ArPlane進行編譯,點擊工具欄中「對號」圖標開始編譯,沒有錯誤大約1分鍾就能編譯結束。編譯完成之後將APM通過數據線連接到電腦上(編譯時就連接也可以),選擇Board-->serial-port 選擇APM的介面。之後點擊工具欄的「向右箭頭」圖標將編譯好的程序寫進APM,這樣就完成了一次對APM飛控程序的刷新。
現在的APM飛控程序不經刪減,編譯後的大小很容易超過248KB(256KB總內存-8KB的Bootloader佔用內存),當編譯後大於248KB時不能上傳到APM中否則會破壞APM的bootloader.
Ⅳ pix飛控測速度原理
多旋翼無人機也是由電機的旋轉,使螺旋槳產生升力而飛起來的。比如四旋翼無人機,當飛機四個螺旋槳的升力之和等於飛機總重量時,飛機的升力與重力相平衡,飛機就可以懸停在空中了。
對於PX4Firmware的調試,有別於傳統的單片機單步調試,沒有辦法模擬,因為是多線程程序,也沒有好的集成編譯環境。主要還是靠串口列印來調試數據。在Pixhawk飛控上有一個USB的介面,如果想要進入串口列印調試終端nsh,就必須拔掉SD卡,然後用USB口連接電腦,否則不能進入nsh終端。我們採用的開源無人機飛控硬體是pixhawk,相對來說這是一個比較穩定的版本,經過實際的飛行測試,效果比較理想。
FMU中集成了STM32F427處理晶元MPU6050三軸加速計和三軸陀螺儀、MS5611氣壓計、LSM303D加速度計和磁羅盤。以及豐富的匯流排介面,4路串口SPI、I2C、ADC介面等等。FMU採用的單片機STM32F427,主要負責對感測器的數據進行採集並進行姿態和位置解算,並通過經典PID控製程序輸出控制量到IO程序中,生成飛行控制量,進而控制飛機的飛行。
Ⅳ PIX飛控雙攝像頭設置
雙目攝像頭與樹莓派通過USB介面來連接
樹莓派和Pixhawk飛控通過串口來通信。
首先,給樹莓派燒寫系統。
使用命令 cd 進入/home/pi/Dvision 該路徑,輸入命令ls 命令查。
編譯應用程序:進入/home/pi/Dvision 目錄下,輸入make,即可,再輸入ls 命令,可以看到生成了DvisionDemo 應用程序,
運行應用程序:在/home/pi/Dvision 目錄下,輸入./DvisionDemo,即可運行程序,可以看到程序列印的距離信息。
樹莓派端程序基本完成設置。
Ⅵ 有沒有大神知道,開源APM飛控板用什麼編譯軟體,和下載軟體。急!!
pix兩平台apm移植固件px四原固件般apm用比較px四似乎linux環境發c基礎要數基礎控制理論基礎才能看懂面
Ⅶ 無人機與無人機地面站怎樣實現數據傳輸
地面站,就是在地面的基站,也就是指揮飛機的,地面站可以分為單點地面站或者多點地面站,像民航機場就是地面站,全國甚至全球所有的地面站都在時時聯網,它們能夠清楚的知道天上在飛行的飛機,並能時時監測到飛機當前的飛行路線,狀況,以及飛機的時時調度等。像我們用的無人機大部分都是單點地面站,單點地面站一般由一到多個人值守,有技術員,場務人員,後勤員,通信員,指揮員等人組成,像玩家一般都是一個人。
地面站設備組成一般都是由遙控器、電腦、視頻顯示器,電源系統,電台等設備組成,一般簡單的來說就是一台電腦(手機、平板),一個電台,一個遙控,電腦(手機、平板)上裝有控制飛機的軟體,通過航線規劃工具規劃飛機飛行的線路,並設定飛行高度,飛行速度,飛行地點,飛行任務等通過數據口連接的數傳電台將任務數據編譯傳送至飛控中,這里就有講到數傳電台,數傳電台就是數據傳輸電台,類似我們最和耳朵一樣,好比領導說今天做什麼任務,我們接受到任務並回答然後再去執行任務,執行任務的時候時實情況實時匯報給領導,這其中通信就是嘴巴和耳朵。
數傳電台就是飛機與地面站通信的一個主要工具,一般的數傳電台採用的介面協議有TTL介面、RS485介面和RS232介面,不過也有一些CAN-BUS匯流排介面,頻率有2.4GHZ、433MHZ、900MHZ、915MHZ,一般433MHZ的較多,因為433MHZ是個開放的頻段,再加上433MHZ波長較長,穿透力強等優勢所以大部分民用用戶一般都是用的433MHZ,距離在5千米到15千米不等,甚至更遠。最終達到的就是飛機與電腦間的通訊,電腦給飛機的任務,飛機實時飛行高度,速度等很多數據都會通過它來傳輸,以方便我們時時監控飛機情況,根據需要隨時修改飛機航向。
整套無人機飛控工作原理就是地面站開機,規劃航線,給飛控開機,上傳航線至飛控,再設置自動起飛及降落參數,如起飛時離地速度,抬頭角度(起飛攻角,也稱迎角),爬升高度,結束高度,盤旋半徑或直徑,清空空速計等,然後檢查飛控中的錯誤、報警,一切正常,開始起飛,盤旋幾周後在開始飛向任務點,執行任務,最後在降落,一般郊外建議傘降或手動滑降,根據場地選擇。飛機在飛行過程中如果偏離航線,飛控就會一直糾正這個錯誤,一直修正,直到復位為止。(俊鷹無人機)
Ⅷ 怎樣用eclipse編譯 pixhawk px4飛控源碼
在window->proferences的設置對 project不起作用需要在 project-> properties 中對 c/c++ make project 的 binary parse 進行設置到 win 下。
Ⅸ 如何用開源飛控Pixhawk進行二次開發
以下所描述的都是針對px4原生固件,此外,由於固件更新過於頻繁,本文描述的是15年7月的固件,主要是舉例,有改動的話,自己再研究研究吧(後面換cmake編譯方式了,改動蠻大)。
既然要做開發,第一步就是搭好開發環境,根據我的經驗,最好是在linux環境下編譯,這樣效率會很快,以前在windows下編譯,經常40分鍾以上,這樣就太影響開發了;
第二步,大概了解下固件的架構,
如果只涉及應用層的開發,那底層的nuttx系統就可以繞過去了,一般,最好先把uorb模塊的機制整明白就好了,從uorb入手,了解每個話題的來源以及作用,整理數據流,清楚每個模塊之間的關系即可,比如,要實現手動模式,哪些模塊互相交互,auto模式,又有哪些模塊起作用,
如果涉及相應演算法的開發,要學會定位到相應的演算法模塊,甚至具體到哪些代碼,比如,你想試驗你的姿態估計演算法,那你就將姿態估計模塊替換掉即可,不過相應的介面仍需要和px4環境一樣,以姿態估計為例,最後要發布你的vehicle_attitude話題,不然無法與其他模塊交互;
另外,不要試圖在代碼中找main函數,那是單片機思維,你只需看啟動腳本即可,\ROMFS\px4fmu_common\init.d\rcs;
第三步,針對你的具體情況,定位相應的模塊,進行精讀研究,雖然模塊基本是用C++寫的,但是不會C++也沒關系,畢竟又不是讓你寫,本人倒目前為止,也不會C++,配合注釋,看明白就好了,比如,整理下mavlink的控制流程;
px4原生固件模塊列表:
系統命令程序
mavlink –通過串口發送和接收mavlink信息
sdlog2 –保存系統日誌/飛行數據到SD卡
tests –測試系統中的測試程序
top –列出當前的進程和CPU負載
uORB – 微對象請求代理器-分發其他應用程序之間的信息
驅動
mkblctrl–blctrl電子模塊驅動
esc_calib –ESC的校準工具
fmu –FMU引腳輸入輸出定義
gpio_led –GPIOLED驅動
gps –GPS接收器驅動
pwm –PWM的更新速率命令
sensors –感測器應用
px4io –px4io驅動
uavcan –uavcan驅動
飛行控制的程序
飛行安全和導航
commander –主要飛行安全狀態機
navigator –任務,失效保護和RTL導航儀
估計姿態和位置
attitude_estimator_ekf –基於EKF的姿態估計
ekf_att_pos_estimator –基於EKF的姿態和位置估計
position_estimator_inav–慣性導航的位置估計
multirotor姿態和位置控制器
mc_att_control–multirotor姿態控制器
mc_pos_control –multirotor位置控制器
fixedwing姿態和位置控制器
fw_att_control –固定翼飛機的姿態控制
fw_pos_control_l1 –固定翼位置控制器
垂直起降姿態控制器
vtol_att_control –垂直起降姿態控制器
最後提一句,多看看官網的說明,另外根據本人的經驗來看,由於大框架,代碼人家都寫好了,通常你要加功能,所修改的也就幾行代碼而已,舉例說明,比如px4固件只能在手動模式解鎖,假如我要修改成定高模式解鎖
Ⅹ 無人機飛控的特點
無人機飛控是指能夠穩定無人機飛行姿態,並能控制無人機自主或半自主飛行的控制系統,是無人機的大腦。
隨著智能化的發展,當今的無人機已不僅僅限於固定翼與傳統直升機形式,已經涌現出四軸、六軸、單軸、矢量控制等多種形式。
固定翼無人機飛行的控制通常包括方向、副翼、升降、油門、襟翼等控制舵面,通過舵機改變飛機的翼面,產生相應的扭矩,控制飛機轉彎、爬升、俯沖、橫滾等動作。
傳統直升機形式的無人機通過控制直升機的傾斜盤、油門、尾舵等,控制飛機轉彎、爬升、俯沖、橫滾等動作。
多軸形式的無人機一般通過控制各軸槳葉的轉速來控制無人機的姿態,以實現轉彎、爬升、俯沖、橫滾等動作。
對於固定翼無人機,一般來說,在姿態平穩時,控制方向舵會改變飛機的航向,通常會造成一定角度的橫滾,在穩定性好的飛機上,看起來就像汽車在地面轉彎一般,可稱其為測滑。方向舵是最常用做自動控制轉彎的手段,方向舵轉彎的缺點是轉彎半徑相對較大,較副翼轉彎的機動性略差。 副翼的作用是進行飛機的橫滾控制。固定翼飛機當產生橫滾時,會向橫滾方向進行轉彎,同時會掉一定的高度。 升降舵的作用是進行飛機的俯仰控制,拉桿抬頭,推桿低頭。拉桿時飛機抬頭爬升,動能朝勢能的轉換會使速度降低,因此在控制時要監視空速,避免因為過分拉桿而導致失速。 油門舵的作用是控制飛機發動機的轉速,加大油門量會使飛機增加動力,加速或爬升,反之則減速或降低。
了解了各舵的控製作用,我們開始討論一下升降舵和油門的控制。固定翼飛機都有一個最低時速被稱做失速速度,當低於這個速度的時候飛機將由於無法獲得足夠的升力而導致舵效失效,飛機失控。通過飛機的空速感測器我們可以實時獲知飛機的當前空速,當空速降低時必須通過增加油門或推桿使飛機損失高度而換取空速的增加,當空速過高時減小油門或拉桿使飛機獲得高度而換取空速的降低。因此固定翼飛機有兩種不同的控制模式,根據實際情況的使用而供用戶選擇: 第一種控制方式是,根據設定好的目標空速,當實際空速高於目標空速時,控制升降舵拉桿,反之推桿;那空速的高低影響了高度的高低,於是採用油門來控制飛機的高度,當飛行高度高於目標高度時,減小油門,反之增加油門。由此我們可以來分析,當飛機飛行時,如果低於目標高度,飛控控制油門增加,導致空速增加,再導致飛控控制拉桿,於是飛機上升;當飛機高度高於目標高度,飛控控制油門減小,導致空速減小,於是飛控再控制推桿,使高度降低。這種控制方式的好處是,飛機始終以空速為第一因素來進行控制,因此保證了飛行的安全,特別是當發動機熄火等異常情況發生時,使飛機能繼續保持安全,直到高度降低到地面。這種方式的缺點在於對高度的控制是間接控制,因此高度控制可能會有一定的滯後或者波動。 第二種控制方式是:設定好飛機平飛時的迎角,當飛行高度高於或低於目標高度時,在平飛迎角的基礎上根據高度與目標高度的差設定一個經過PID控制器輸出的限制幅度的爬升角,由飛機當前的俯仰角和爬升角的偏差來控制升降舵面,使飛機迅速達到這個爬升角,而盡快完成高度偏差的消除。但飛機的高度升高或降低後,必然造成空速的變化,因此採用油門來控制飛機的空速,即當空速低於目標空速後,在當前油門的基礎上增加油門,當前空速高於目標空速後,在當前油門的基礎上減小油門。這種控制方式的好處是能對高度的變化進行第一時間的反應,因此高度控制較好,缺點是當油門失效時,比如發動機熄火發生時,由於高度降低飛控將使飛機保持經過限幅的最大仰角,最終由於動力的缺乏導致失速。 因此,兩種控制模式根據實際情況而選用。我們選用的是第二種控制模式,並增加了當空速低於一定速度的時候,認為異常發生,立刻轉為第一種控制模式以保證飛機的安全。