How to do Motion planning with a Delta-Robot?

asked 2022-06-03 05:15:00 -0500

ddauth gravatar image

Hello, I'm trying to implement my custom delta-robot into moveit for motion planning. But I'm struggling at the point to implement the URDF model into moveit. I created a moveit config with the URDF model mentionend below but I can't move the endeffector like I want to. I know u can't implement closed loop chains in URDF models but I saw a couple of projects with delta-robots which used moveit aswell. I guess the solution is to create a URDF model without a closed chain and create a custom kinematic solver because the standard ones from moveit cannot handle a delta-robot? Can somebody tell me what I actually need to do to implement my own delta-robot into moveit? I wanna use moveit for the motion planning part to get the trajectory and send it to the PLC which controlls the motors. Is it wrong to use moveit there or are there better packages/ways to solve this problem?

Thanks for ur help.

ROS distro: noetic, Linux: Debian Buster 10

URDF model of my delta-robot:

<?xml version="1.0"?>

<robot name="Delta_robot">

<link name="base_link"> <visual> <geometry> <cylinder length="0.0060" radius="0.128"/> </geometry> <material name="grey"> <color rgba="0.55 0.55 0.55 0.5"/> </material> </visual> <collision> <geometry> <cylinder length="0.0060" radius="0.128"/> </geometry> </collision> </link>

<link name="arm_top1"> <visual> <origin xyz="0.070 0 0" rpy="0 0 0"/> <geometry> <box size="0.140 0.020 0.020"/> </geometry> <material name="white"> <color rgba="0.9 0.9 0.9 1"/> </material> </visual> <collision> <geometry> <box size="0.140 0.020 0.020"/> </geometry> </collision> </link>

<joint name="base_arm1" type="revolute">
    <axis xyz="0 1 0"/>
    <limit effort="100.0" lower="-0.3490658504" upper="1.483529864" velocity="0.5"/>
    <parent link="base_link"/>
    <child link="arm_top1"/>
    <origin xyz="-0.1108512517 0.064 0" rpy="0 0 2.61799"/> 
</joint>

<!--ROBOT ARM 2-->
<link name="arm_top2">
    <visual>
        <origin xyz="0.070 0 0" rpy="0 0 0"/>
        <geometry>
            <box size="0.140 0.020 0.020"/> 
        </geometry>
        <material name="white"/>
    </visual>
    <collision>
        <geometry>
            <box size="0.140 0.020 0.020"/>
        </geometry>
    </collision>
</link>

<joint name="base_arm2" type="revolute">
    <axis xyz="0 1 0"/>
    <limit effort="100.0" lower="-0.3490658504" upper="1.483529864" velocity="0.5"/>
    <parent link="base_link"/>
    <child link="arm_top2"/>
    <origin xyz="0 -0.128 0" rpy="0 0 -1.57075"/> 
</joint>

<!--ROBOT ARM 3-->
<link name="arm_top3">
    <visual>
        <origin xyz="0.070 0 0" rpy="0 0 0"/>
        <geometry>
            <box size="0.140 0.020 0.020"/> 
        </geometry>
        <material name="white"/>
    </visual>
    <collision>
        <geometry>
            <box size="0.140 0.020 ...
(more)
edit retag flag offensive close merge delete