iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
1
IoT

homekit+pixhawk系列 第 1

Pixhawk怎麼讓遙控車連上網?

  • 分享至 

  • xImage
  •  

Pixhawk 簡介

  • 適用於無人載具的控制板
  • 兼容ArduPilot以及Px4等多種開源任體
  • 不論地面跑的天上飛的水上飄的水底游的載具都可以使用
  • 可透過mavlink與其他裝置溝通
    在這一個無人載具盤據的時代,怎麼可以丟下Pixhawk這一塊強到爆炸的控制板呢?

透過Pixhawk 控制無人車

https://ithelp.ithome.com.tw/upload/images/20190916/20121039gXR92RZSjo.jpg
本章節將簡單描述Pixhawk如何控制無人車,較為深入的技術文件請見ArduRover的官方文件

作為一台無人車的操作韌體,Pixhawk主要接收來自地面站所設定以及調整的參數,並動態調整遙控汽車需要行走的方向以及前進的速度,在這方面ArduRover主要透過控制兩個東西來達成目標所設定的點

  1. 轉向
  2. 油門
    簡單來說,遙控車的概念化到最簡就剩下油門跟方向盤了,打擋跟煞車什麼的都不存在了。

根據ArduRover的官方文件調整完車子的參數後將進入本章節的主題,如何使Pixhawk透過網路與地面站溝通

Pixhawk 與地面站溝通 via UDP

Q:Pixhawk如何與地面站溝通呢?
A:Pixhawk本身就有USB介面,只要透過USB轉換成mavlink的封包並透過UDP傳送至地面站端就可以使用了
簡單來說,Pixhawk本身並沒有預載WiFi或是任何網路功能,必要時須自己添加,筆者在此使用Raspberry pi作為Pixhawk以及地面站之間的轉換器,將Pixhawk透過USB與Raspberry pi相連即可
https://www.researchgate.net/profile/Luis_Gonzalez54/publication/305674281/figure/fig2/AS:649641838260224@1531898092590/Connecting-Pixhawk-to-Raspberry-Pi-2.png

聯結完後,使用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與地面站放在同一個區域網路內,這樣就不會有問題

結語

筆者第一次接觸這類型節奏緊湊的比賽,在大學的學弟指導下,筆者也鼓起勇氣站出來寫一下本身背景的技術文件,較多為解釋給自己以及其他會使用到的人看,謝謝各位讀者


下一篇
cmavnode取代mavproxy吧!
系列文
homekit+pixhawk30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言