1回答

1收藏

[大赛作品提交] 基于树莓派远程控制+视觉控制的机械臂

Raspberry Pi Raspberry Pi 12331 人阅读 | 1 人回复 | 2018-01-12

感谢E络盟提供的助赛基金。

(一)方案
本意是制作一个基于视觉、智能语音为一体的智能机械臂,但由于项目立得太大,其中各种意想不到的问题频发,目前阶段只完成了部分视觉任务。

(二)简介
1、空间变换原理:

通过三角变化可以得到根部角度(舵机通过角度控制机械臂)与夹头部位的x、y坐标转化:
  1. double fai_t = asin(y0 / (sqrt(x0*x0 + y0*y0))) * 180 / 3.14159;
  2.                 double cita_t = acos(sqrt(x0*x0 + y0*y0) / 40) * 180 / 3.14159;
  3.                 double alpha_t = cita_t + fai_t;
  4.                 double beta_t = cita_t - fai_t;
复制代码
2、pca9685的舵机控制
pca9685通过iic与树莓派进行通讯,调整16路pwm的频率与占空比;
树莓派可以通过集成的wiringpi库方便地进行通讯。

3、物体自动识别
物体识别功能通过opencv函数库实现。原本的目标是基于surf特征点+轮廓识别叠加后获取目标图像位置,后来发现这个算法在树莓派上只能运行两帧,随后就会崩溃,于是改采用hsv分割二值图像的方法,虽然识别的物体变得简单而严格,但识别的准确率大大上升,速度也经得起树莓派的考验。
算法实现:通过hsv分割二值图像,根据h的值判断视野中的粉红色(由于opencv的h取值范围在0-180之间,因此在0-360空间中为340的粉红色,转化过了就是170左右)。然后通过
  1. findContours
复制代码
寻找轮廓,找到最大连通域,获取连通域的坐标信息,获取中心点x左边,对比根据实验得到中心定位值(由于我的机械臂结构设计不尽合理,导致摄像头被迫偏心安装;加上图像是640*480,可以得到对应的中心区域x值为425)。

4、远程控制
通过tcp socket,使树莓派上的qt控制程序与安卓客户端通讯。

(三)成果展示
1、图片




2、视频(需在优酷登陆后,刷新查看)



(四)小结
这次针对树莓派的机械臂开发不甚如意,首先是机械结构设计加工耗时远远超出预期,以至于其后的开发没能留下足够时间,加工精度、设计合理性也不甚如意,运动精度不能保证,很多控制都是基于理论上精确。
本意借助百度ai平台实现语音识别与更准确的物体定位,但由于种种原因,虽然开发出雏形,但没能整合到控制程序中。
由于耗费太多时间在开发设计上,导致最后编写本提交贴也不尽完善。

(五)附件
安卓app:链接:https://pan.baidu.com/s/1o90gPnk 密码:9n26



machine_arm.rar

9.78 KB, 下载次数: 25

关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

day_day

发表于 2018-1-12 10:41:58 | 只看该作者

补充内容:
(六)关于控制界面介绍

1、左边显示过程中各个数据量
2、右边上面四个按钮分别是控制x、y等量变换的按钮,也可以通过键盘w、a、s、d按键等效实现,支持长按;
3、键盘q、e控制机械臂围绕回转轴旋转(机械臂的空间标准是柱坐标)
4、键盘r键实现夹持
5、界面最下方的pink_check按键实现对固定的粉色物体自动寻找对中

安卓app界面设计类似
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条