From 3fd1df1502cf7d5184bfb3bba0c18d97827f57e5 Mon Sep 17 00:00:00 2001
From: uquzq <ventsi@DESKTOP-J41TDPJ>
Date: Thu, 4 Jul 2024 15:59:46 +0200
Subject: [PATCH] Create launch files for the 2dof simulations

---
 ...rward_kinematics_2dof_sequential_launch.py |  39 ++++
 ...ard_kinematics_2dof_simultaneous_launch.py |  39 ++++
 .../rviz/forward_kinematics_simulations.rviz  | 177 ++++++++++++++++++
 ros2_ws/src/simple_robot_2dof/setup.py        |  11 +-
 4 files changed, 263 insertions(+), 3 deletions(-)
 create mode 100644 ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_sequential_launch.py
 create mode 100644 ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_simultaneous_launch.py
 create mode 100644 ros2_ws/src/simple_robot_2dof/rviz/forward_kinematics_simulations.rviz

diff --git a/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_sequential_launch.py b/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_sequential_launch.py
new file mode 100644
index 0000000..5e456fb
--- /dev/null
+++ b/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_sequential_launch.py
@@ -0,0 +1,39 @@
+import os
+from launch import LaunchDescription
+from launch_ros.actions import Node
+from launch.actions import ExecuteProcess
+from ament_index_python.packages import get_package_share_directory
+
+def generate_launch_description():
+
+    package_name = 'simple_robot_2dof'
+
+    rviz_config_file = os.path.join(
+        get_package_share_directory(package_name),
+        'rviz',
+        'forward_kinematics_simulations.rviz'
+    )
+
+    return LaunchDescription([
+        Node(
+            package = package_name,
+            executable = 'forward_kinematics_node_2dof_2',
+            name =  'forward_kinematics_node',
+            output = 'screen',
+            parameters = []
+        ),
+        Node(
+            package = package_name,
+            executable = 'reference_node_2dof',
+            name =  'reference_node',
+            output = 'screen',
+            parameters = []
+        ),
+        Node(
+            package='rviz2',
+            executable='rviz2',
+            name='rviz2',
+            output='screen',
+            arguments=['-d', rviz_config_file]
+        )
+    ])
\ No newline at end of file
diff --git a/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_simultaneous_launch.py b/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_simultaneous_launch.py
new file mode 100644
index 0000000..06acc97
--- /dev/null
+++ b/ros2_ws/src/simple_robot_2dof/launch/forward_kinematics_2dof_simultaneous_launch.py
@@ -0,0 +1,39 @@
+import os
+from launch import LaunchDescription
+from launch_ros.actions import Node
+from launch.actions import ExecuteProcess
+from ament_index_python.packages import get_package_share_directory
+
+def generate_launch_description():
+
+    package_name = 'simple_robot_2dof'
+
+    rviz_config_file = os.path.join(
+        get_package_share_directory(package_name),
+        'rviz',
+        'forward_kinematics_simulations.rviz'
+    )
+
+    return LaunchDescription([
+        Node(
+            package = package_name,
+            executable = 'forward_kinematics_node_2dof_1',
+            name =  'forward_kinematics_node',
+            output = 'screen',
+            parameters = []
+        ),
+        Node(
+            package = package_name,
+            executable = 'reference_node_2dof',
+            name =  'reference_node',
+            output = 'screen',
+            parameters = []
+        ),
+        Node(
+            package='rviz2',
+            executable='rviz2',
+            name='rviz2',
+            output='screen',
+            arguments=['-d', rviz_config_file]
+        )
+    ])
\ No newline at end of file
diff --git a/ros2_ws/src/simple_robot_2dof/rviz/forward_kinematics_simulations.rviz b/ros2_ws/src/simple_robot_2dof/rviz/forward_kinematics_simulations.rviz
new file mode 100644
index 0000000..afc67bf
--- /dev/null
+++ b/ros2_ws/src/simple_robot_2dof/rviz/forward_kinematics_simulations.rviz
@@ -0,0 +1,177 @@
+Panels:
+  - Class: rviz_common/Displays
+    Help Height: 78
+    Name: Displays
+    Property Tree Widget:
+      Expanded:
+        - /Global Options1
+        - /Status1
+        - /Path1
+        - /Marker1
+        - /Marker1/Topic1
+      Splitter Ratio: 0.5
+    Tree Height: 696
+  - Class: rviz_common/Selection
+    Name: Selection
+  - Class: rviz_common/Tool Properties
+    Expanded:
+      - /2D Goal Pose1
+      - /Publish Point1
+    Name: Tool Properties
+    Splitter Ratio: 0.5886790156364441
+  - Class: rviz_common/Views
+    Expanded:
+      - /Current View1
+    Name: Views
+    Splitter Ratio: 0.5
+  - Class: rviz_common/Time
+    Experimental: false
+    Name: Time
+    SyncMode: 0
+    SyncSource: ""
+Visualization Manager:
+  Class: ""
+  Displays:
+    - Alpha: 0.5
+      Cell Size: 1
+      Class: rviz_default_plugins/Grid
+      Color: 160; 160; 164
+      Enabled: true
+      Line Style:
+        Line Width: 0.029999999329447746
+        Value: Lines
+      Name: Grid
+      Normal Cell Count: 0
+      Offset:
+        X: 0
+        Y: 0
+        Z: 0
+      Plane: XY
+      Plane Cell Count: 10
+      Reference Frame: <Fixed Frame>
+      Value: true
+    - Alpha: 1
+      Buffer Length: 1
+      Class: rviz_default_plugins/Path
+      Color: 25; 255; 0
+      Enabled: true
+      Head Diameter: 0.30000001192092896
+      Head Length: 0.20000000298023224
+      Length: 0.30000001192092896
+      Line Style: Lines
+      Line Width: 0.029999999329447746
+      Name: Path
+      Offset:
+        X: 0
+        Y: 0
+        Z: 0
+      Pose Color: 255; 85; 255
+      Pose Style: None
+      Radius: 0.029999999329447746
+      Shaft Diameter: 0.10000000149011612
+      Shaft Length: 0.10000000149011612
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        Filter size: 10
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /simple_robot/visualization_path
+      Value: true
+    - Class: rviz_default_plugins/Marker
+      Enabled: true
+      Name: Marker
+      Namespaces:
+        {}
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        Filter size: 10
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /simple_robot/visualization_marker
+      Value: true
+  Enabled: true
+  Global Options:
+    Background Color: 48; 48; 48
+    Fixed Frame: map
+    Frame Rate: 30
+  Name: root
+  Tools:
+    - Class: rviz_default_plugins/Interact
+      Hide Inactive Objects: true
+    - Class: rviz_default_plugins/MoveCamera
+    - Class: rviz_default_plugins/Select
+    - Class: rviz_default_plugins/FocusCamera
+    - Class: rviz_default_plugins/Measure
+      Line color: 128; 128; 0
+    - Class: rviz_default_plugins/SetInitialPose
+      Covariance x: 0.25
+      Covariance y: 0.25
+      Covariance yaw: 0.06853891909122467
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /initialpose
+    - Class: rviz_default_plugins/SetGoal
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /goal_pose
+    - Class: rviz_default_plugins/PublishPoint
+      Single click: true
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /clicked_point
+  Transformation:
+    Current:
+      Class: rviz_default_plugins/TF
+  Value: true
+  Views:
+    Current:
+      Class: rviz_default_plugins/Orbit
+      Distance: 4.086756229400635
+      Enable Stereo Rendering:
+        Stereo Eye Separation: 0.05999999865889549
+        Stereo Focal Distance: 1
+        Swap Stereo Eyes: false
+        Value: false
+      Focal Point:
+        X: 0
+        Y: 0
+        Z: 0
+      Focal Shape Fixed Size: true
+      Focal Shape Size: 0.05000000074505806
+      Invert Z Axis: false
+      Name: Current View
+      Near Clip Distance: 0.009999999776482582
+      Pitch: 0.9647961854934692
+      Target Frame: <Fixed Frame>
+      Value: Orbit (rviz)
+      Yaw: 4.703580856323242
+    Saved: ~
+Window Geometry:
+  Displays:
+    collapsed: false
+  Height: 987
+  Hide Left Dock: false
+  Hide Right Dock: false
+  QMainWindow State: 000000ff00000000fd00000004000000000000015600000341fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b00000341000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000341fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b00000341000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007740000003efc0100000002fb0000000800540069006d00650100000000000007740000025300fffffffb0000000800540069006d00650100000000000004500000000000000000000005030000034100000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+  Selection:
+    collapsed: false
+  Time:
+    collapsed: false
+  Tool Properties:
+    collapsed: false
+  Views:
+    collapsed: false
+  Width: 1908
+  X: -161
+  Y: 12
diff --git a/ros2_ws/src/simple_robot_2dof/setup.py b/ros2_ws/src/simple_robot_2dof/setup.py
index 771abab..7555111 100644
--- a/ros2_ws/src/simple_robot_2dof/setup.py
+++ b/ros2_ws/src/simple_robot_2dof/setup.py
@@ -10,6 +10,9 @@ setup(
         ('share/ament_index/resource_index/packages',
             ['resource/' + package_name]),
         ('share/' + package_name, ['package.xml']),
+        ('share/' + package_name + '/launch', ['launch/forward_kinematics_2dof_simultaneous_launch.py']),
+        ('share/' + package_name + '/launch', ['launch/forward_kinematics_2dof_sequential_launch.py']),
+        ('share/' + package_name + '/rviz', ['rviz/forward_kinematics_simulations.rviz']),
     ],
     install_requires=['setuptools'],
     zip_safe=True,
@@ -20,9 +23,11 @@ setup(
     tests_require=['pytest'],
     entry_points={
         'console_scripts': [
-            'publisher = simple_robot_2dof.reference_node_2dof:main',
-            'subscriber1 = simple_robot_2dof.forward_kinematics_node_2dof_1:main',
-            'subscriber2 = simple_robot_2dof.forward_kinematics_node_2dof_2:main',
+            #'publisher = simple_robot_1dof.reference_node_1dof:main',
+            #'subscriber = simple_robot_1dof.forward_kinematics_node_1dof:main',
+            'forward_kinematics_node_2dof_1 = simple_robot_2dof.forward_kinematics_node_2dof_1:main',
+            'forward_kinematics_node_2dof_2 = simple_robot_2dof.forward_kinematics_node_2dof_2:main',
+            'reference_node_2dof = simple_robot_2dof.reference_node_2dof:main',
         ],
     },
 )
-- 
GitLab