这个应该是个高级功能, 机械臂连接电脑, 电脑连接usb摄像头, 摄像头识别物体, 机械臂根据不同的物体做不同的动作。在dobot宣传片里, 我看到好像用的是opencv,太复杂了, 有没有简单点的机器视觉工具, 类似一个传感器, 把摄像头里的物体触发机械臂的动作
越疆魔术师如何加入机器视觉功能
dobot团队没有回应, 所以我自己研究了一下, 不看不要紧, 机器视觉真的是一个好大的坑
好在自己有一点点的编程经验和强烈的兴趣, 推动者自己研究opencv.
如果说机器是一扇门, 那么机器视觉是另一扇门, 这扇门一点都不比机器人小。
简单的说机器人是实现人类动作的手段,机器视觉是判断动作时机的工具。
建议大家好好研究下opencv, 本人跟着范例已经能做到特定颜色物品的识别, 但特定形状的物品的识别还在学习中。 自从学习opencv, 我己经把dobot机械臂扔到一边了 :-)
网上有好多的教程,opencv+python是最简单的, 几乎是傻瓜入门级的。如有兴趣, 大家可以交流下
我对opencv 以及python,也是零基础开始自学的, 目前研究了三四天, 差不多是入门级的水平
参照的是这篇入门文档
http://blog.csdn.net/nwpulei/article/details/7277511
下载的文件在这里
http://yun.baidu.com/s/1gdhazxL?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0
https://svwh.dl.sourceforge.net/project/numpy/NumPy/1.6.1/numpy-1.6.1-win32-superpack-python2.7.exe
https://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
从头学, 如有问题, 可以放在这里, 我知道的就和大家分享
Matlab是收费软件, 正式使用可能会有法律问题
另外我这里也写个简单的opencv+python(windows)平台的搭建方法, 给大家参考
1.创建一个文件夹, 以我的笔记本为例,c:\cv
2.下载软件, 到此文件见
依次是python 2.7.3 , opencv-win-superpack 和 numpy , 链接如下
http://yun.baidu.com/s/1gdhazxL?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=01
https://svwh.dl.sourceforge.net/project/numpy/NumPy/1.6.1/numpy-1.6.1-win32-superpack-python2.7.exe1
https://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
3.先安装python-2.7.2.msi 再装opencv-win-superpack, 最后装numpy, 建议统一安装到c:\cv 目录下
4. 把C:\CV\opencv\build\python\2.7 文件夹下所有文件, 也就两个文件, 复制到C:\CV\Python27\Lib\site-packages下
5.手动添加windows的环境变量
C:\CV\Python27;C:\CV\Python27\Scripts
6.回到目录C:\CV\opencv\samples\python, 幸运的话, 部分py结尾的文件, 就可以双击打开了, 例如camera.py
点击后,摄像头就会打开。
7. 做一个简单的脚本, 显示一张图片, 找张图片, 存为test.jpg, 下面的脚本存为test.py
import cv2
img=cv2.imread(‘test.jpg’)
cv2.imshow(‘test’,img)
cv2.waitKey(0)
正常情况, 双击此test.py应该可以打开此图片, 后面的, 大家慢慢学习。
下面我放一个机器视觉的基本的方法框架
1.打开摄像头, 并截取图片
2.彩色图片转为黑白图片(彩色的维度太多了, 转为黑白这一维,方便后续的图像处理)
3.黑白图片做模糊处理, 去掉杂乱的纹路等影响后续操作的东西
4.差值化, 简单的说,把灰色偏白的部分归白, 偏黑色的部分归黑, 也叫极值化,经此处理, 黑白灰的图片, 正式变为只有黑白二色, 灰色都去除的图片
5.这时物体的轮廓就显露出来了, 这时我们就可以根据他的轮廓,判断物体的形状, 大小等, 更复杂的内容,我也在学习中, 目前我能做到判断摄像头下有没有物体, 有几个物体, 其他的还不会, 还在不断摸索中, 毕竟学习opencv不过一周时间, 还在入门阶段。
跟你聊聊吧, 首先, 你说要通过机械臂抓东西, 机器不是人, 它怎么知道有个东西放在它面前?什么样的东西? 大小如何, 形状如何,颜色如何? 这些你都需要告诉计算机。
负责任的说, 这是个技术上的大坑, 需要研究好久。给你两个链接, 第一个是,摄头头如果抓取蓝色的物体的影像
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html#converting-colorspaces
第二个,是摄像头如何给物体画框, 扩展功能如找出物体形状中心,找出大小尺寸等等
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html
英文一定要好,英语很重要, 资料都是英文的。
附赠opencv+python的官方教程链接, 学会这个, 你就不用上来问摄像头定位的问题了,我学了两周, 大致处于入门起步阶段。
https://opencv-python-tutroals.readthedocs.io/en/latest/
赠品:opencv的入门文档,我给女儿写的小马宝莉彩色图片转填色图功能脚本
https://github.com/wjb711/Opencv_learning/blob/master/pan_painting.py
windows+python2.7+opencv3.2的安装配置文档已更新
大家如需要, 参见这里
https://github.com/wjb711/Opencv_learning/blob/master/windows_python2.7_opencv3.2