摘 要:介紹無人機利用樹莓派和飛控系統(tǒng)的硬件結(jié)合,采用Python語言進行編程,完成無人機機械手爪控制系統(tǒng)設計,該系統(tǒng)不需復雜的硬件接線和編程便能完成無人機手爪的控制,并能根據(jù)設定時間值或視覺系統(tǒng)采集到的數(shù)值進行手爪打開和閉合控制,從而實現(xiàn)智能化控制的目的。
關鍵詞:樹莓派;Python語言;手爪控制
中圖分類號:TP39 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2021.02.013
本文著錄格式:覃小慰.基于樹莓派和Python的無人機機械手爪控制系統(tǒng)設計[J].軟件,2021,42(02):044-045+051
Design of UAV Paw Control System Based on Raspberry Pi and Python
QIN Xiaowei
(Guangxi Advanced Technical School of Science and Commerce, Liuzhou? Guangxi? 545000)
【Abstract】:Flight control system of the unmanned aerial vehicle (uav) using the raspberry pie and combination of hardware, using the Python programming language, complete the uavs gripper control system design, the system does not need complex hardware wiring and programming can complete control of unmanned aerial vehicle (uav) gripper, and can according to the set time value or collected in the visual system numerical control the gripper opening and closing, so as to realize the purpose of intelligent control.
【Key words】:raspberry pi;the python language;gripper control
在一些救援過程中,因限制于環(huán)境影響,只能采取空投的方式將救援物資傳送到投放地或傳送給受災人員。傳統(tǒng)的空投方式住住是借助直升機開展,通過直升機搭載物資進行高空投放。然而,采用直升機投放物資的方式成本高且易受環(huán)境影響,在對地情況不明的情況下進行投放也易對地面人員造成傷害。本無人機機械手爪控制系統(tǒng)具有穩(wěn)定性好、精度高,適用于在不同的場合抓取不同的物品。
1 系統(tǒng)結(jié)構(gòu)組成
無人機手爪控制系統(tǒng)主要由Raspberry Pi(樹莓派[1])、Pixhawk飛控、機械手爪、機架、螺旋槳、無刷電機、電子調(diào)速器、電池、遙控器、接收機、GPS和圖傳數(shù)傳組成。由程序員采用Python語言編寫無人機控制程序并存入Raspberry Pi(樹莓派),無人機在電源開啟后,程序在Raspberry Pi(樹莓派)中經(jīng)過運算輸出控制信號給Pixhawk飛控,Pixhawk飛控按照Raspberry Pi(樹莓派)傳過來的信號去控制電調(diào)、舵機、燈光等設備。
2 硬件構(gòu)成
2.1 Raspberry Pi4
Raspberry Pi(中文譯名“樹莓派”)由注冊于英國的慈善組織Raspberry Pi基金會開發(fā),Eben·Upton/?!ざ蚱疹D為項目帶頭人。Raspberry Pi又稱卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能。
Raspberry Pi4(樹莓派4代)是一款性價比高、體積小的可編程迷你計算機,被譽為世界上最流行最便宜的小型電腦,Linux操作系統(tǒng)。樹莓派4代基于BCM2711構(gòu)建,完全重新實現(xiàn)了28nm的BCM283X,采用更1.5GHz 4核64位 ARM Cortex-A72 CPU內(nèi)核取代Cortex-A53,內(nèi)存有1GB、2GB、4GB LPDDR4 SDRAM三個版本可選,藍牙5.0,從而使性能較樹莓派3B+提高了2到4倍。
2.2 Pixhawk飛控
DS18B20是采用TO-92形式封裝的數(shù)字溫度傳感器,接線引腳為3個,溫度測量范圍為-55℃~+125℃,測溫分辨率達0.0625℃,工作狀態(tài)可為無外部電源供電和外部電源供電兩種模式,使用時可單片和多片并聯(lián)。DS18B20只需一根單線與單片機進行雙向通信,占用微處理器端口少,溫度測量模塊DS18B20通過DQ引腳與AT89S52的P3.3口進行連接通信。
2.3 Python編程語言
Python[2]是一種面向?qū)ο蟮膭討B(tài)類型的計算機編程語言,最初設計用于編寫自動化腳本,后來隨著版本的不斷更新和語言新功能的添加,越來越多用于獨立的、大型項目的開發(fā)。Python語言具有語法簡單、開源、標準庫和第三庫眾多、功能強大等特點,非常適合人工智能和大數(shù)據(jù)的系統(tǒng)控制。
2.4 機械手爪
采用的輕型機械手爪,主要包括固定框架、傳動齒輪、滑塊、手爪臂、舵機和固定螺母等。通過控制舵機旋轉(zhuǎn)角度,從而控制機械手爪臂張開和關閉的角度。該無人機輕型手爪結(jié)構(gòu)輕便,夾持力穩(wěn)定,控制系統(tǒng)結(jié)構(gòu)簡潔,安裝適應性好,能較好的抓取物資。
2.5 舵機
舵機[3]又稱伺服馬達,主要用于角度控制,由控制器發(fā)送PWM(脈沖寬度調(diào)制)信號給舵機,驅(qū)動馬達轉(zhuǎn)動,同時由位置檢測器返回位置信號,最終形閉環(huán)控制。舵機通常由5V電源、GND和控制線三根構(gòu)成。舵機采用脈沖寬度調(diào)制技術(shù)(PWM),主要由來自控制線的持續(xù)脈沖產(chǎn)生,脈沖的長短決定舵機轉(zhuǎn)動的角度。舵機基準脈沖信號周期為20ms,脈沖寬度為1.5ms(一般而言,脈沖寬度為1ms~2ms),這個基準信號定義的位置為中間位置。當舵機接收到小于1.5ms的脈沖,輸出軸會以中間位置為標準,逆時針轉(zhuǎn)動一個角度。反之,當舵機接收到大于1.5ms的脈沖,輸出軸會以中間位置為標準,順時針轉(zhuǎn)動一個角度,如圖1所示。
3 硬件連接
將Pixhawk飛控上Telem2口的四根線引出與樹莓派的數(shù)控傳輸端相連接,一是將兩個設備的電源+5V和GND連接,二是將兩個設備的TX數(shù)據(jù)發(fā)送端和RX數(shù)據(jù)接收端交叉連接,如圖2所示。
4 軟件系統(tǒng)設計
4.1 主程序控制
Dronekit 是用于控制無人機的Python庫,它提供控制無人機的API,其代碼獨立于飛控,單獨運行于計算機上,通過串口或無無線方式經(jīng)MAVLINK協(xié)議與飛控通信。加載Dronekit庫后,采用TCP連接方式與無人機進行數(shù)據(jù)交互。無人機手爪開合角度由舵機伺服系統(tǒng)控制,在程序中通過設定PWM參數(shù)值即可。
4.2 系統(tǒng)設計程序源碼
from dronekit import connect,VehicleMode,Command,LocationGlobal,LocationGlobalRelative
from pymavlink import mavutil
import time
import math
vehicle = connect("tcp:192.168.31.148:5760",wait_ready=True)
print("無人機連接成功")
def set_servo(pwm_value):
msg=vehicle.message_factory.command_long_ encode(0,0,? mavutil.mavlink.MAV_CMD_DO_SET_SERVO,? # command? 0, 7, pwm_value,0,0,0,0,0)
vehicle.send_mavlink(msg)
def open_craw():
set_servo(1050)
def close_craw():
set_servo(1900)
for i in range(10):
open_craw()
time.sleep(1)
close_craw()
time.sleep(1)
5 結(jié)語
基于樹莓派和Python語言編程控制的無人機機械手爪控制系統(tǒng),具有結(jié)構(gòu)簡單、穩(wěn)定性好、精度高等多項功能,適用于在不同的場合抓取不同的物品。本系統(tǒng)機械手爪張合范圍為0°~180°,經(jīng)現(xiàn)場測試分辨率較高,實際應用中收到了相當好的效果,在無人機運用機械手抓取物品中具有較高的應用價值。
參考文獻
[1] 劉繼元.基于樹莓派的物連網(wǎng)應用[J].探索與觀察,2019(6):25-27.
[2] 余詠勝,易桂軒.基于Python的無人機影像定位信息處理技術(shù)[J].城市勘測,2018(5):32-35.
[3] 張吉智.舵機遠距離數(shù)字控制[D].武漢:武漢交通職業(yè)學院,2012.