机器人

表面缺陷检测,当机器拥有视觉

人盡茶涼 提交于 2020-01-14 18:12:37
曾有一个科研项目,青岛啤酒厂委托,研究啤酒瓶的质量检测。 一般这种玻璃瓶会有一定次品、不良品,特征是,内部细细的裂缝纹路长度长于一定限制,那么这种啤酒瓶在运输或者开瓶盖的过程中就有炸裂的风险。 所以,采用计算机摄像, 机器视觉 , 人工智能 的技术,加以判断甄别,减少人工工作量和失误。 现在,各种基于人工智能、机器学习、深度学习的自动检测、探伤、表面缺陷检测的产品部署在一条条生产线上。 当你买到拿到心仪的产品的时候,映入眼帘的,就是它的外观,这是靠模具厂、组装厂的工人们精心呵护生产出来的,有的靠人眼检查,有的靠自动化设备检查,不放过一点瑕疵。 缺陷检测被广泛使用于布匹瑕疵检测、工件表面质量检测、航空航天领域等。传统的算法对规则缺陷以及场景比较简单的场合,能够很好工作,但是对特征不明显的、形状多样、场景比较混乱的场合,则不再适用。近年来,基于深度学习的识别算法越来越成熟,许多公司,例如速嵌智造,把深度学习算法应用到工业场合中。 现在,机器视觉在工业检测、包装印刷、食品工业、航空航天、生物医学工程、军事科技、智能交通、文字识别等领域得到了广泛的应用。工业检测领域是机器视觉应用中比重最大的领域,主要用于产品质量检测、产品分类、产品包装等,如:零件装配完整性检测,装配尺寸精度检测,位置/角度测量,零件识别,PCB板检测,印刷品检测,瓶盖检测,玻璃、烟草、棉花检测,以及指纹、汽车牌照、人脸

苹果扩大用机器人回收手机矿物 称愿给电动车行业提供技术

怎甘沉沦 提交于 2020-01-14 12:19:04
[ 摘要 ]在过去,苹果公司在手机维修方面闹出一些争议,被指打压外部独立的维修服务,损害了消费者的权益。 腾讯科技讯 在库克执掌下,苹果成为一家更加重视慈善事业、环境保护、消费者隐私保护的负责任跨国公司,获得了国际舆论的称道。众所周知的是,智能手机时代的到来也加剧了废旧电子产品对于自然环境的破坏,据外媒最新消息,苹果公司正在大力推广其拆解智能手机的机器人,从而改变消费电子产品的回收方式,这个机器人可以自动拆卸苹果手机,这样原材料中矿物就可以被回收和再利用。外媒也指出,苹果投入这样的力量来回收矿物材料,这也表明全球对电子产品需求的增长意味着仍然建设新的采矿项目。 据国外媒体报道,总部位于加州库比蒂诺的苹果公司表示,机器人是苹果成为不依赖采矿业的“闭环”制造商计划的一部分,一些行业分析师表示,这是一个激进的目标,是不可能实现的。 许多矿业高管指出,随着电动汽车越来越受欢迎,市场对于一些矿物材料提出了更大规模的需求,苹果的举动实际上承认了这样一种事实。 “我们不一定要和矿业公司的人竞争,”苹果公司环境、政策和社会部门主管丽莎·杰克逊说。“在一些情况变化中,矿工没有什么可害怕的。” 在德克萨斯州奥斯汀郊区的一个不起眼的仓库里,苹果的“黛西”(Daisy)机器人将苹果手机拆开,这样包括锂在内的14种矿物质就可以被提取和回收。 苹果公司已经在一些产品中使用了回收的锡、钴和稀土材料

国内外知名激光雷达公司盘点

感情迁移 提交于 2020-01-14 03:51:13
近年来,激光雷达技术在飞速发展,从一开始的激光测距技术,逐步发展了激光测速、激光扫描成像、激光多普勒成像等技术,如今在无人驾驶、AGV、机器人等领域已相继出现激光雷达的身影。随着无人驾驶、机器人等领域的兴起,国内外陆续涌现出一批激光雷达公司, 鉴于激光雷达在各领域的重要地位,本文对16家知名激光雷达公司进行了各个维度的盘点。 据调查,目前大部分企业都以无人车、机器人及无人车领域激光雷达为主要研究方向。而传统机械式激光雷达已逐渐向固态激光雷达方向转变。在价格方面,无人驾驶领域的激光雷达少则上万,多则几十万元,普遍要高于机器人及AGV等领域价格。而机器人领域的激光雷达相对来说售价更低,国内思岚科技及玩智商等企业已低至上百元。在未来,固态、小型、低成本激光雷达将是各企业的着重发力点。 国外激光雷达公司产品概况 国内激光雷达公司产品概况 激光雷达赛道争宠 各领域“头号玩家”花落谁家 从下表中我们可以看到,目前各家公司在激光雷达研发中都有其深耕的一个或多个领域,在激光雷达群雄逐鹿的赛道中,各领域的“头号玩家”究竟花落谁家。 各企业激光雷达应用领域细分 机器人领域 机器人领域,目前所涉及的企业包括了国外的Sick 、Ibeo、Hokuyo、Trimble以及国内的思岚科技、速腾聚创、禾赛科技、北醒光子、玩智商、镭神智能。在这众多企业中,思岚科技无论是从价格、寿命还是性能上来说都具有领先优势

ROS机器人030-机器人实现:map、odom、base_link、base_laser四者关系的提速理解

烂漫一生 提交于 2020-01-14 02:34:11
为了更好的集成和重用软件模块,驱动,模型以及库的开发人员需要一个坐标系的共享公约。该坐标系的共享规约让开发者为移动基座创建驱动和模型提供了一个规范。同样,开发人员用与本规范兼容的一些移动机器人基座软件能很容易的创建相应的库和应用。 1.世界坐标(map) 该map坐标系是一个世界固定坐标系,其Z轴指向上方。一般与机器人所在的世界坐标系一致,相对于map坐标系的移动平台的姿态,不应该随时间显著移动。map坐标是不连续的,这意味着在map坐标系中移动平台的姿态可以随时发生离散的跳变。 典型的设置中,定位模块基于传感器的监测,不断的重新计算世界坐标中机器人的位姿,从而消除偏差,但是当新的传感器信息到达时可能会跳变。 map坐标系作为长期的全局参考是很有用的,但是跳变使得对于本地传感和执行器来说,其实是一个不好的参考坐标。 2.里程计坐标系(odom) odom 坐标系是一个世界固定坐标系。在odom 坐标系中移动平台的位姿可以任意移动,没有任何界限。这种移动使得odom 坐标系不能作为长期的全局参考。然而,在odom 坐标系中的机器人的姿态能够保证是连续的,这意味着在odom 坐标系中的移动平台的姿态总是平滑变化,没有跳变。 在一个典型设置中,odom 坐标系是基于测距源来计算的,如车轮里程计,视觉里程计或惯性测量单元。 odom 坐标系作为一种精确,作为短期的本地参考是很有用的

robotframework笔记24

旧巷老猫 提交于 2020-01-14 01:45:32
侦听器接口 机器人框架有一个侦听器接口,可以用于接收 对测试执行通知。 示例用法包括 外部测试监控,测试失败时发送邮件消息, 与其他系统进行通信。 侦听器API版本3也使得 它可以修改测试在测试执行和结果。 侦听器类或模块与某些特殊的方法,和他们 可以用Python和Java实现。 侦听器监控 整个测试执行必须纳入使用从命令行。 除此之外, 测试库可以注册侦听器 接收 通知,图书馆是活跃的。 监听使用 监听被使用从命令行 ——侦听器 选项,侦听器是给它的名称作为参数。 的 侦听器的名称叫从类或模块实现 监听器接口,同样 测试库的名字 从类 实现它们。 指定监听器必须是相同的 模块搜索 路径 在测试库搜索时都是进口的。 其他 选择是给听众一个绝对或相对路径文件 同样与测试库 。 可以把多个侦听器 通过多次使用这个选项使用: robot --listener MyListener tests.robot robot --listener com.company.package.Listener tests.robot robot --listener path/to/MyListener.py tests.robot robot --listener module.Listener --listener AnotherListener tests.robot 还可以给侦听器类从命令参数

RPA机器人项目实施过程中常见的十大陷阱

笑着哭i 提交于 2020-01-13 18:21:05
一、针对不合适的流程部署RPA 这样的流程包含2类: 第一类是非常复杂的流程。 针对复杂的流程做RPA规划将会产生高额的费用。复杂程度中低等的流程或子流程是RPA项目初期的最佳目标,企业可在RPA成熟之后再着眼于复杂的流程,从价值最高或构架简单的部分开始,逐步增加该流程的自动化程度。 第二类则是经常变化的流程。 RPA不适合被部署到经常变化的系统中去,频繁升级或者变更会导致RPA项目维护难度直线上升。 二、针对某一流程过度自动化 看待RPA的最佳视角是将其当作辅助工具,用来完成基础流程的操作,使人力有更多时间完成其他工作。将一个流程的70%低价值部分自动化,30%高价值部分人为处理时一个良好的初期目标。机器人完全学会每一个流程可能需要较长时间,项目应尝试通过一系列简易的变革,逐步增加流程自动化的比例。 三、低估RPA所带来的影响 在RPA项目的启动、定位和交付中会遇到很多问题。然而有2个问题可能会影响到RPA项目的延迟上线与利益实现:忽视了如何使自动化流程上线和由谁来操作RPA机器人。 一个以业务为导向的RPA卓越中心是管理提升虚拟劳动力的最佳方式。着手构建卓越中心,就IT管理达成共识,训练员工使用RPA机器人并持续优化流程。 四、采取传统方法实施RPA 通常企业采取过于工程化的软件实施方法来部署RPA,其中包括低价值的文档和阶段性划分

创乐博机器人学习

依然范特西╮ 提交于 2020-01-13 13:36:29
文章目录 说明 快捷键 另起一个终端 跳到工程目录 代码位置 底盘代码 初步使用 配置连接的IP地址 打开底盘运行程序 登录 运行 打开键盘控制程序 打开调试窗口 打开软件 打开坐标配置 数据校正 IMU自动校正 进入目录 配置文件 查看精度 自动校准 角速度校正 比例因子的计算 登录 运行python文件 在虚拟机运行配置程序 修改配置文件 线速度校正 登录 运行python文件 在虚拟机运行配置程序 修改配置文件 动态调试PID参数 SLAM地图的创建与使用 地图的创建地图 登录并开启底盘程序 登录并开启雷达 不需登录打开调试窗口 加载文件 不需登录启动键盘控制 选择区域自动构建地图 打开自动构建地图 打开调试工具 Hector算法构建地图 登录并开启底盘程序 打开hector slam节点 打开调试工具 打开键盘 Karto算法构建地图 登录并开启底盘程序 打开karto slam节点 打开调试工具 打开键盘 保存地图 进入目录中 赋予脚本权限 执行脚本保存地图 开始导航 登录并重新打开底盘程序 登录并打开导航 重新打开调试终端 校准小车位置 让机器人到达目标位置 多点导航 打开底盘程序 打开多点导航程序 打开调试工具 到达指定区域 摄像头寻线 打开底盘程序 打开摄像头 寻线 雷达跟随 打开底盘程序 打开摄像头 打开雷达跟随程序 APP控制与图像监控 打开底盘程序 打开摄像头

robotframework笔记25

人走茶凉 提交于 2020-01-13 09:46:03
library 文档工具(Libdoc) Libdoc是机器人框架内置的工具生成的关键字的文档 测试库和资源文件的HTML和XML格式。 前 格式适用于人类,后者 骑 和其他 工具。 Libdoc显示库或也有几个特殊的命令 在控制台上资源信息。 可以创建文档: 测试库实现 Python 或 Java 使用正常 静态库API, 测试库使用 动态API ,包括远程库 资源文件 。 另外可以使用Libdoc创建的XML规范 作为输入。 一般使用 剧情简介 python -m robot.libdoc [options] library_or_resource output_file python -m robot.libdoc [options] library_or_resource list|show|version [names] 选项 - f , - - -格式 < html | xml > 指定是否要生成HTML或XML输出。 如果不使用此选项,格式 扩展的输出文件。 - f , ——docformat <机器人其他html文本| | | > 指定源文件的格式。 可能的 值是机器人框架的文档格式, HTML、文本和恰好。 默认值 可以指定在测试库源代码和 初始默认值 机器人 。 2.7.5新机器人框架。 - n , ——名字 <新名称> 集的名字记录库或资源。 - v , —

robotframework笔记23

假装没事ソ 提交于 2020-01-12 19:56:28
远程库接口 远程库接口提供了对在测试库 比机器人框架本身是在不同的机器上运行, 同时实现图书馆使用其他语言比 本机支持Python和Java。 为一个测试库用户远程 library 看起来几乎一样的其他测试库,和 开发测试库使用远程库接口也 非常接近创造 正常测试库 。 介绍准备 有两个主要原因使用远程库API: 可以实际库在不同的机器上 在机器人运行框架。 这允许有趣 分布式测试的可能性。 测试库可以使用任何语言,支持实现 xml - rpc 协议。 在撰写本文时 有现成的 远程服务器 对于Python、Java、Ruby。 净,Clojure、Perl和node . js。 远程库接口提供的远程库 其中的一个 标准库 。 这个库没有任何自己的关键字,但它的工作原理 作为一个核心框架和关键字实现之间的代理 其他地方。 远程库与实际库 通过远程服务器实现,远程库和 服务器使用一个简单的交流 远程协议 最重要的一个 xml - rpc通道。 所有这一切的高级体系结构 下图所示: 机器人与远程库体系结构框架 请注意 远程客户端使用Python的标准 xmlrpclib 模块。 它 不支持自定义xml - rpc扩展的xml - rpc实现 服务器。 考虑远程库使用 导入远程库 远程库需要知道远程服务器的地址 否则进口和使用它提供的关键字是“不” 不同于其他库是如何使用的。

剑指offer 面试题13 机器人的运动范围

只愿长相守 提交于 2020-01-12 19:28:31
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? tips: bfs,记得设置isVisited矩阵,否则可能会复杂度过大。 书上也有用递归做的,代码比较简洁。 class Solution { public : bool isVaildPos ( int threshold , int x , int y ) { int sum = 0 ; while ( x > 0 ) { sum + = x % 10 ; x / = 10 ; } while ( y > 0 ) { sum + = y % 10 ; y / = 10 ; } return sum <= threshold ; } int movingCount ( int threshold , int rows , int cols ) { if ( rows <= 0 || cols <= 0 || threshold < 0 ) { return 0 ; } vector < vector < bool >>