当前位置: 首页 > news >正文

做母婴产品的网站山东做网站费用

做母婴产品的网站,山东做网站费用,两个网站链接怎么做,剪辑素材网站免费实现在CoppeliaSim环境中进行手眼标定和目标追踪的一个例子。它主要涉及到机器人、机器视觉和控制算法的编程#xff0c;使用了Python语言。接下来对该代码的主要类和方法进行解析#xff1a; 1. 导入相关库 用于与CoppeliaSim模拟器通过ZeroMQ接口通信。包含Rotation类… 实现在CoppeliaSim环境中进行手眼标定和目标追踪的一个例子。它主要涉及到机器人、机器视觉和控制算法的编程使用了Python语言。接下来对该代码的主要类和方法进行解析 1. 导入相关库 用于与CoppeliaSim模拟器通过ZeroMQ接口通信。包含Rotation类用于执行各种旋转和方向变换操作。OpenCV库用于执行各种图像处理和计算机视觉任务。用于执行各种数学和矩阵运算。用于进行图像和数据的可视化。用于创建和操作迭代对象的库。用于实现与时间相关的功能。 2. 定义全局变量 分别用于定义场景路径、等待间隔、超时时间、接受的旋转误差、接受的平移误差、接受的停止速度阈值。 3. 定义主要的方法和步骤 连接到CoppeliaSim模拟器。获取模拟器中对象的句柄。 从摄像头获取图像并将其转换为OpenCV的BGR格式。设置从一个坐标帧到另一个坐标帧的变换矩阵。获取从一个坐标帧到另一个坐标帧的变换矩阵。计算实际位姿与目标位姿之间的误差。等待机器人移动到目标位姿直到误差足够小或超时。设置目标位姿并等待机器人移动完成。 4. 实施手眼标定和目标追踪 使用二维码检测来定位目标然后进行相机标定和手眼标定计算。计算机器人末端和摄像头之间的相对位姿。实现了一系列的图像获取和处理利用OpenCV库进行棋盘角点的提取。通过实验获取数据计算相机内部参数和两个相机之间的位姿。实现了基于不同位姿下的图像集合进行手眼标定。完成了在模拟器中交互式地跟踪目标的过程。 5. 保存与加载数据 使用方法来压缩和保存相关数据以便后续的分析和使用。 本代码的特点在于它结合了机器人控制、图像处理、手眼标定和交互式目标追踪等多个领域的技术是一套完整的解决方案。 视频演示 源码解析 函数 1. 通过ZeroMQ远程API连接到CoppeliaSim创建客户端实例获取CoppeliaSim API的实例停止当前模拟加载模拟场景开始模拟返回客户端和sim实例 2. 获取对象句柄 获取机器人基座的句柄获取机器人末端执行器的句柄获取第一个相机的句柄获取第二个相机的句柄获取目标球的句柄 3. 定义从CoppeliaSim视觉传感器获取图像并转换为OpenCV格式的BGR图像的函数从指定相机获取图像数据将获取的图像数据转换为NumPy数组并重塑为正确的形状将图像在垂直方向上翻转以符合OpenCV的图像显示方式 4. 定义设置给定对象在某个参考框架下的位姿位置和姿态的函数设置对象的变换矩阵以定义其位置和方向 5. 定义获取给定对象在某个参考框架下的位姿的函数初始化为4x4的单位矩阵获取对象的变换矩阵并重塑组成位姿矩阵 6. 定义计算两个位姿之间误差的函数:计算平移误差,计算旋转误差,将旋转误差转换为角度 7.定义等待机器人移动到目标位姿的函数:记录开始时间,初始化误差值为无穷大,计算已经经过的时间,如果超时则返回失败,等待一定时间,获取当前位姿,获取当前速度,计算线速度均值,计算角速度均值,计算误差,如果误差小于阈值且速度接近零则返回成功 8. 定义设置目标位姿并等待机器人移动完成的函数:设置目标位姿,等待机器人移动到目标位姿并返回结果 主程序 ########## 定义场景路径、等待间隔、超时时间以及接受的误差 设置NumPy打印选项  定义场景路径  定义等待时间间隔单位秒    定义超时时间单位秒 接受的旋转误差阈值 接受的平移误差阈值 接受的停止速度阈值 连接到CoppeliaSim并开始模拟 获取必要的句柄 ########### 设置图像的检测、摄像机标定参数并检测棋盘格角点 初始化棋盘格检测所需的终止条件:设置寻找亚像素角点的精确度和最大迭代次数,设置相机标定时需要固定的参数 设置棋盘格的尺寸和单位长度:棋盘格的行和列示例尺寸根据实际需要调整,单位长度以米为单位,初始化棋盘格的三维坐标,设置棋盘格上每个点的xy坐标z坐标默认为0 从第一个相机获取BGR图像 获取图像的高度和宽度 将图像从BGR转换为灰度图 寻找棋盘格角点 对角点坐标进行精确化 在图像上绘制并显示棋盘格角点 获取机器人末端执行器的原始位姿 定义平移和旋转参数 构建平移和旋转矩阵 设置末端执行器到目标位姿并等待动作完成 显示相机1获取的图像 将末端执行器复位到原始位姿 显示相机1获取的图像 显示相机2获取的图像 ########### 构建多个位姿变换矩阵以便在手眼标定实验中使用 定义平移和旋转的范围 根据定义的范围生成一系列变换矩阵 计算生成的变换矩阵数量 ########### 使用生成的位姿变换矩阵收集用于手眼标定的数据 初始化相机1、2图像点和对象点的列表用于相机标定 定义机器人末端执行器的位姿列表、相机1拍摄的图像列表、相机2拍摄的图像列表 遍历所有预设的变换矩阵{计算目标位姿移动机器人末端执行器到目标位姿如果移动失败则跳过此次循环。获取当前机器人末端执行器的位姿从相机1获取图像并找到棋盘格角点显示找到的角点从相机2获取图像并找到棋盘格角点显示找到的角点将找到的角点和对应的对象点分别存入列表将图像存入相应列表} 计算成功捕获棋盘格角点的图像数量 ########### 对两个相机分别进行标定获取内参和畸变系数 分别对两个相机进行标定获取相机内参矩阵和畸变系数 输出相机内参矩阵和畸变系数 ########### 进行立体标定获取两相机之间的旋转和平移矩阵 进行立体标定获取两个相机间的相对位姿关系 从仿真场景获取两个相机间的位姿关系 ########### 初始化手眼标定所需的矩阵列表 初始化手眼标定所需的数据结构{机器人夹持器到基座的旋转矩阵列表, 标定板到相机的旋转矩阵列表,机器人夹持器到基座的平移向量列表,标定板到相机的平移向量列表  } ############ 遍历采集的相机1每个图像点、对象点、末端执行器位姿以及图像 遍历每组图像点、对象点、末端执行器位姿以及图像:{ 使用solvePnP求解标定板相对于相机的位姿,在图像中绘制坐标轴并显示构造标定板到相机的变换矩阵将求解得到的旋转矩阵和平移向量添加到列表中 } 使用cv2.calibrateHandEye进行相机1手眼标定求解夹持器到相机1的变换矩阵 输出夹持器到相机1的变换矩阵 定义OpenGL到OpenCV的坐标系统转换矩阵 从场景获取末端执行器到相机1的位姿并进行坐标系统转换 根据立体标定结果计算夹持器到第二个相机的变换矩阵 从场景获取末端执行器到相机2的位姿并进行opengl到opencv坐标系统转换 将所有标定数据保存到压缩文件中以备后用 ########### 为机器人对目标进行跟踪做准备 定义一系列位姿变换用于测试不同的目标位姿 定于存储所有生成的变换矩阵列表 根据上述定义的范围生成一系列变换矩阵 向棋盘格中心的位姿变换 向后z负向的位姿变换 棋盘格基座的获取 获取并输出棋盘格的原始位姿 将机器人末端执行器和棋盘格复位到原始位姿 将棋盘格复位到原始位姿 ########### 在相机1视角下机器人对目标进行跟踪 初始化变换矩阵和图像列表用于存储相机1当前位姿、下一位姿和各位姿对应的图像存储当前机器人末端执行器的位姿、存储计算得到的下一步的机器人末端执行器位姿、存储相机1拍摄的图像列表 遍历所有预先定义的位姿变换矩阵【实现了在相机1视角下对棋盘格位姿跟踪和视觉处理的自动化实验为机器人视觉系统的测试和校准提供了重要的数据支持】{ 计算目标物体棋盘格的新位姿移动棋盘格到新位姿、如果移动失败则跳过此次循环获取相机1图像并转换为灰度图像寻找棋盘格角点打印旋转和平移误差。精细化角点位置使用solvePnP求解物体位姿计算棋盘基座到相机的变换矩阵应用向目标中心的位姿变换得到棋盘中心到相机的变换矩阵可视化并显示旋转轴。获取机器人末端执行器当前位姿计算新的末端执行器位姿以便于下一次移动添加当前末端执行器位姿到列表添加计算得到的下一步位姿到列表添加图像到列表移动机器人末端执行器到新的位姿拍摄并显示移动后的图像} 将机器人末端执行器和棋盘格复位到原始位姿 ########### 在相机2视角下机器人对目标进行跟踪 初始化变换矩阵和图像列表用于存储相机2当前位姿、下一位姿和各位姿对应的图像存储当前机器人末端执行器的位姿、存储计算得到的下一步的机器人末端执行器位姿、存储相机2拍摄的图像列表 遍历所有预先定义的位姿变换矩阵【实现了在相机2视角下对机器人位姿跟踪和视觉处理的自动化实验为机器人视觉系统的测试和校准提供了重要的数据支持】{计算目标物体棋盘格的新位姿、移动棋盘格到新位姿、如果移动失败则跳过此次循环、获取相机2的图像、转换为灰度图像、寻找棋盘格角点、打印旋转和平移误差、精细化角点位置、使用solvePnP求解物体位姿、计算物体到相机的变换矩阵、应用向目标中心的位姿变换、可视化并显示旋转轴、获取机器人末端执行器当前位姿、计算新的末端执行器位姿以便于下一次移动、添加当前末端执行器位姿到列表、添加计算得到的下一步位姿到列表、添加图像到列表、移动机器人末端执行器到新的位姿、拍摄并显示移动后的图像} 将收集的位姿和图像数据存储为压缩文件方便后续使用 将机器人末端执行器和棋盘格复位到原始位姿 ########### 在相机2视角下机器人对目标进行交互式跟踪模拟 交互式跟踪模拟{从相机2获取BGR图像、将图像转换为灰度图、 检测棋盘格角点、如果没有找到角点继续下一次循环、通过子像素角点检测精细化角点位置、使用solvePnP算法求解物体位姿、如果solvePnP求解失败继续下一次循环、初始化物体到相机的变换矩阵、根据旋转向量更新旋转矩阵、更新平移向量、应用向目标中心的位姿变换、获取当前机器人末端执行器的位姿、根据得到的相机位姿计算新的机器人末端执行器位姿、将机器人末端执行器移动到新的位姿} 作者陈晓永智能装备专业高级工程师软件工程师。机器人自动化产线仿真动画制作  The End
http://www.yingshimen.cn/news/22141/

相关文章:

  • 网站建设公司市场推广app
  • 海珠营销型网站建设怎样制作网站开发的进度表
  • 自己做家具网站龙岩代理记账公司
  • 昆明网站建设论坛金华网站推广
  • 做网站时背景图片浮动小学微机作业做网站
  • 建网站用哪个好互联网项目推广方案
  • 怎么用手机做网站盐城企业做网站多少钱
  • 创建网站的目的是什么意思珠海视窗网
  • 专业做国际网站网站架设教程
  • 自己电脑做服务器上传网站 需要备案吗会计培训网站
  • 青岛微信网站建设怎么用we做网站
  • 天猫建设网站的目的如何做一个商城类型的网站
  • 个人阿里云账号可以做网站备案荷泽网站建设
  • vi设计网站排行榜工程建筑公司网站
  • 龙岗网站多少钱怎么做ppt教程网站
  • 比较流行的网站建设技术有哪些手机wordpress建站教程
  • 带搜索的下拉框网站公司注册流程及注意事项及细节
  • 管理登陆网站开发软件微信小程序开发商家
  • 常用的网站制作上海学网站建设
  • 静态网站入侵唐山网站建设服务
  • 网站快照明天更新是什么情况丰县徐州网站开发
  • 郑州做网站和推广哪家好孝感建设银行网站
  • 0716网站建设哔哩哔哩视频大全
  • 购物网站开发报告网站建设 服务器
  • 大理州建设局网站门户网做网站怎样让内容在小窗口打开
  • 做交通锁具网站碟刹锁网站公司备案
  • 首钢建设公司网站网络文明安全行动
  • 开发一个企业网站报价服务公司的经营范围
  • 天津企业网站设计报价哪里有免费的网站推广软件啊
  • 欧米茄官网网站广州网站优化排名