基于树莓派和Python的无人机机械手爪控制系统设计

2021-08-19 08:19覃小慰
软件 2021年2期
关键词:Python语言树莓派

摘 要:介绍无人机利用树莓派和飞控系统的硬件结合,采用Python语言进行编程,完成无人机机械手爪控制系统设计,该系统不需复杂的硬件接线和编程便能完成无人机手爪的控制,并能根据设定时间值或视觉系统采集到的数值进行手爪打开和闭合控制,从而实现智能化控制的目的。

关键词:树莓派;Python语言;手爪控制

中图分类号:TP39 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.013

本文著录格式:覃小慰.基于树莓派和Python的无人机机械手爪控制系统设计[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

在一些救援過程中,因限制于环境影响,只能采取空投的方式将救援物资传送到投放地或传送给受灾人员。传统的空投方式住住是借助直升机开展,通过直升机搭载物资进行高空投放。然而,采用直升机投放物资的方式成本高且易受环境影响,在对地情况不明的情况下进行投放也易对地面人员造成伤害。本无人机机械手爪控制系统具有稳定性好、精度高,适用于在不同的场合抓取不同的物品。

1 系统结构组成

无人机手爪控制系统主要由Raspberry Pi(树莓派[1])、Pixhawk飞控、机械手爪、机架、螺旋桨、无刷电机、电子调速器、电池、遥控器、接收机、GPS和图传数传组成。由程序员采用Python语言编写无人机控制程序并存入Raspberry Pi(树莓派),无人机在电源开启后,程序在Raspberry Pi(树莓派)中经过运算输出控制信号给Pixhawk飞控,Pixhawk飞控按照Raspberry Pi(树莓派)传过来的信号去控制电调、舵机、灯光等设备。

2 硬件构成

2.1 Raspberry Pi4

Raspberry Pi(中文译名“树莓派”)由注册于英国的慈善组织Raspberry Pi基金会开发,Eben·Upton/埃·厄普顿为项目带头人。Raspberry Pi又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能。

Raspberry Pi4(树莓派4代)是一款性价比高、体积小的可编程迷你计算机,被誉为世界上最流行最便宜的小型电脑,Linux操作系统。树莓派4代基于BCM2711构建,完全重新实现了28nm的BCM283X,采用更1.5GHz 4核64位 ARM Cortex-A72 CPU内核取代Cortex-A53,内存有1GB、2GB、4GB LPDDR4 SDRAM三个版本可选,蓝牙5.0,从而使性能较树莓派3B+提高了2到4倍。

2.2 Pixhawk飞控

DS18B20是采用TO-92形式封装的数字温度传感器,接线引脚为3个,温度测量范围为-55℃~+125℃,测温分辨率达0.0625℃,工作状态可为无外部电源供电和外部电源供电两种模式,使用时可单片和多片并联。DS18B20只需一根单线与单片机进行双向通信,占用微处理器端口少,温度测量模块DS18B20通过DQ引脚与AT89S52的P3.3口进行连接通信。

2.3 Python编程语言

Python[2]是一种面向对象的动态类型的计算机编程语言,最初设计用于编写自动化脚本,后来随着版本的不断更新和语言新功能的添加,越来越多用于独立的、大型项目的开发。Python语言具有语法简单、开源、标准库和第三库众多、功能强大等特点,非常适合人工智能和大数据的系统控制。

2.4 机械手爪

采用的轻型机械手爪,主要包括固定框架、传动齿轮、滑块、手爪臂、舵机和固定螺母等。通过控制舵机旋转角度,从而控制机械手爪臂张开和关闭的角度。该无人机轻型手爪结构轻便,夹持力稳定,控制系统结构简洁,安装适应性好,能较好的抓取物资。

2.5 舵机

舵机[3]又称伺服马达,主要用于角度控制,由控制器发送PWM(脉冲宽度调制)信号给舵机,驱动马达转动,同时由位置检测器返回位置信号,最终形闭环控制。舵机通常由5V电源、GND和控制线三根构成。舵机采用脉冲宽度调制技术(PWM),主要由来自控制线的持续脉冲产生,脉冲的长短决定舵机转动的角度。舵机基准脉冲信号周期为20ms,脉冲宽度为1.5ms(一般而言,脉冲宽度为1ms~2ms),这个基准信号定义的位置为中间位置。当舵机接收到小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针转动一个角度。反之,当舵机接收到大于1.5ms的脉冲,输出轴会以中间位置为标准,顺时针转动一个角度,如图1所示。

3 硬件连接

将Pixhawk飞控上Telem2口的四根线引出与树莓派的数控传输端相连接,一是将两个设备的电源+5V和GND连接,二是将两个设备的TX数据发送端和RX数据接收端交叉连接,如图2所示。

4 软件系统设计

4.1 主程序控制

Dronekit 是用于控制无人机的Python库,它提供控制无人机的API,其代码独立于飞控,单独运行于计算机上,通过串口或无无线方式经MAVLINK协议与飞控通信。加载Dronekit库后,采用TCP连接方式与无人机进行数据交互。无人机手爪开合角度由舵机伺服系统控制,在程序中通过设定PWM参数值即可。

4.2 系统设计程序源码

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 结语

基于树莓派和Python语言编程控制的无人机机械手爪控制系统,具有结构简单、稳定性好、精度高等多项功能,适用于在不同的场合抓取不同的物品。本系统机械手爪张合范围为0°~180°,经现场测试分辨率较高,实际应用中收到了相当好的效果,在无人机运用机械手抓取物品中具有较高的应用价值。

参考文献

[1] 刘继元.基于树莓派的物连网应用[J].探索与观察,2019(6):25-27.

[2] 余咏胜,易桂轩.基于Python的无人机影像定位信息处理技术[J].城市勘测,2018(5):32-35.

[3] 张吉智.舵机远距离数字控制[D].武汉:武汉交通职业学院,2012.

猜你喜欢
Python语言树莓派
Python语言程序设计教学体系建设
面向计算生态的Python语言入门课程教学方案
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨
基于微信端的智能家居监控系统的设计与实现
智能安全防盗探测小车
基于Android的Python语言英汉维电子词典设计与实现
基于嵌入式技术的农村医疗系统设计