本章節將簡單描述Pixhawk如何控制無人車,較為深入的技術文件請見ArduRover的官方文件
作為一台無人車的操作韌體,Pixhawk主要接收來自地面站所設定以及調整的參數,並動態調整遙控汽車需要行走的方向以及前進的速度,在這方面ArduRover主要透過控制兩個東西來達成目標所設定的點
根據ArduRover的官方文件調整完車子的參數後將進入本章節的主題,如何使Pixhawk透過網路與地面站溝通
Q:Pixhawk如何與地面站溝通呢?
A:Pixhawk本身就有USB介面,只要透過USB轉換成mavlink的封包並透過UDP傳送至地面站端就可以使用了
簡單來說,Pixhawk本身並沒有預載WiFi或是任何網路功能,必要時須自己添加,筆者在此使用Raspberry pi作為Pixhawk以及地面站之間的轉換器,將Pixhawk透過USB與Raspberry pi相連即可
聯結完後,使用mavproxy將Pixhawk送到Raspberry pi上的mavlink封包轉換成UDP封包送達至地面站端
raspberry pi上的mavproxy安裝方式如下
sudo apt-get install python3-dev python3-opencv python3-wxgtk3.0 python3-pip python3-matplotlib python3-pygame python3-lxml python3-yaml
pip install MAVProxy
echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc
最後視情況不同選擇是否提供raspberry pi 的使用者存取serial的權限
sudo adduser <username> dialout
上述中username中請改成自己的使用者
透過USB連結pixhawk以及raspberry pi,並在raspberry pi上執行下述代碼
mavproxy.py --master=/dev/ttyUSB0 -out=udp:<IP>:<PORT>
其中IP為地面站的IP,port為地面站的port,當然raspberry pi需要拿得到地面站的IP,最簡單的方式就是將raspberry pi與地面站放在同一個區域網路內,這樣就不會有問題
筆者第一次接觸這類型節奏緊湊的比賽,在大學的學弟指導下,筆者也鼓起勇氣站出來寫一下本身背景的技術文件,較多為解釋給自己以及其他會使用到的人看,謝謝各位讀者