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