基于VR的双臂机器人设计
2019-12-11张可征方武李晨曦
张可征,方武,2,李晨曦
(1.苏州经贸职业技术学院信息技术学院,苏州215009;2.江苏省智能服务工程技术研究开发中心,苏州215009)
0 引言
联合国人口老龄化和可持续发展报告指出,全球在未来十年将加速老龄化进程。由于疾病人群对医疗服务需求的增加,机器人便被提出作为一种辅助工具提供医疗服务以弥合日益扩大的需求,缓解医疗人员和资源短缺。机器人产品分为工业机器人和服务机器人,而护理机器人便是服务机器人的一种。本文提出了一款基于VR(Virtual Reality)的双臂机器人,可以为老年人和残障人士带来便捷的家庭护理服务。
1 研究进展
目前护理机器人产品主要有:中国台湾交大研究团队研发完成居家照护智能机器人——ROLA;中国浙江大学软件学院“大三合创业团队”发明的智能卫生护理机器人;日本的RI-MAN机器人等。老年人和残疾人实际使用的机器人数量并没有达到人们预期的目标,导致用户使用量较少。现阶段护理机器人存在的主要存在价格问题和用户体验不佳。而我国服务机器人起步比较晚,但发展迅猛,加上巨大的需求,将会成为全球最大的潜在市场。本项目采用开源平台开发可有效降低研发成本,基于VR人机交互技术提升用户体验,帮助老年人和残疾人体会高科技带来的便捷,解决生活当中的实际问题,带来更好的生活服务。
2 系统设计
2. 1 系统结构
如图1所示,系统结构可以分为两部分,一部分由树莓派结合机器视觉摄像头操控机器人自动搜寻目标物品并实现目标物品的抓取,另一部分由Arduino平台结合机械骨骼控制端实现机器人的运转;操作者可通过VR设备获取目标物品,从而实现目标物品的抓取。
2. 2 硬件部分
系统硬件部分包括:机械臂模块:采用六自由度机械臂;底盘运动模块,主要通过Arduino控制;转接板模块:STM32F103VCT6;树莓派主板模块:Raspberry PI 3B+。机器视觉摄像头模块;FPV摄像头模块;VR眼镜模块;机械骨骼模块。
图1系统组成图
(1)机械臂模块
如图2所示,多自由度机械臂的主控芯片为STM32F103VCT6,驱动方式有自动和手动:自动由树莓派发送的运动指令驱动该机械臂;手动由姿态传感器发送运动指令,STM32F103VCT6通过蓝牙接收指令信息驱动该机械臂。
图2多自由度机械臂
(2)底盘运动模块
如图3所示,底盘集成了Arduino Mega2560核心电路板,底盘接收到来自树莓派或手柄的运动指令,通过引脚发送控制指令 25、26、47、48、55、56、78、79、80、83、92、93控制六个35电机运转,从而驱动整体进行运动。
图3底盘运动模块电路图
(3)转接板模块
如图4所示,VR机器人通信转接板采用STM32F103VCT6作为主控制器供电电压为12V通信接口包涵Uart4、IICX2、无线接口音频接口。
图4 VR机器人通信转接板
(4)树莓派模块
如图5所示,视觉处理模块采用的Raspberry PI 3B+,搭载了Broadcom BCM2837,集成蓝牙和Wi-Fi模块,5V电压,同时拥有 40 个引脚、USB、RJ-45、HDMI、音频、SPI等接口。
图5 U5NBCM2837B电路原理图
(5)摄像头模块
如图6所示,摄像头拥有500w分辨率,CCD尺寸为1/4inch,3.6mm可调光圈,60°视场角。
图6红外夜视摄像头
(6)FPV摄像头模块
如图7所示,Crazepony的FPV摄像头采用按钮式调频,广角170°带摄麦克风,分辨率可达1280×960,焦距为1.8mm。
图7 FPV摄像头
(7)VR眼镜模块
如图8所示,VR眼镜采用LCD屏,屏幕尺寸为4.3寸,分辨率可 480×270px,电压 7.4V。
图8 VR眼镜
(8)机械骨骼模块
如图9所示,可穿戴式机械骨骼搭载STM32F103VCT6的MCU通过蓝牙来发送传感器的命令,以此控制机器人完成一系列操作指令。
图9可穿戴式机械骨骼
2. 3 软件部分
系统底盘控制软件采用C语言进行开发,应用软件部分采用Python结合OpenCV库进行运动控制和物品识别。系统软件流程如图10所示。
图10程序流程图
程序具体步骤如下:
机器人进入运行状态;设定红色阈HSV颜色模型值;设定尺寸;打开摄像头;等待两秒;获得手动抓物体大小的标定值;初始化串口;打开串口;执行程序;检测摄像头;若未检测到摄像头输出No Camera返回;检测到摄像头,转到白色的HSV空间;红点标出图像的中心坐标;根据阈值构建蒙版掩膜腐蚀操作,去除噪点轮廓检测;给小车一个初始速度V1,左转搜寻物体,如果存在物体轮廓找到面积最大的轮廓——目标物体,停止转动调整角度,调整机器人与目标物品间距至合适位置;抓取物品;放置物品,机械臂回到初始位置,结束程序。
表1主函数
表2系统配置
3 实验
3. 1 系统配置
系统配置将可见光摄像头插入树莓派的SPI接口之后,在树莓派中启用摄像头模块。在终端中输入sudo raspi-config,进入系统设置。
图11系统设置界面
图11系统设置界面选择5 Inerfacing Options,选择P1 Camera,然后选择Yes,回到系统设置界面选择7 Advanced Options,选择SPI然后启用SPI。最后重启树莓派,至此摄像头模块和GPIO口以可以使用了。
(1)串口配置搭建树莓派串口通信开发环境
①安装Python:sudo apt-get update;sudo apt-get install python。
②安装Python的GPIO模块,用于控制LED、电机等:
wget https://sourceforge.net/projects/raspberry-gpiopython/files/RPi.GPIO-0.6.2.tar.gz;(下载GPIO库,因为更新,具体参考官网网址变动)
tar xvzf RPi.GPIO-0.6.2.tar.gz;(tar解压)
cdRPi.GPIO-0.6.2;(进入解压后的文件夹)
sudo python setup.py install;(安装GPIO库文件)
③安装serial,用于串口通信及USB通信:
sudo apt-get install python-serial
④检验前三步环境安装是否正确:
用nano编辑器编辑一个test文件;
sudo nano test.py
在test.py文件中写入下面两行代码:
import serial;
import RPi.GPIO
运行python test.py语句,如果没有报错说明树莓派开发环境搭建正确。
修改树莓派配置文件:
●修改cmdline.txt
sudo nano/boot/cmdline.txt看到dwc_otg.lpm_enable=0 console=ttyAMA0,115200kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait把console=ttyAMA0,115200 kgdboc=ttyAMA0,115200删除变成这样dwc_otg.lpm_enable=0 console=tty1root=/dev/mmcblk0p2rootfstype=ext4 elevator=deadlinerootwait Ctrl+X按Y按Enter保存退出
●修改inittab然后禁止掉从串口登录的功能
sudo nano/etc/inittab注 释 掉 T0:23:respawn:/sbin/getty-L ttyAMA0 115200 vt100变成#T0:23:respawn:/sbin/getty-L ttyAMA0 115200 vt100 Ctrl+X按Y按Enter保存退出sudo reboot之后树莓派的pin8(GPIO14)pin10(GPIO15)这两个口就可以当成普通的串口来用了现在你可以像使用一个普通串口那样使用/dev/ttyAMA0了。
(2)开机自启动配置执行mkdir.config/autostartsudonano~/.config/autostart/run.desktop输入以下内容:[DesktopEntry]Type=ApplicationExec=python/home/pi/pi_robot_red.py重新启动sudo reboot now启动后可以自动执行程序,设置成功。5.2调试机器人运行步骤:检查线路连接是否正常检查电源供电是否正常将待抓取物品放置适当位置打开电源等待机器运行完毕关闭电源要实现成功抓取;光照条件足够;物体垂直于地面摆放;无障碍物遮挡;电池电量充足;小车零部件无故障;连接线正确且牢固连接。
3. 2 系统调试
实验采用Arduino Mega2560核心板,STM32F103VCT6 MCU核心板,Raspberry Pi 3B+系统。系统调试结果如图11、12所示,图中显示的是自动抓取过程和遥控机械臂抓取过程。
图12树莓派自动抓取
图13 VR+机械骨骼抓取
图14机械骨骼操控图
4 结语
服务机器人目前存在造价高、灵巧性不足、安全性待提高及应用中的人性伦理等问题,致使大部分机器人在家庭推广中存在困难。针对以上问题,本文提出了一种基于VR的双臂机器人。项目采用开源平台开发可有效降低研发成本,基于VR人机交互技术提升用户体验,帮助老年人和残疾人体会高科技带来的便捷,解决生活当中的实际问题,带来更好的生活服务。后续工作会重点观察机器人在参与家庭护理服务中存在问题并结合人工智能技术发展趋势深入研究,开发出令用户满意的服务机器人。