主要内容

移动

在场景中移动机器人平台

自从R2022a

    描述

    移动(平台,类型,运动)移动机器人平台的类型“基地”在该方案中根据指定的运动。

    例子

    移动(平台,类型,配置)移动的关节rigidBodyTree基于机器人平台的类型“联合”在该方案中根据指定的联合配置。

    例子

    全部折叠

    创建一个robotScenario对象。

    场景= robotScenario (UpdateRate = 1, StopTime = 10);

    创建一个rigidBodyTree对象的Franka Emika熊猫机械手使用loadrobot

    robotRBT = loadrobot (“frankaEmikaPanda”);

    创建一个rigidBodyTreerobotPlatform使用机械手模型对象。

    机器人= robotPlatform (“操纵者”场景,RigidBodyTree = robotRBT);

    创建一个非rigidBodyTreerobotPlatform一个盒子来操纵的对象。指定网格类型和大小。

    盒= robotPlatform (“盒子”场景中,碰撞=“网”,InitialBasePosition = [0.5 0.15 0.278]);updateMesh(盒子,“长方体”碰撞=“网”、大小= (0.06 0.06 0.1))

    想象的场景。

    ax = show3D(场景中,碰撞=“上”);视图(79年,36)光

    指定的初始和拾音器联合配置机械手,将机械手从最初对接近。

    initialConfig = homeConfiguration (robot.RigidBodyTree);pickUpConfig = [0.2371 -0.0200 0.0542 -2.2272 0.00132.2072 -0.9670 0.0400 0.0400);

    创建一个RRT路径规划使用manipulatorRRT对象,并指定机械手模型。

    规划师= manipulatorRRT (robot.RigidBodyTree scenario.CollisionMeshes);计划。IgnoreSelfCollision = true;

    计划之间的路径的初始和拾音器联合配置。然后,想象整个路径,插入路径成小步骤。

    rng (“默认”)路径=计划(计划、initialConfig pickUpConfig);路径=插入(规划师,路径,25);

    建立了模拟。

    设置(场景)

    之前检查碰撞机械手拿起盒子。

    checkCollision(机器人,“盒子”,IgnoreSelfCollision =“上”)
    ans =逻辑0

    移动机械手的关节沿路径和可视化的场景。

    helperRobotMove(路径,机器人,场景,ax)

    检查碰撞后机械手拿起盒子。

    checkCollision(机器人,“盒子”,IgnoreSelfCollision =“上”)
    ans =逻辑1

    使用附加函数把盒子机械手的夹持。

    附加(机器人,“盒子”,“panda_hand”,ChildToParentTransform = trvec2tform ([0 0 0.1]))

    指定的下降联合配置机械手移动机械手的上车对箱子下车姿势。

    dropOffConfig = [-0.6564 0.2885 -0.3187 -1.5941 0.11031.8678 -0.2344 0.04 0.04);

    计划之间的道路上车和下车联合配置。

    路径=计划(计划、pickUpConfig dropOffConfig);路径=插入(规划师,路径,25);

    移动机械手的关节沿路径和可视化的场景。

    helperRobotMove(路径,机器人,场景,ax)

    使用分离函数分离机械手爪的盒子。

    分离(机器人)

    计划下降之间的路径和初始联合配置移动机械手从盒子下降对初始姿势。

    路径=计划(计划、dropOffConfig initialConfig);路径=插入(规划师,路径,25);

    移动机械手的关节沿路径和可视化的场景。

    helperRobotMove(路径,机器人,场景,ax)

    图包含一个坐标轴对象。坐标轴对象包含东(m), ylabel北(m)包含47块类型的对象,线。这些对象代表panda_link1_coll_mesh, panda_link2_coll_mesh、panda_link3_coll_mesh panda_link4_coll_mesh, panda_link5_coll_mesh, panda_link6_coll_mesh, panda_link7_coll_mesh, panda_hand_coll_mesh, panda_leftfinger_coll_mesh, panda_rightfinger_coll_mesh panda_link0_coll_mesh。

    Helper函数移动机械手的关节。

    函数helperRobotMove(路径,机器人,场景,ax)idx = 1:尺寸(路径,1)jointConfig =路径(idx:);(移动机器人,“联合”jointConfig) show3D(场景,fastUpdate = true,父母= ax,碰撞=“上”);drawnow推进(场景);结束结束

    输入参数

    全部折叠

    机器人平台在该方案中,指定为一个robotPlatform对象。

    类型的机器人平台,指定为“基地”“联合”

    数据类型:字符|字符串

    机器人平台运动在场景中,当前实例指定为一个16-element向量与这些元素:

    • (xyz]——职位xyz在米相互重合。

    • (vxvvz]——速度xyz方向在米每秒。

    • (斧头阿兹]——加速度xyz方向在米每秒的平方。

    • (qwqx、qy求出]——四元数向量方向。

    • (的天气王寅wz]——角速度弧度每秒。

    数据类型:|

    机器人平台联合配置在场景中,当前实例指定为一个N元向量。N关节相关的总数吗rigidBodyTree对象。

    数据类型:|

    版本历史

    介绍了R2022a