python机器人编程——在VREP环境中,UARM与摄像头联动,实现基于视觉识别的自动抓取,垃圾自动分类(上)
目录
- 前言
- 在VREP中加入视觉传感,用python侧获取图像
- 在VREP中布置垃圾分类场景
- Step1:用三维软件造模型
- Step2:导入到vrep
- Step3:关联shap、调整位置及贴图
- 测试一下效果
前言
本篇我们在《python机器人编程——VREP数字孪生四轴机械臂联合仿真》的基础上,将引入单目摄像头(或视觉传感Vision_sensor),并在python侧获取摄像头的图像,并进行视觉处理,通过建立一个视觉抓取场景(三类垃圾的自动分类),利用色彩识别原理和二维码定位方法,用python创建识别模块对单目摄像头传过来的图像进行分析获取不同类型垃圾的位置坐标,并与UARM远程控制程序进行流程化集成,最终实现机械臂自动根据垃圾摆放场景,自动将三类不同的垃圾,准确抓取,并放入对应的垃圾桶中。
在VREP中加入视觉传感,用python侧获取图像
如上图所示,蓝色的就是视觉传感器了,相当于单目摄像头,我们把这个视觉传感器垂直放在作业面的正上方。操作步骤如下:
(1)点击菜单add,选择Vision sensor选择Perspective透视模式(对应于普通单目相机)如下图:
并设置视觉传感的属性如下:
主要是设置一下分辨率,我这个设的是512*512
然后设置摆放的位置,如下:
(2)python侧的获取视觉传感图像
python侧也是跟获取机械臂的状态参数是一样的,先获取视觉传感的句柄errorCode,visionSensorHandle = sim.simxGetObjectHandle(clientID,‘Vision_sensor’,sim.simx_opmode_oneshot_wait),然后利用sim.simxGetVisionSensorImage(clientID,visionSensorHandle,0,sim.simx_opmode_streaming)获取视频流对象,最后通过定时调用sim.simxGetVisionSensorImage(clientID,visionSensorHandle,0,sim.simx_opmode_buffer)缓存获取图像帧。核心代码如下:
errorCode,visionSensorHandle = sim.simxGetObjectHandle(clientID,'Vision_sensor',sim.simx_opmode_oneshot_wait)errprCode,resolution,image = sim.simxGetVisionSensorImage(clientID,visionSensorHandle,0,sim.simx_opmode_streaming)time.sleep(0.1)#需要停顿一下while True:errprCode,resolution,image = sim.simxGetVisionSensorImage(clientID,visionSensorHandle,0,sim.simx_opmode_buffer)sensorFrame = np.array(image,dtype = np.uint8)sensorFrame.resize([resolution[0],resolution[1],3])#调整图像通道结构cv2.imshow('',sensorFrame)key = cv2.waitKey(1)if int(key) == 27:#通过esc键退出摄像cv2.destroyAllWindows() break
这样在python侧就可以获取VREP侧的图像了。
在VREP中布置垃圾分类场景
Step1:用三维软件造模型
我们先用三维软件造出了类似垃圾桶的模型:
然后造一个薄圆柱,作为“垃圾”:
Step2:导入到vrep
然后把这些模型导入到vrep中:
Step3:关联shap、调整位置及贴图
在vrep中添加跟圆柱体同样大小的shape:
并与模型进行关联:
调整好各自的位置,简易的垃圾分类场景搭建完成:
测试一下效果
环境准备就绪,我们来实际操作一下,把红色“有害垃圾”拿起来放到对应垃圾桶:
放入红色桶里坐标(250,119,143):
再释放吸头,“有害垃圾”准确落入桶里!完美!!!
以上就是垃圾分类的基础工作,下篇我们让机械臂全自动完成三个垃圾的自动分类!
python机器人编程——在VREP环境中,UARM与摄像头联动,实现基于视觉识别的自动抓取,垃圾自动分类(上)相关推荐
- python机器人编程——垃圾自动分类,在VREP环境中,UARM与摄像头联动,实现基于视觉识别的自动抓取(下)
目录 前言 非绝对垂直摄像头图像的坐标变换 物体的识别和坐标确定 (1)物体的识别 (2)坐标的确定 机械臂执行动作逻辑实现 python源码 前言 本篇我们在<python机器人编程--VRE ...
- python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(下)
目录 1 概要 2 uarm机械臂运动控制程序的python实现 2.1机械结构的python表达 2.2 逆解算法的python表达 2.2.1 俯视图根据目标点(x,y)计算J1,L 2.2.2 ...
- python机器人编程——差速AGV机器、基于视觉和预测控制的循迹、自动行驶(下篇)
目录 一.前言 二.基于轨迹与路面重心偏离度误差的预测自动差速小车循迹控制策略 三.轨迹图像的处理要点 四.本篇部分核心控制策略python代码: 五.结论 一.前言 基于最近的测试,得到了一种粗略控 ...
- python机器人编程——差速AGV机器、基于视觉和预测控制的循迹、自动行驶(上篇)
目录 一.前言 二.视觉自动循迹的算法流程 (1)图像的获取 (2)图像的预处理 (3)目标轨迹的提取 (4)根据已知曲线进行预测控制 三.核心模块及要点 轨迹图像细化 小车轮距L的测量 预测轨迹变换 ...
- 《Python计算机视觉编程》一书中关于增强现实茶壶显示的程序
大家好,我是第一次写CSDN博客,也是刚开始学习用Python进行计算机视觉编程,有很多不懂和不足的地方,希望大家多包涵.以下纯粹是我个人的一些实际操作经历. 在<Python计算机视觉编程&g ...
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- python编写微信自动抓取文件经历
python编写微信自动抓取文件经历 背景 前期 写代码&坑 背景 近期疫情肆虐,老师全都线上教学,微信群里多出来一大堆乱七八糟的文件,烦死宝宝了,每次还要看,要是doc还得转换成pdf再放进 ...
- jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...
写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地.正好手头需要对某个领域的文献进行调研,不妨学习一下. 什么是Python? 百度说:Python (计 ...
- 利用 Python 自动抓取微博热搜,并定时发送至邮箱
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...
最新文章
- AngryTask - 基于伪 scrum 的个人项目开发产品
- FaaS如何在云2.0时代发挥优势,又将走向何方?
- 自己封装js组件 - 中级
- iOS之Block总结以及内存管理
- matlab参数识别,教程:matlab参数识别(包括微分方程和simulink)
- 浅谈JSP自定义标签实现过程
- Mysql-GTID
- c 设计计算机报告,C课程设计(计算器)报告
- 用Layer.search快速查询图元
- InDesign 教程,如何创建沉浸式文档?
- 【PageHelper分页】实现拦截pageNum和pageSize
- 写给Gallen1983
- Java中如何不用中间变量来使两个变量交换值
- 从小白踏上程序员之路
- 中规中矩的Spring事件监听
- java poi导出Excel表格(动态表头)
- mysql完整导出身份证
- 【C++】C++11
- 毕业设计 单片机的自动售货机设计与实现(源码+硬件+论文)
- 数据分析---网站日志流分析
热门文章
- 使用免费组件view pdf 文档
- ipviking,大数据之美
- Fedora32 安装搜狗拼音中文输入法/安装 + FCITX 输入法 Rime/拼音
- 基于CNN卷积神经网络的minst数据库手写字识别
- Web设计的十个基础流程[转自SOVO网站]
- ACM算法笔记(五)贪心算法
- IT战略投资创收下滑7% 联想筹钱加码PC核心
- 【Rust日报】2021-12-14 Lapce: 用Rust编写的闪电般快速且功能强大的代码编辑器
- 90%的面试官都会问到交换网络里面冗余和破环的STP协议
- 十二、JSONView插件和 浏览器屏纸在Google浏览器上安装和使用