运动 ========================================== .. |add| image:: img/add2.png :width: 20px 在 **运动** 界面,配置仿真环境并规划运动路径。 .. hint:: 在开始设置运动相关内容前,请先根据机械臂和相机品牌连接并配置真实环境中的机械臂和相机。相关内容请参考 :doc:`../../../basic_operation/robot` 和 :doc:`../../../appendix/camera_connection/camera_IP`。如果仅在仿真环境中运行,则无需配置机械臂和相机。 配置仿真环境 +++++++++++++++ 根据实际场景,在仿真环境中添加机械臂、料筐、几何体、工具。 1. 创建项目时,已添加机械臂。如未添加,可在 **运动** 页签下快捷工具栏,单击 **机械臂**,添加机械臂并根据需要设置机械臂软限位,请参见 :doc:`../../../basic_operation/motion_operation/add_robot`。 2. 在顶部快捷工具栏,单击 **容器**,添加容器。本项目需添加两个托盘和一个传送带,添加容器后需设置容器及工作空间的尺寸、位姿等参数,请参见 :doc:`../../../basic_operation/motion_operation/add_ws`。 3. 在顶部快捷工具栏,单击 **几何体**,根据实际场景,添加几何体,用于表示环境中的相机、相机支架、围栏等障碍物。 .. image:: img/env.png :align: center :width: 350px 注册抓放 ++++++++++++ 先注册吸具,再注册抓取方式和放置垛型,然后注册抓放处理流程。 1. 注册吸具,操作参见 :ref:`basic_operation/motion_operation/add_tool:注册吸具`。 a. 在 **运动** 页签下快捷工具栏,单击 **末端工具**,选择 **注册吸具**,再添加工具形态,设置吸具的尺寸和位姿,单击 **下一步**。 .. image:: img/suctiontool.png :align: center :width: 700px b. 设置吸盘基准面的尺寸和相对于工具坐标系的位姿,可选择将吸盘基准面的尺寸或位姿与第一个碰撞长方体同步。 c. 设置吸盘物理属性,开启 **视角固定Z轴正视图**,设置每行和每列吸取单元数量,在本项目中,每行4个吸取单元,每列1个吸取单元,单击 **自动生成吸取单元**,生成4个吸取单元。 .. image:: img/unit.png :align: center :width: 700px d. 在 **吸取单元详情** 下方,根据机械臂的I/O配置,设置每个吸取单元的抓取I/O、放置I/O、掉箱检测I/O。在本项目中,I/O端口分区如下图所示。 .. image:: img/IO.png :align: center :width: 700px 在本项目中,吸盘分区I/O端口设置如下表所示,实际项目设置时,请根据机械臂的I/O配置调整。 +-------------+----------------------------+---------------------------------------------------+------------------------------------------------------------------+ | 吸取单元 | 抓取I/O | 放置I/O | 掉箱检测I/O | +=============+============================+===================================================+==================================================================+ | 吸取单元0_0 | 添加端口4,将对应值设为1, | 1. 添加端口4,将对应值设为0 | 1. 启用掉箱检测I/0和考虑传感器具体位置 | | | 开启后延时设为500ms | 2. 添加端口9,将对应值设为1,开启后延时设为500ms | 2. 使用逻辑设为“或” | | | | 3. 再次添加端口9,将对应值设为0 | 3. 添加端口14,将未掉箱时的值设为1,传感器点位设为(-100,100) | | | | | 4. 添加端口15,将未掉箱时的值设为1,传感器点位设为(100,100) | | | | | 5. 添加端口13,将未掉箱时的值设为1,传感器点位设为(-100,-100) | | | | | 6. 添加端口12,将未掉箱时的值设为1,传感器点位设为(100,-100) | +-------------+----------------------------+---------------------------------------------------+------------------------------------------------------------------+ | 吸取单元1_0 | 添加端口5,将对应值设为1, | 1. 添加端口5,将对应值设为0 | 1. 启用掉箱检测I/0和考虑传感器具体位置 | | | 开启后延时设为500ms | 2. 添加端口8,将对应值设为1,开启后延时设为500ms | 2. 使用逻辑设为“或” | | | | 3. 再次添加端口8,将对应值设为0 | 3. 添加端口1,将未掉箱时的值设为1,传感器点位设为(100,100) | | | | | 4. 添加端口10,将未掉箱时的值设为1,传感器点位设为(100,-100) | | | | | 5. 添加端口11,将未掉箱时的值设为1,传感器点位设为(-100,-100) | | | | | 6. 添加端口0,将未掉箱时的值设为1,传感器点位设为(-100,100) | +-------------+----------------------------+---------------------------------------------------+------------------------------------------------------------------+ | 吸取单元2_0 | 添加端口2,将对应值设为1, | 1. 添加端口2,将对应值设为0 | 1. 启用掉箱检测I/0和考虑传感器具体位置 | | | 开启后延时设为500ms | 2. 添加端口7,将对应值设为1,开启后延时设为500ms | 2. 使用逻辑设为“或” | | | | 3. 再次添加端口7,将对应值设为0 | 3. 添加端口2,将未掉箱时的值设为1,传感器点位设为(-100,100) | | | | | 4. 添加端口3,将未掉箱时的值设为1,传感器点位设为(100,100) | | | | | 5. 添加端口8,将未掉箱时的值设为1,传感器点位设为(100,-100) | | | | | 6. 添加端口9,将未掉箱时的值设为1,传感器点位设为(-100,-100) | +-------------+----------------------------+---------------------------------------------------+------------------------------------------------------------------+ | 吸取单元3_0 | 添加端口3,将对应值设为1, | 1. 添加端口3,将对应值设为0 | 1. 启用掉箱检测I/0和考虑传感器具体位置 | | | 开启后延时设为500ms | 2. 添加端口6,将对应值设为1,开启后延时设为500ms | 2. 使用逻辑设为“或” | | | | 3. 再次添加端口6,将对应值设为0 | 3. 添加端口4,将未掉箱时的值设为1,传感器点位设为(-100,100) | | | | | 4. 添加端口5,将未掉箱时的值设为1,传感器点位设为(100,100) | | | | | 5. 添加端口6,将未掉箱时的值设为1,传感器点位设为(100,-100) | | | | | 6. 添加端口7,将未掉箱时的值设为1,传感器点位设为(-100,-100) | +-------------+----------------------------+---------------------------------------------------+------------------------------------------------------------------+ e. 单击 **下一步**,单击 **自动生成吸取组合**。 f. 单击右下角 **完成**,回到 **吸具** 页签,单击右下角 **完成并添加到机械臂**。 g. 将吸具添加至机械臂后,设置吸具中心点相对于法兰的位姿。 .. image:: img/flange.png :align: center :width: 700px 2. 注册抓取方式,请参见 :doc:`../../../basic_operation/motion_operation/grasp_reg`。 a. 在顶部快捷工具栏,选择 “抓取方式 > 箱子抓取注册”。 b. 将抓取方式设置为 **单抓**,设置抓取规则,单击 **下一步**。 c. 在 **测试参数配置** 页签下,将测试方式设置为 **仿真运行**,垛型来源选择 **手动添加垛型**。 d. 单击 **新增箱子**,设置箱子尺寸,单击 **确定**,然后单击 **下一步**。 e. (可选)单击 **测试运行**,查看测试结果。 f. 单击右下角 **完成**。 .. image:: img/result.png :align: center :width: 700px 3. 注册将料箱拆放至输送线上的垛型,请参见 :doc:`../../../basic_operation/motion_operation/place_reg`。 a. 在顶部快捷工具栏,选择 “放置方式 > 箱子单码垛型规则(自动)”。 b. 在右侧参数设置栏,配置单码垛型规则,输送线上垛型一般设置为一层一个。 c. 单击右下角 **完成**。 .. image:: img/place.png :align: center :width: 700px 4. 注册抓放组合处理流程,请参见 :doc:`../../../basic_operation/motion_operation/add_pipeline`。 a. 在顶部快捷工具栏,选择 “抓放规划 > 组合处理流程 > 纸箱单拆单码”。 b. 在右侧参数设置栏,配置处理流程。在本项目中,抓取设置保持默认即可,放置设置中放置位姿来源选择 **工作空间的槽**,工作空间槽处理策略选择 **保留位于底层的放置物体**,抓放组合方式选择 **匹配抓取箱子和放置槽形状**。 c. (可选)在 **测试运行** 页签下,选择抓取和放置工作空间,单击 **测试运行**,查看测试结果。 d. 单击右下角 **完成**。 .. image:: img/placement.png :align: center :width: 600px