hpp-tutorial 9.0.0__0-py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. cmeel.prefix/include/hpp/tutorial/config.hh +94 -0
  2. cmeel.prefix/include/hpp/tutorial/deprecated.hh +56 -0
  3. cmeel.prefix/include/hpp/tutorial/warning.hh +35 -0
  4. cmeel.prefix/lib/cmake/hpp_tutorial/cxx-standard.cmake +193 -0
  5. cmeel.prefix/lib/cmake/hpp_tutorial/hpp_tutorialConfig.cmake +209 -0
  6. cmeel.prefix/lib/cmake/hpp_tutorial/hpp_tutorialConfigVersion.cmake +65 -0
  7. cmeel.prefix/lib/cmake/hpp_tutorial/hpp_tutorialTargets.cmake +102 -0
  8. cmeel.prefix/lib/pkgconfig/hpp_tutorial.pc +22 -0
  9. cmeel.prefix/share/ament_index/resource_index/packages/hpp_tutorial +0 -0
  10. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/auf_saeule_bei_shop.png +0 -0
  11. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/ganz_links_neben_roboterplakat.png +0 -0
  12. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/ganz_links_vorn_bei_biolab.png +0 -0
  13. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/ganz_rechts_neben_kuecheninsel.png +0 -0
  14. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/hinter_shopschraenken_an_saeule.png +0 -0
  15. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/mittig_neben_roboterplakat.png +0 -0
  16. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/sink.png +0 -0
  17. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/stove.png +0 -0
  18. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/wallpaper.png +0 -0
  19. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/wallpaper2.png +0 -0
  20. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/wallpaper_ai_unihb.png +0 -0
  21. cmeel.prefix/share/hpp_tutorial/Media/materials/textures/wallpaper_project_logos.png +0 -0
  22. cmeel.prefix/share/hpp_tutorial/Media/models/meshes/glasses/__Color_A05_4.png +0 -0
  23. cmeel.prefix/share/hpp_tutorial/hook/ament_prefix_path.dsv +1 -0
  24. cmeel.prefix/share/hpp_tutorial/hook/python_path.dsv +1 -0
  25. cmeel.prefix/share/hpp_tutorial/launch/config.rviz +475 -0
  26. cmeel.prefix/share/hpp_tutorial/launch/tutorial_7_launch.py +124 -0
  27. cmeel.prefix/share/hpp_tutorial/launch/tutorial_8_launch.py +193 -0
  28. cmeel.prefix/share/hpp_tutorial/meshes/box.dae +601 -0
  29. cmeel.prefix/share/hpp_tutorial/meshes/drill.stl +0 -0
  30. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/base_link.stl +0 -0
  31. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_1.stl +0 -0
  32. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_2.stl +0 -0
  33. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_3.stl +0 -0
  34. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_4.stl +0 -0
  35. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_5.stl +0 -0
  36. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/collision/link_6.stl +0 -0
  37. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/base_link.stl +0 -0
  38. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_1.stl +0 -0
  39. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_2.stl +0 -0
  40. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_3.stl +0 -0
  41. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_4.stl +0 -0
  42. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_5.stl +0 -0
  43. cmeel.prefix/share/hpp_tutorial/meshes/staubli-tx2-90/visual/link_6.stl +0 -0
  44. cmeel.prefix/share/hpp_tutorial/package.xml +20 -0
  45. cmeel.prefix/share/hpp_tutorial/srdf/box.srdf +13 -0
  46. cmeel.prefix/share/hpp_tutorial/srdf/cup.srdf +22 -0
  47. cmeel.prefix/share/hpp_tutorial/srdf/door.srdf +14 -0
  48. cmeel.prefix/share/hpp_tutorial/srdf/fr3.srdf +92 -0
  49. cmeel.prefix/share/hpp_tutorial/srdf/ground.srdf +8 -0
  50. cmeel.prefix/share/hpp_tutorial/srdf/kitchen_area.srdf +11770 -0
  51. cmeel.prefix/share/hpp_tutorial/srdf/panda.srdf +76 -0
  52. cmeel.prefix/share/hpp_tutorial/srdf/rod.srdf +2 -0
  53. cmeel.prefix/share/hpp_tutorial/srdf/staubli-drill.srdf +14 -0
  54. cmeel.prefix/share/hpp_tutorial/srdf/table.srdf +16 -0
  55. cmeel.prefix/share/hpp_tutorial/tutorial_7/controllers.yaml +28 -0
  56. cmeel.prefix/share/hpp_tutorial/tutorial_8/controllers.yaml +44 -0
  57. cmeel.prefix/share/hpp_tutorial/urdf/box.urdf +26 -0
  58. cmeel.prefix/share/hpp_tutorial/urdf/box_color.urdf +16 -0
  59. cmeel.prefix/share/hpp_tutorial/urdf/cup.urdf +26 -0
  60. cmeel.prefix/share/hpp_tutorial/urdf/door.urdf +111 -0
  61. cmeel.prefix/share/hpp_tutorial/urdf/fr3.urdf +452 -0
  62. cmeel.prefix/share/hpp_tutorial/urdf/ground.urdf +20 -0
  63. cmeel.prefix/share/hpp_tutorial/urdf/kitchen_area.urdf +4729 -0
  64. cmeel.prefix/share/hpp_tutorial/urdf/kitchen_area_obstacle.urdf +4729 -0
  65. cmeel.prefix/share/hpp_tutorial/urdf/obstacle.urdf +18 -0
  66. cmeel.prefix/share/hpp_tutorial/urdf/rod.urdf +19 -0
  67. cmeel.prefix/share/hpp_tutorial/urdf/square-plate.urdf +17 -0
  68. cmeel.prefix/share/hpp_tutorial/urdf/staubli-drill.urdf +254 -0
  69. cmeel.prefix/share/hpp_tutorial/urdf/table.urdf +160 -0
  70. hpp_tutorial-9.0.0.dist-info/METADATA +36 -0
  71. hpp_tutorial-9.0.0.dist-info/RECORD +74 -0
  72. hpp_tutorial-9.0.0.dist-info/WHEEL +6 -0
  73. hpp_tutorial-9.0.0.dist-info/licenses/LICENSE +24 -0
  74. hpp_tutorial-9.0.0.dist-info/top_level.txt +0 -0
@@ -0,0 +1,124 @@
1
+ """Launch Franka fr3 in Gazebo with a joint_trajectory_controller for HPP tutorial 6.
2
+
3
+ Usage (inside the docker container):
4
+ ros2 launch hpp_tutorial tutorial_7/launch_sim.py
5
+ """
6
+
7
+ import os
8
+
9
+ import xacro
10
+ from ament_index_python.packages import get_package_share_directory
11
+ from launch import LaunchContext, LaunchDescription
12
+ from launch.actions import (
13
+ DeclareLaunchArgument,
14
+ IncludeLaunchDescription,
15
+ OpaqueFunction,
16
+ )
17
+ from launch.launch_description_sources import PythonLaunchDescriptionSource
18
+ from launch.substitutions import LaunchConfiguration
19
+ from launch_ros.actions import Node
20
+
21
+
22
+ def get_robot_description_and_controllers(context: LaunchContext, robot_type):
23
+ robot_type_str = context.perform_substitution(robot_type)
24
+
25
+ tutorial_dir = os.path.join(
26
+ get_package_share_directory("hpp_tutorial"), "tutorial_7"
27
+ )
28
+ controllers_yaml = os.path.join(tutorial_dir, "controllers.yaml")
29
+
30
+ franka_xacro = os.path.join(
31
+ get_package_share_directory("franka_gazebo_bringup"),
32
+ "urdf",
33
+ "franka_arm.gazebo.xacro",
34
+ )
35
+
36
+ robot_description_xml = xacro.process_file(
37
+ franka_xacro,
38
+ mappings={
39
+ "robot_type": robot_type_str,
40
+ "hand": "false",
41
+ "ros2_control": "true",
42
+ "gazebo": "true",
43
+ "ee_id": "franka_hand",
44
+ },
45
+ ).toxml()
46
+
47
+ # Replace the Franka default controllers YAML with our tutorial controllers
48
+ franka_controllers = os.path.join(
49
+ get_package_share_directory("franka_gazebo_bringup"),
50
+ "config",
51
+ "franka_gazebo_controllers.yaml",
52
+ )
53
+ robot_description_xml = robot_description_xml.replace(
54
+ franka_controllers, controllers_yaml
55
+ )
56
+
57
+ robot_state_publisher = Node(
58
+ package="robot_state_publisher",
59
+ executable="robot_state_publisher",
60
+ output="both",
61
+ parameters=[{"robot_description": robot_description_xml}],
62
+ )
63
+
64
+ # Spawn controllers using ros2_control spawner
65
+ spawn_jsb = Node(
66
+ package="controller_manager",
67
+ executable="spawner",
68
+ arguments=["joint_state_broadcaster"],
69
+ output="screen",
70
+ )
71
+
72
+ spawn_jtc = Node(
73
+ package="controller_manager",
74
+ executable="spawner",
75
+ arguments=["joint_trajectory_controller"],
76
+ output="screen",
77
+ )
78
+
79
+ return [robot_state_publisher, spawn_jsb, spawn_jtc]
80
+
81
+
82
+ def generate_launch_description():
83
+ robot_type = LaunchConfiguration("robot_type")
84
+
85
+ # Gazebo Sim
86
+ os.environ["GZ_SIM_RESOURCE_PATH"] = os.path.dirname(
87
+ get_package_share_directory("franka_description")
88
+ )
89
+ gazebo = IncludeLaunchDescription(
90
+ PythonLaunchDescriptionSource(
91
+ os.path.join(
92
+ get_package_share_directory("ros_gz_sim"),
93
+ "launch",
94
+ "gz_sim.launch.py",
95
+ )
96
+ ),
97
+ launch_arguments={"gz_args": "empty.sdf -r"}.items(),
98
+ )
99
+
100
+ spawn = Node(
101
+ package="ros_gz_sim",
102
+ executable="create",
103
+ arguments=["-topic", "/robot_description"],
104
+ output="screen",
105
+ )
106
+
107
+ bridge = Node(
108
+ package="ros_gz_bridge",
109
+ executable="parameter_bridge",
110
+ arguments=["/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock"],
111
+ output="screen",
112
+ )
113
+
114
+ return LaunchDescription(
115
+ [
116
+ DeclareLaunchArgument("robot_type", default_value="fr3"),
117
+ gazebo,
118
+ OpaqueFunction(
119
+ function=get_robot_description_and_controllers, args=[robot_type]
120
+ ),
121
+ spawn,
122
+ bridge,
123
+ ]
124
+ )
@@ -0,0 +1,193 @@
1
+ """Launch Franka FR3 with gripper in Gazebo for HPP tutorial 8 (pick and place).
2
+
3
+ Usage (inside the docker container):
4
+ ros2 launch /home/user/devel/install/share/hpp_tutorial/tutorial_8/launch_sim.py
5
+ """
6
+
7
+ import os
8
+
9
+ import xacro
10
+ from ament_index_python.packages import get_package_share_directory
11
+ from launch import LaunchContext, LaunchDescription
12
+ from launch.actions import (
13
+ DeclareLaunchArgument,
14
+ IncludeLaunchDescription,
15
+ OpaqueFunction,
16
+ )
17
+ from launch.launch_description_sources import PythonLaunchDescriptionSource
18
+ from launch.substitutions import LaunchConfiguration
19
+ from launch_ros.actions import Node
20
+
21
+
22
+ def get_robot_description_and_controllers(context: LaunchContext, robot_type):
23
+ robot_type_str = context.perform_substitution(robot_type)
24
+
25
+ tutorial_dir = os.path.join(
26
+ get_package_share_directory("hpp_tutorial"), "tutorial_8"
27
+ )
28
+ controllers_yaml = os.path.join(tutorial_dir, "controllers.yaml")
29
+
30
+ franka_xacro = os.path.join(
31
+ get_package_share_directory("franka_gazebo_bringup"),
32
+ "urdf",
33
+ "franka_arm.gazebo.xacro",
34
+ )
35
+
36
+ robot_description_xml = xacro.process_file(
37
+ franka_xacro,
38
+ mappings={
39
+ "robot_type": robot_type_str,
40
+ "hand": "true",
41
+ "ros2_control": "true",
42
+ "gazebo": "true",
43
+ "ee_id": "franka_hand",
44
+ },
45
+ ).toxml()
46
+
47
+ detachable_joint_plugin = f"""
48
+ <gazebo>
49
+ <plugin filename="gz-sim-detachable-joint-system" name="gz::sim::systems::DetachableJoint">
50
+ <parent_link>{robot_type_str}_hand</parent_link>
51
+ <child_model>box</child_model>
52
+ <child_link>base_link</child_link>
53
+ <attach_topic>/box/attach</attach_topic>
54
+ <detach_topic>/box/detach</detach_topic>
55
+ <suppress_child_warning>true</suppress_child_warning>
56
+ </plugin>
57
+ </gazebo>
58
+ </robot>
59
+ """
60
+ robot_description_xml = robot_description_xml.replace(
61
+ "</robot>", detachable_joint_plugin
62
+ )
63
+
64
+ # Replace the Franka default controllers YAML with our tutorial controllers
65
+ franka_controllers = os.path.join(
66
+ get_package_share_directory("franka_gazebo_bringup"),
67
+ "config",
68
+ "franka_gazebo_controllers.yaml",
69
+ )
70
+ robot_description_xml = robot_description_xml.replace(
71
+ franka_controllers, controllers_yaml
72
+ )
73
+
74
+ robot_state_publisher = Node(
75
+ package="robot_state_publisher",
76
+ executable="robot_state_publisher",
77
+ output="both",
78
+ parameters=[{"robot_description": robot_description_xml}],
79
+ )
80
+
81
+ spawn_jsb = Node(
82
+ package="controller_manager",
83
+ executable="spawner",
84
+ arguments=["joint_state_broadcaster"],
85
+ output="screen",
86
+ )
87
+
88
+ spawn_jtc = Node(
89
+ package="controller_manager",
90
+ executable="spawner",
91
+ arguments=["joint_trajectory_controller"],
92
+ output="screen",
93
+ )
94
+
95
+ spawn_gripper = Node(
96
+ package="controller_manager",
97
+ executable="spawner",
98
+ arguments=["gripper_controller"],
99
+ output="screen",
100
+ )
101
+
102
+ return [robot_state_publisher, spawn_jsb, spawn_jtc, spawn_gripper]
103
+
104
+
105
+ def generate_launch_description():
106
+ robot_type = LaunchConfiguration("robot_type")
107
+ tutorial_share = get_package_share_directory("hpp_tutorial")
108
+ box_urdf = os.path.join(tutorial_share, "urdf", "box.urdf")
109
+ ground_urdf = os.path.join(tutorial_share, "urdf", "ground.urdf")
110
+
111
+ # Gazebo Sim
112
+ os.environ["GZ_SIM_RESOURCE_PATH"] = os.path.dirname(
113
+ get_package_share_directory("franka_description")
114
+ )
115
+ gazebo = IncludeLaunchDescription(
116
+ PythonLaunchDescriptionSource(
117
+ os.path.join(
118
+ get_package_share_directory("ros_gz_sim"),
119
+ "launch",
120
+ "gz_sim.launch.py",
121
+ )
122
+ ),
123
+ launch_arguments={"gz_args": "empty.sdf -r"}.items(),
124
+ )
125
+
126
+ spawn = Node(
127
+ package="ros_gz_sim",
128
+ executable="create",
129
+ arguments=["-topic", "/robot_description"],
130
+ output="screen",
131
+ )
132
+
133
+ spawn_box = Node(
134
+ package="ros_gz_sim",
135
+ executable="create",
136
+ arguments=[
137
+ "-name",
138
+ "box",
139
+ "-file",
140
+ box_urdf,
141
+ "-x",
142
+ "0.4",
143
+ "-y",
144
+ "-0.2",
145
+ "-z",
146
+ "0.0251",
147
+ ],
148
+ output="screen",
149
+ )
150
+
151
+ spawn_ground = Node(
152
+ package="ros_gz_sim",
153
+ executable="create",
154
+ arguments=[
155
+ "-name",
156
+ "ground",
157
+ "-file",
158
+ ground_urdf,
159
+ "-x",
160
+ "0.0",
161
+ "-y",
162
+ "0.0",
163
+ "-z",
164
+ "0.0",
165
+ ],
166
+ output="screen",
167
+ )
168
+
169
+ bridge = Node(
170
+ package="ros_gz_bridge",
171
+ executable="parameter_bridge",
172
+ arguments=[
173
+ "/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock",
174
+ "/box/attach@std_msgs/msg/Empty]gz.msgs.Empty",
175
+ "/box/detach@std_msgs/msg/Empty]gz.msgs.Empty",
176
+ "/world/empty/set_pose@ros_gz_interfaces/srv/SetEntityPose",
177
+ ],
178
+ output="screen",
179
+ )
180
+
181
+ return LaunchDescription(
182
+ [
183
+ DeclareLaunchArgument("robot_type", default_value="fr3"),
184
+ gazebo,
185
+ OpaqueFunction(
186
+ function=get_robot_description_and_controllers, args=[robot_type]
187
+ ),
188
+ spawn,
189
+ spawn_ground,
190
+ spawn_box,
191
+ bridge,
192
+ ]
193
+ )