diff --git a/openarm_two_arms/launch/display_xacro.launch.py b/openarm_two_arms/launch/display_xacro.launch.py
new file mode 100644
index 0000000..50ad05e
--- /dev/null
+++ b/openarm_two_arms/launch/display_xacro.launch.py
@@ -0,0 +1,50 @@
+import os
+import launch
+import launch_ros
+import xacro
+
+from launch.substitutions import LaunchConfiguration
+from ament_index_python import get_package_share_directory
+
+
+def get_package_file(package, file_path):
+ """Get the location of a file installed in an ament package"""
+ package_path = get_package_share_directory(package)
+ absolute_file_path = os.path.join(package_path, file_path)
+ return absolute_file_path
+
+
+def generate_launch_description():
+ xacro_file = get_package_file("openarm_two_arms", "urdf/openarm_two_arms.urdf.xacro")
+ urdf = xacro.process_file(xacro_file).toprettyxml(indent=" ")
+ default_rviz_config_path = get_package_file("openarm_two_arms", "rviz/robot_description.rviz")
+
+ return launch.LaunchDescription(
+ [
+ launch_ros.actions.Node(
+ name="robot_state_publisher",
+ package="robot_state_publisher",
+ executable="robot_state_publisher",
+ output="screen",
+ parameters=[{"robot_description": urdf}],
+ ),
+ launch_ros.actions.Node(
+ name="joint_state_publisher_gui",
+ package="joint_state_publisher_gui",
+ executable="joint_state_publisher_gui",
+ output="screen",
+ ),
+ launch.actions.DeclareLaunchArgument(
+ name="rvizconfig",
+ default_value=str(default_rviz_config_path),
+ description="Absolute path to rviz config file",
+ ),
+ launch_ros.actions.Node(
+ name="rviz",
+ package="rviz2",
+ executable="rviz2",
+ output="screen",
+ arguments=["-d", LaunchConfiguration("rvizconfig")],
+ ),
+ ]
+ )
diff --git a/openarm_two_arms/package.xml b/openarm_two_arms/package.xml
index bd79d97..1704359 100644
--- a/openarm_two_arms/package.xml
+++ b/openarm_two_arms/package.xml
@@ -4,8 +4,8 @@
openarm_two_arms
0.0.0
TODO: Package description
- TODO
- TODO: License declaration
+ Thomason Zhou
+ BSD-3-Clause
ament_cmake
diff --git a/openarm_two_arms/rviz/robot_description.rviz b/openarm_two_arms/rviz/robot_description.rviz
index 6908d83..5194843 100644
--- a/openarm_two_arms/rviz/robot_description.rviz
+++ b/openarm_two_arms/rviz/robot_description.rviz
@@ -23,7 +23,7 @@ Visualization Manager:
Value: true
Enabled: false
Global Options:
- Fixed Frame: l_pedestal_02_urdf_v002
+ Fixed Frame: pedestal_link
Frame Rate: 30
Name: root
Tools:
diff --git a/openarm_two_arms/urdf/openarm_left.urdf b/openarm_two_arms/urdf/openarm_left.urdf
new file mode 100644
index 0000000..48bc01e
--- /dev/null
+++ b/openarm_two_arms/urdf/openarm_left.urdf
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/openarm_two_arms/urdf/openarm_right.urdf b/openarm_two_arms/urdf/openarm_right.urdf
new file mode 100644
index 0000000..85db765
--- /dev/null
+++ b/openarm_two_arms/urdf/openarm_right.urdf
@@ -0,0 +1,487 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/openarm_two_arms/urdf/openarm_two_arms.urdf b/openarm_two_arms/urdf/openarm_two_arms.urdf
index 782c67d..6a480ce 100644
--- a/openarm_two_arms/urdf/openarm_two_arms.urdf
+++ b/openarm_two_arms/urdf/openarm_two_arms.urdf
@@ -1,7 +1,7 @@
-
+
@@ -443,7 +443,7 @@
-
+
@@ -512,7 +512,7 @@
-
+
diff --git a/openarm_two_arms/urdf/openarm_two_arms.urdf.xacro b/openarm_two_arms/urdf/openarm_two_arms.urdf.xacro
new file mode 100644
index 0000000..3a64dd9
--- /dev/null
+++ b/openarm_two_arms/urdf/openarm_two_arms.urdf.xacro
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/openarm_two_arms/urdf/openarm_two_arms_pedestal.urdf b/openarm_two_arms/urdf/openarm_two_arms_pedestal.urdf
new file mode 100644
index 0000000..715a4e8
--- /dev/null
+++ b/openarm_two_arms/urdf/openarm_two_arms_pedestal.urdf
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+