From 10feb7b7a07b45b7ed82067a9fae5c16ce12620a Mon Sep 17 00:00:00 2001 From: KingMaZito <matteo.aneddama@icloud.com> Date: Wed, 5 Apr 2023 01:09:40 +0200 Subject: [PATCH] ... --- robots/ceti_quadruple.urdf.xacro | 167 +++++++++++++++++++++++++ robots/ceti_single.urdf.xacro | 54 ++++++++ robots/dual_panda_example.urdf.xacro | 13 +- robots/panda_arm_hand.urdf.xacro | 2 +- robots/single_panda_example.urdf.xacro | 15 +++ 5 files changed, 239 insertions(+), 12 deletions(-) create mode 100644 robots/ceti_quadruple.urdf.xacro create mode 100644 robots/ceti_single.urdf.xacro create mode 100644 robots/single_panda_example.urdf.xacro diff --git a/robots/ceti_quadruple.urdf.xacro b/robots/ceti_quadruple.urdf.xacro new file mode 100644 index 0000000..8ef5830 --- /dev/null +++ b/robots/ceti_quadruple.urdf.xacro @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="utf-8"?> +<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda"> + <xacro:arg name="arm_id_1" default="panda_1" /> + <xacro:arg name="arm_id_2" default="panda_2" /> + <xacro:arg name="arm_id_3" default="panda_3" /> + <xacro:arg name="arm_id_4" default="panda_4" /> + + + <xacro:include filename="panda_arm.xacro"/> + <xacro:include filename="hand.xacro"/> + <xacro:arg name="scene" default='dummy/dummy.yaml'/> + + + <link name="world" /> + + + <xacro:property name="yaml_file" value="$(find multi_cell_builder)/results/$(arg scene)" /> + <xacro:property name="props" value="${xacro.load_yaml(yaml_file)}" /> + + <xacro:property name="x1" value= "${props['objects'][8]['pos']['x']}" /> + <xacro:property name="y1" value="${props['objects'][8]['pos']['y']}" /> + <xacro:property name="z1" value="${props['objects'][8]['pos']['z']}" /> + <xacro:property name="sx1" value="${props['objects'][8]['size']['length']}" /> + <xacro:property name="sy1" value="${props['objects'][8]['size']['width']}" /> + <xacro:property name="sz1" value="${props['objects'][8]['size']['height']}" /> + <xacro:property name="rpy1" value="${props['objects'][8]['rpy']['r']} ${props['objects'][8]['rpy']['p']} ${props['objects'][8]['rpy']['y']}" /> + + <xacro:property name="x2" value="${props['objects'][17]['pos']['x']}" /> + <xacro:property name="y2" value="${props['objects'][17]['pos']['y']}" /> + <xacro:property name="z2" value="${props['objects'][17]['pos']['z']}" /> + <xacro:property name="rpy2" value="${props['objects'][17]['rpy']['r']} ${props['objects'][17]['rpy']['p']} ${props['objects'][17]['rpy']['y']}" /> + <xacro:property name="sx2" value="${props['objects'][17]['size']['length']}" /> + <xacro:property name="sy2" value="${props['objects'][17]['size']['width']}" /> + <xacro:property name="sz2" value="${props['objects'][17]['size']['height']}" /> + + <xacro:property name="x3" value="${props['objects'][26]['pos']['x']}" /> + <xacro:property name="y3" value="${props['objects'][26]['pos']['y']}" /> + <xacro:property name="z3" value="${props['objects'][26]['pos']['z']}" /> + <xacro:property name="rpy3" value="${props['objects'][26]['rpy']['r']} ${props['objects'][26]['rpy']['p']} ${props['objects'][26]['rpy']['y']}" /> + <xacro:property name="sx3" value="${props['objects'][26]['size']['length']}" /> + <xacro:property name="sy3" value="${props['objects'][26]['size']['width']}" /> + <xacro:property name="sz3" value="${props['objects'][26]['size']['height']}" /> + + <xacro:property name="x4" value="${props['objects'][35]['pos']['x']}" /> + <xacro:property name="y4" value="${props['objects'][35]['pos']['y']}" /> + <xacro:property name="z4" value="${props['objects'][35]['pos']['z']}" /> + <xacro:property name="rpy4" value="${props['objects'][35]['rpy']['r']} ${props['objects'][35]['rpy']['p']} ${props['objects'][35]['rpy']['y']}" /> + <xacro:property name="sx4" value="${props['objects'][35]['size']['length']}" /> + <xacro:property name="sy4" value="${props['objects'][35]['size']['width']}" /> + <xacro:property name="sz4" value="${props['objects'][35]['size']['height']}" /> + + + <joint name="base_joint1" type="fixed"> + <parent link="world" /> + <child link="base_1" /> + <origin xyz="${x1} ${y1} ${(z1* 0.5) + (sz1 * 0.25)}" rpy="${rpy1}"/> + <axis xyz="0 0 1"/> + </joint> + + <joint name="base_joint2" type="fixed"> + <parent link="world" /> + <child link="base_2" /> + <origin xyz="${x2} ${y2} ${(z2* 0.5) + (sz2 * 0.25)}" rpy="${rpy2}"/> + <axis xyz="0 0 1"/> + </joint> + + <joint name="base_joint3" type="fixed"> + <parent link="world" /> + <child link="base_3" /> + <origin xyz="${x3} ${y3} ${(z3* 0.5) + (sz3 * 0.25)}" rpy="${rpy3}"/> + <axis xyz="0 0 1"/> + </joint> + + <joint name="base_joint4" type="fixed"> + <parent link="world" /> + <child link="base_4" /> + <origin xyz="${x4} ${y4} ${(z4* 0.5) + (sz4 * 0.25)}" rpy="${rpy4}"/> + <axis xyz="0 0 1"/> + </joint> + + + <link name="base_1"> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx1} ${sy1} ${z1 + (sz1 * 0.5)}" /> + </geometry> + <material name="White"> + <color rgba="1.0 1.0 1.0 1.0"/> + </material> + </visual> + <collision> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx1} ${sy1} ${z1 + (sz1 * 0.5)}" /> + </geometry> + </collision> + </link> + + <link name="base_2"> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx2} ${sy2} ${z2 + (sz2 * 0.5)}" /> + </geometry> + <material name="White"> + <color rgba="1.0 1.0 1.0 1.0"/> + </material> + </visual> + <collision> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx2} ${sy2} ${z2 + (sz2 * 0.5)}" /> + </geometry> + </collision> + </link> + + <link name="base_3"> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx3} ${sy3} ${z3 + (sz3 * 0.5)}" /> + </geometry> + <material name="White"> + <color rgba="1.0 1.0 1.0 1.0"/> + </material> + </visual> + <collision> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx3} ${sy3} ${z3 + (sz3 * 0.5)}" /> + </geometry> + </collision> + </link> + + <link name="base_4"> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx4} ${sy4} ${z4 + (sz4 * 0.5)}" /> + </geometry> + <material name="White"> + <color rgba="1.0 1.0 1.0 1.0"/> + </material> + </visual> + <collision> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx4} ${sy4} ${z4 + (sz4 * 0.5)}" /> + </geometry> + </collision> + </link> + + + <xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="base_1" xyz="-0.22 0 ${(z1* 0.5) + (sz1 * 0.25)}" /> + <xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" /> + + <xacro:panda_arm arm_id="$(arg arm_id_2)" connected_to="base_2" xyz="-0.22 0 ${(z2* 0.5) + (sz2 * 0.25)}" /> + <xacro:hand ns="$(arg arm_id_2)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_2)_link8"/> + + <xacro:panda_arm arm_id="$(arg arm_id_3)" connected_to="base_3" xyz="-0.22 0 ${(z3* 0.5) + (sz3 * 0.25)}" /> + <xacro:hand ns="$(arg arm_id_3)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_3)_link8"/> + + <xacro:panda_arm arm_id="$(arg arm_id_4)" connected_to="base_4" xyz="-0.22 0 ${(z4* 0.5) + (sz4 * 0.25)}" /> + <xacro:hand ns="$(arg arm_id_4)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_4)_link8"/> + +</robot> diff --git a/robots/ceti_single.urdf.xacro b/robots/ceti_single.urdf.xacro new file mode 100644 index 0000000..f58ec26 --- /dev/null +++ b/robots/ceti_single.urdf.xacro @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda"> + <xacro:arg name="arm_id_1" default="panda_1" /> + + + + <xacro:include filename="panda_arm.xacro"/> + <xacro:include filename="hand.xacro"/> + <xacro:arg name="scene" default='dummy/dummy.yaml'/> + + + <link name="world" /> + + + <xacro:property name="yaml_file" value="$(find multi_cell_builder)/results/$(arg scene)" /> + <xacro:property name="props" value="${xacro.load_yaml(yaml_file)}" /> + + <xacro:property name="x1" value="${props['objects'][8]['pos']['x']}" /> + <xacro:property name="y1" value="${props['objects'][8]['pos']['y']}" /> + <xacro:property name="z1" value="${props['objects'][8]['pos']['z']}" /> + <xacro:property name="sx1" value="${props['objects'][8]['size']['length']}" /> + <xacro:property name="sy1" value="${props['objects'][8]['size']['width']}" /> + <xacro:property name="sz1" value="${props['objects'][8]['size']['height']}" /> + <xacro:property name="rpy1" value="${props['objects'][8]['rpy']['r']} ${props['objects'][8]['rpy']['p']} ${props['objects'][8]['rpy']['y']}" /> + + <joint name="base_joint1" type="fixed"> + <parent link="world" /> + <child link="base_1" /> + <origin xyz="${x1} ${y1} ${(z1* 0.5) + (sz1 * 0.25)}" rpy="${rpy1}"/> + <axis xyz="0 0 1"/> + </joint> + + <link name="base_1"> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx1} ${sy1} ${z1 + (sz1 * 0.5)}" /> + </geometry> + <material name="White"> + <color rgba="1.0 1.0 1.0 1.0"/> + </material> + </visual> + <collision> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <box size="${sx1} ${sy1} ${z1 + (sz1 * 0.5)}" /> + </geometry> + </collision> + </link> + + <!-- right arm with gripper --> + <xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="base_1" xyz="-0.22 0 ${(z1* 0.5) + (sz1 * 0.25)}" /> + <xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" /> +</robot> diff --git a/robots/dual_panda_example.urdf.xacro b/robots/dual_panda_example.urdf.xacro index 45b4d14..99df197 100644 --- a/robots/dual_panda_example.urdf.xacro +++ b/robots/dual_panda_example.urdf.xacro @@ -3,15 +3,6 @@ <xacro:arg name="arm_id_1" default="panda_1" /> <xacro:arg name="arm_id_2" default="panda_2" /> - <xacro:arg name="GOAL" default='Base_task'/> - - <xacro:property name="yaml_file" value="$(find reachability)/Positionsanalyse/$(arg GOAL).yaml" /> - <xacro:property name="props" value="${load_yaml(yaml_file)}" /> - - <xacro:property name="pos_1" value="${props['Basispositionen']['panda_arm1']}" /> - <xacro:property name="pos_2" value="${props['Basispositionen']['panda_arm2']}" /> - - <xacro:include filename="panda_arm.xacro"/> <xacro:include filename="hand.xacro"/> @@ -19,11 +10,11 @@ <link name="world"/> <!-- right arm with gripper --> - <xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="world" xyz="${pos_1}" /> + <xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="world" xyz="0 0 0" /> <xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" /> <!-- left arm with gripper --> - <xacro:panda_arm arm_id="$(arg arm_id_2)" connected_to="world" xyz="${pos_2}" /> + <xacro:panda_arm arm_id="$(arg arm_id_2)" connected_to="world" xyz="0 1 0" /> <xacro:hand ns="$(arg arm_id_2)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_2)_link8"/> </robot> diff --git a/robots/panda_arm_hand.urdf.xacro b/robots/panda_arm_hand.urdf.xacro index 65ac6b9..3fd0366 100644 --- a/robots/panda_arm_hand.urdf.xacro +++ b/robots/panda_arm_hand.urdf.xacro @@ -8,7 +8,7 @@ <xacro:include filename="panda.transmission.xacro"/> <!-- end for simulation --> - <xacro:panda_arm /> + <xacro:panda_arm/> <xacro:hand ns="panda" rpy="0 0 ${-pi/4}" connected_to="panda_link8"/> <!-- for simulation --> diff --git a/robots/single_panda_example.urdf.xacro b/robots/single_panda_example.urdf.xacro new file mode 100644 index 0000000..8d80580 --- /dev/null +++ b/robots/single_panda_example.urdf.xacro @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda"> + <xacro:arg name="arm_id_1" default="panda_1" /> + + <xacro:include filename="panda_arm.xacro"/> + <xacro:include filename="hand.xacro"/> + + + <link name="world"/> + + <!-- right arm with gripper --> + <xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="world" xyz="0 0 0" /> + <xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" /> + +</robot> -- GitLab