机械臂功能

睿眼视觉感控教学科研平台手册

Ron 2024-05-08

前言

    睿尔曼智能科技有限公司致力于让公司的超轻量机械臂成为易用、智能、通用的作业工具走进千行百业和千家万户。为此,公司开发了一套 AI 机械臂软件,实现了用(视觉)机械臂进行识别、定位和抓取日常物体的目的。

    睿眼(Realeye)是一款集手眼标定、识别、定位、抓取、视控全流程为一体的 AI 产品,无需训练模型,便可以其 AI 算法结合机械臂硬件实现对万事万物的定位抓取功能。睿眼产品拥有人性化的交互方式、易操作的界面,通过无训练模型实现抓取功能,让用户仅需要关注需求本身,实现用户使用智能算法和操作机械臂都能达到触手可及的效果。

一、安装说明

    目前睿眼仅支持 x86 架构的 windows10 或 windows11 操作系统,不久的将来我们将开发和集成在 Linux 操作系统以及在 arm 架构上使用。在安装和使用“睿眼”系统时,请按以下步骤操作。本文“睿眼”均在windows环境下运行。

1.1下载与安装

    1. 下载软件:首先,从官方网站或指定的下载链接获取“睿眼”系统的安装包。确保下载的文件完整无损,并且与您的操作系统版本兼容。

    2. 选择安装路径:选择一个不含中文字符的文件夹作为安装路径。中文字符在某些情况下可能导致软件运行出错。

    3. 解压文件:下载完成后,解压realeye2_2和ai_software_train3两个文件夹。这两个文件夹包含了“睿眼”系统的核心文件和运行环境。

1.2运行系统

    1.打开终端:进入realeye2_2文件夹,然后在此文件夹中打开终端。

    2.启动系统:在终端窗口中,导航到ai_software_train3文件夹,将此路径复制粘贴到上面打开的终端,并输入完整的命令:\python.exe ./main.py。然后按下回车键。操作如下图所示。

图1 “睿眼”启动

    3.等待启动:系统启动可能需要十几秒的时间,请耐心等待。在此期间,不要关闭终端窗口或进行其他操作。“睿眼”首页如下图所示。

图2 “睿眼”首页

1.3设备检查与标定

    1. 设备检查:在系统启动后,首先检查网络、摄像头、机械臂和GPU是否成功连接。此外,还需要确保外置音响正常工作。

    2. 手眼标定与夹爪标定:设备检查无误后,进行手眼标定和夹爪标定。这两个步骤对于确保系统的准确性和稳定性至关重要。手眼标定与夹爪标定具体步骤请按照标题四进行操作,确保标定过程准确无误。

1.4使用系统

    1. 放置物体:标定完成后,您可以将物体放置在相角视野范围内,并且确保机械臂可以到达。请注意,一次只能放置一个物体,以避免干扰和误差。

    2. 开始操作:物体放置好后,您就可以开始使用“睿眼”系统进行各种操作了。根据具体需求,您可以调整摄像头角度、控制机械臂移动、处理图像等。

1.5注意事项

    1. 保持环境整洁:在使用“睿眼”系统时,请保持环境整洁,避免灰尘和杂物干扰摄像头和机械臂的工作。

    2. 遵循操作规范:在进行标定和操作时,请遵循系统提示和操作规范,以确保安全和准确性。

    3. 及时维护:定期对系统进行维护和检查,确保设备处于最佳工作状态。

    总之,在使用“睿眼”系统时,请仔细阅读以上步骤和注意事项,并严格按照要求进行操作。如有任何疑问或需要帮助,请随时联系睿尔曼技术支持。祝您使用愉快!

二、语音识别功能

    “睿眼”语音识别功能集成了科大讯飞语音识别的SDK,通过呼叫“小睿,小睿”,唤醒“睿眼”。将物体放在“睿眼”能够识别的视野范围内,“睿眼”将提醒用户“小睿要开始工作了哦”,然后对识别到的物体进行抓取,然后放置到用户指定的位置,若放置的物体超过一个,睿眼将语音提示“小睿识别到的物体不止一个,请移开多余物体。”将物体移开后,“睿眼”识别到一个物体且在机械臂的运动范围内,

2.1语音信号采集

    当用户通过“睿眼”设备发出语音指令时,比如呼叫“小睿,小睿”,设备内置的麦克风会首先捕捉这些声音信号。麦克风会将声波转化为电信号,这一步骤是语音识别的基础。

2.2预处理

    采集到的语音信号会经过一系列预处理步骤,包括降噪、去回声、自动增益控制(AGC)等。这些预处理技术旨在确保语音信号的清晰度和准确性,为后续识别提供良好的基础。

2.3声学模型

    预处理后的语音信号会进入声学模型进行识别。声学模型基于深度学习算法,通过大量的语音数据训练得到。它能够识别语音中的音素、单词和短语,并将这些元素与预先定义的声音模式进行匹配。

2.4语言模型

    与声学模型同时工作的还有语言模型。语言模型基于统计学原理,通过分析大量文本数据掌握语言的结构和规律。它根据上下文信息预测用户接下来可能说的内容,并与声学模型的识别结果相结合,生成最终的识别文本。

2.5后处理

    识别出的文本会经过后处理步骤,包括纠正错别字、优化语法等,以确保识别结果的准确性和流畅性。

2.6集成与协同工作

    在“睿眼”中,声学模型、语言模型以及其他相关技术是协同工作的。当用户发出指令时,这些模型和技术会共同发挥作用,确保“睿眼”能够准确理解用户的意图,并快速、准确地执行相应的操作。由此,我们可以看到“睿眼”的语音识别功能是一个高度集成、协同工作的系统。它结合了声学模型、语言模型以及多种预处理和后处理技术,从而实现了高效、准确的语音识别功能,为用户提供了极大的便利和效率提升。

三、睿眼功能介绍

3.1定点抓取

(1)主要功能按键

点击图标,打开定点抓取界面

【播放画面】播放当前画面(或播放过程中停止)

【标记点位】设置点位:在画面中点击设置目标点位,若点位设置不理想可再次点击设置。

(2)页面显示

睿眼定点抓取界面如图所示

图3 定点抓取页面

①:摄像头画面。

②:当前选择的点位信息。

③:当前画面的深度信息(像素点深浅代表距离远近)

④:日志信息

3.2手眼标定

(1)主要功能按键

【播放画面】播放当前画面(或播放过程中停止)

【采集图片】采集图片:采集当前画面图片并同步采集机械臂位姿信息,保存在后台。

【计算结果】计算结果:根据当前采集的信息计算手眼标定的具体结果,并在页面中输出。

【清空图片】清空图片:清空当前所有的图片,并开始新一轮的采集

(2)页面显示

图4 手眼标定页面

①:主要摄像头画面。

②:当前已经采集的所有图片信息

③:计算出来的旋转矩阵结果。

④:计算出来的平移矩阵结果。

⑤:当前的日志信息。

四、机械臂标定

    手眼标定是指求解出机械臂的末端坐标系与相机坐标系之间的坐标转换关系,相机是“眼”,机械臂是“手”。手眼标定有两种情形:第一种是相机固定在机械臂末端,相机相对于机械臂末端是固定的,相机跟随机器臂移动,称为“眼在手上”;第二种是相机和机械臂分离,相机相对于机械臂的基座是固定的,机械臂的运动对相机没有影响,称为“眼在手下”。“睿眼”采用“眼在手上”标定方式。手眼标定非常依赖机器人给出的参数,如果参数不准确,一定会影响到标定结果。而且还很难察觉. 否则,会浪费大量时间在检查摄像头标定步骤中, 却忽略机器人参数本身。

4.1手眼标定实现步骤

4.1.1 选择合适的标定工具

    首先准备一张棋盘格标定板,标定板也很重要,简单的棋盘格标定板可以从OpenCV的官网下载,如果追求精度,那就要在淘宝上购买更精确的标定板。此外,标定板应具有良好的稳定性和平整性,以确保在整个标定过程中标定板的位置不会改变。下图为OpenCV的棋盘标定板, 角点计算是算这个棋盘的内部角点(也就是正方块的角),就是说边缘部分的角是不算的。那么从左往右数,这个棋盘的长中,角点有9个, 宽中角点有6个。就是说这个棋盘是6*9的。

图5 棋盘格标定板

4.1.2 安装标定板与相机

    将标定板固定在一个稳定且易于操作的平台上,如三脚架或光学平台上。确保标定板在整个标定过程中保持静止,以避免由于运动导致的标定误差。将相机安装在机械臂的末端执行器上,确保相机能够清晰地拍摄到标定板。最好相机拍摄标定板的画面占整个画面的80%以上。同时相机的安装位置和方向应根据具体应用场景进行调整,保证光线良好,以获得最佳的拍摄效果。

4.1.3 采集标定数据

    首先点击“睿眼”左下角图案,进入手眼标定,“睿眼”标定首页如图所示。再点击左上角的打开相机进行图像采集。

图6 睿眼标定界面

    通过控制机械臂,使相机从不同的角度和位置拍摄标定板。在采集标定数据时,需要注意以下几点:

    * 确保每张照片都能清晰地看到标定板上的角点,避免角点被遮挡或模糊,每张图片中的标定板至少占整图的80%以上。

    * 拍摄多组照片以提供足够的数据进行标定,一般建议拍摄20-30张照片。

    * 在拍摄过程中,尽量保持相机与标定板之间的距离和角度变化,以获取更全面的标定数据。

    拍摄完一张图片后,点击图案进行保存,若想删除某张拍摄不理想的图片,点击进行删除,重新拍摄。直至拍摄完20-30张图片后,点击图案即可,“睿眼”将自动计算出转换矩阵。点击文件夹中的config.yaml文件,可以看到生成的转换矩阵、平移矩阵保存在此处。转换矩阵、平移矩阵如图所示。

图7 config.yaml文件

4.1.4 提取角点信息

    “睿眼”中使用了OpenCV对采集的照片进行处理,提取标定板上角点的坐标信息。这一步骤通常包括图像预处理、角点检测和坐标提取等步骤。确保提取的角点坐标准确无误,以提高标定精度。

4.1.5 进行手眼标定

    手眼标定的目的是找到一个变换矩阵,使得相机坐标系中的点能够转换到机器人手臂坐标系中。设相机坐标系中的点为,机器人手臂坐标系中的点为 。则手眼标定的问题可以转化为求解以下方程:

 

其中, 是机器人手臂的变换矩阵, 是相机与机器人手臂之间的变换矩阵(即手眼变换矩阵)。

为了求解 ,我们需要多组对应的 坐标。通过最小二乘法或其他优化算法,我们可以得到 的最优解。

4.1.6 验证标定结果

    为了验证标定结果的准确性,我们可以使用已知的目标物体进行测试。将目标物体放置在相机视野中,通过机器人手臂控制相机拍摄目标物体的照片。然后,利用标定结果将相机坐标系中的目标物体位置转换到机器人手臂坐标系中。比较转换后的位置与实际位置之间的偏差,如果偏差较小,则说明标定结果是准确的。

4.1.7 优化标定参数

    如果验证结果显示标定参数不够准确,我们可以通过以下方式优化标定参数:

    * 增加标定照片的数量,以提供更多的数据进行标定。

    * 改变标定板环境光源,以保证标定时更加良好的光线。

    * 调整标定板的位置和角度,以获得更全面的标定数据。

    通过重复进行标定和验证过程,我们可以逐渐优化标定参数,提高标定精度。

    总之,眼在手上标定是确保机器人视觉系统精度的重要步骤。通过选择合适的标定工具、采集准确的标定数据、使用合适的标定算法并进行验证和优化,我们可以获得准确的相机与机器人手臂之间的相对位置关系,从而实现精确的机器人操作和视觉引导。

4.2工具坐标系标定步骤

    机械臂工具坐标系标定是指确定机械臂末端执行器坐标系相对于机械臂基坐标系的准确位置和方向的过程。通过进行工具坐标系标定,可以使机械臂能够准确地执行特定的抓取任务,并保证末端执行器在工作过程中的精度和稳定性。“睿眼”这样的智能机器人系统中,工具坐标系标定的过程被大大简化。只需通过用户界面上的几个简单步骤,系统就能够自动完成标定工作。这不仅降低了操作难度,提高了标定效率,还减少了人为错误的可能性。在“睿眼”中,只需点击右上角的机械臂图标,将夹爪闭合垂直于桌面,然后点击夹爪标定,即可完成工具坐标系标定。

    程序为适应不同长度的机械臂末端,在桌面坐标系下,将机械臂末端闭合后第六关节向下以垂直位姿触碰桌面,并调整第六关节角度,使得夹爪面与机械臂底座平行(如下图),点击【夹爪标定】,此时软件自动计算机械臂末端长度并保存以备抓取使用。注意,由于人为手动调整第六关节依然会有些误差,当抓取位置向下或向上偏离时,可以微调软件包内的 ARM_GRIPPER_LENGTH 的长度,单位为毫米。

图8 夹爪标定界面

    请尽可能将机械臂的摄像头和夹爪安装在同一角度位置,摄像头与机械臂末端的零刻度位置对齐,这会避免许多抓取过程中的问题。如下图所示。

图9 夹爪标定 

五、睿眼无模型抓取

    首先按照标题四完成手眼标定和机械臂工具坐标系标定,尽可能保证标定的准确性,否则将会影响抓取的准确性。打开定点抓取界面,点击按钮,打开相机,将待抓取的物体放置在相机可拍摄到的画面内,机械臂在开始抓取前将会语音提醒用户开始抓取,然后执行抓取动作,如果识别到的物体不止一个或者不在相机的视野范围内,“睿眼”也会语音提醒用户移开多余的物体或者将物体放置在相机的视野范围内。如果物体放置的位置不可达,请重新放置到可达区域即可。

六、软件配置说明

6.1软件配置方式

    使用支持yaml文件格式读写的方式打开软件解压目录下的【config.yaml】文件,修改任一配置信息后保存文件即可生效。

建议您在修改配置文件前备份配置文件,以免格式错误后无法正常运行软件。

6.2软件配置说明

(1)     ARM_GRIPPER_LENGTH:

    夹爪长度,不建议自行修改,使用【夹爪标定】功能,软件会自动计算该配置。

(2)    GRIPPER_CATCH_V:

    机械臂运动速度,可以自行修改,实时生效。

(3)    ARM_CODE:

    机械臂型号,比如 RM65 请输入【65】,RM75 请输入【75】

(4)    ARM_HOST:

    机械臂控制器 IP 地址,可以自行修改。

(5)    ARM_SOCKET_PORT:

    机械臂控制器透传端口号,可以自行修改。

(6)    AUTO_COLLECTION_ARM_FRAME_RATE:

    智能采集【camera】和【arm】两种采集中每秒采集的帧数,可以自行修改。

(7)    AUTO_COLLECTION_ARM_POSE_FILE:

    智能采集中预设的机械臂运动轨迹,轨迹可以在机械臂示教器中下载并保存使用。

(8)    HAND_EYE_IMAGES_MIN_COUNT:

    手眼标定过程中图片数目的最低值,不建议自行修改,一般图片数量越多,结果越准确。

(9)    CONTINUE_CATCH:

    在抓取失败后是否继续抓取,全局设置。对所有的抓取方式生效。

(10)    VERTICAL_RX_RY_RZ:

    抓取下爪姿态,一般在【夹爪标定】之后自动设置,受人为因素影响这个值不准确时可以直接微调。

(11)    OBJECT_DEPTH_RATIO:

    桌面抓取时,设定抓取目标物体的深度。该值为物体高度的比例。例如 0.8 代表抓取深度为物体高度 * 0.8。 

(12)    ROTATION_MATRIX:

    机械臂手眼标定的转换矩阵,不建议自行修改,使用手眼标定功能软件会自动更新该值。

(13)    TRANSLATION_VECTOR:

    机械臂手眼标定的平移矩阵,不建议自行修改,使用手眼标定功能软件会自动更新该值。

(14)    RGB_RECOGNITION_RATE:

    多模态模型的置信度,支持自行修改,实时生效。

(15)    ARM_COLLISION_STAGE:

    设置机械臂动力学碰撞检测等级,等级:0~8,0-无碰撞,8-碰撞最灵敏。

七、注意事项

7.1许可管理

    软件配置了一定的许可管理,若软件许可过期或者无许可,则软件将在十分钟后退出,无法正常使用。若您需要试用,请联系睿尔曼销售进行试用申请。

7.1.1输入许可

    点击【license】点击【许可管理】,在弹出的弹窗里输入用户名,输入秘钥(用户名和秘钥必须对应,否则会出现失败的情况)点击【OK】完成输入,待看到【更新许可成功】字样,许可更新完成。

图10 许可管理界面

7.1.2许可失效

    当您的许可过期或者您的许可无效的时候,软件将在指定时间内自动退出。请联系睿尔曼支持人员获取授权。

图11 授权提示

八、常见问题

8.1简单方便的查看指南

(1)鼠标悬停

    鼠标悬停在按钮之上静置一小会,所有按钮均有文字提示。

图12 开始播放按钮

(2)获取帮助

图13 帮助页面

    点击每页均有的帮助按钮获取本页面帮助信息。

8.2摄像头报错

    一般在机械臂运动过程中,摄像头可能会因为晃动(视觉摄像头除外)接触不良,出现短暂的摄像头状态报错,这种问题不用刻意关注和解决,软件本身会对摄像头进行重连和重新配置,稍等一下即可重新使用。

8.3 GPU 状态信息报错

    确认电脑是否安装有独立的 GPU,确认 GPU 驱动是否安装完成。确认以上两点均无问题,请联系睿尔曼技术支持。

8.4 如何修改自己的配置以适应自己的机械臂环境?

    本软件的安装目录下一般会有 config.yaml内支持多种配置,请按照文件内的注释信息来修改对应配置,请一定按照 yaml 的格式修改,否则可能无法解析。

8.5 打开软件直接报错,没有看到软件界面,怎么解决?

    请确认您的睿眼解压的全路径不包括中文,然后再尝试使用管理员权限打开。若您依然无法打开,请联系睿尔曼技术支持。

8.6 该软件可以部署到其他硬件架构上去吗?

    目前因深度学习的一些环境问题,本产品目前仅支持 x86 架构的 CPU 和英伟达的 CUDA 环境下。若需其他环境支持,需联系睿尔曼技术支持启动定制化方案。

8.7 软件分为 CPU 版本和 GPU 版本,这个有什么区别呢?

    算法的执行比较依赖 Nvidia 的 gpu,当本机没有独立 gpu(要求 30 系列以上)时,可以选择使用 CPU 版本,除训练以外的其他功能可以使用,但是因 cpu 计算速度慢,所以在智能采集、识别页面都会出现较大的卡顿问题。GPU 版本需要您安装好显卡的驱动,即可体验全部功能。

8.8 如果夹爪抓取时定位不准确,距离有偏差怎么办?

    首先请确认夹爪是否安装准确,确保夹爪没有歪斜,不会晃动。其次定位不准确受限需要确认或者尝试再次手眼标定,手眼标定的结果是影响夹爪准确性的最大因素。如果仅出现了垂直方向的偏差,一般是夹爪长度设定的问题,可以通过软件中的【夹爪标定】或手动修改程序目录下的【config.yaml】的夹爪长度。

8.9 Windows 报错【 ImportError : DLL load failed while importing Shiboken:找不到指定的模块】

    Shiboken是一个代码转化工具,其依赖了windows底层的一些c++环境,需要确认电脑内的 c++扩展包安装。或可以直接使用【微软常用运行库合集_for_realeye.exe】来安装基本环境。

8.10 软件提示缺少许可怎么办?

    您可以联系睿尔曼支持人员获取试用许可,或者购买后获得永久许可即可使用。

8.11睿眼界面提示机械臂连接失败怎么办?

    检查config.yaml文件中填入的机械臂的ip地址和机械臂型号是否与真实机械臂一致,若不一致,请将真实机械臂的ip和机械臂型号填入config.yaml,同时保证电脑和机械臂在同一网段。

 

0 条评论

关于作者

Ron

这家伙很懒,什么也没写!

选择发帖板块
选择发帖板块