From 4154764537849aa2ecdbe34cb96412b6f4a14a2f Mon Sep 17 00:00:00 2001 From: ipa-nhg Date: Tue, 12 Mar 2024 14:27:37 +0100 Subject: [PATCH] [WIP] ROS2 migration of the cob_hardware_config package --- cob_hardware_config/CMakeLists.txt | 37 +- cob_hardware_config/display_robot.launch | 27 - .../launch/display_robot.launch.py | 96 +++ cob_hardware_config/package.xml | 36 +- .../robots/cob4-25/cob4-25.rviz | 622 ------------------ .../robots/cob4-25/view_robot.rviz | 197 ++++++ .../test/test_view_cob_launch.py | 51 ++ cob_hardware_config/test/urdf.test | 7 - cob_hardware_config/upload_robot.launch | 10 - 9 files changed, 374 insertions(+), 709 deletions(-) delete mode 100644 cob_hardware_config/display_robot.launch create mode 100644 cob_hardware_config/launch/display_robot.launch.py delete mode 100644 cob_hardware_config/robots/cob4-25/cob4-25.rviz create mode 100644 cob_hardware_config/robots/cob4-25/view_robot.rviz create mode 100644 cob_hardware_config/test/test_view_cob_launch.py delete mode 100644 cob_hardware_config/test/urdf.test delete mode 100644 cob_hardware_config/upload_robot.launch diff --git a/cob_hardware_config/CMakeLists.txt b/cob_hardware_config/CMakeLists.txt index 70b5c4507..0fcc56548 100644 --- a/cob_hardware_config/CMakeLists.txt +++ b/cob_hardware_config/CMakeLists.txt @@ -1,31 +1,18 @@ -cmake_minimum_required(VERSION 3.0.2) +cmake_minimum_required(VERSION 3.5) project(cob_hardware_config) -find_package(catkin REQUIRED) -catkin_package() +find_package(ament_cmake REQUIRED) -### TESTING ### -if(CATKIN_ENABLE_TESTING) - find_package(cob_supported_robots REQUIRED) - find_package(roslaunch REQUIRED) - find_package(rostest REQUIRED) - # loop through list of robots for testing - foreach(robot ${cob_supported_robots_ROBOTLIST}) - message("testing for robot: ${robot}") - roslaunch_add_file_check(upload_robot.launch robot:=${robot}) - add_rostest(test/urdf.test ARGS robot:=${robot}) - endforeach() -endif() - -### INSTALL ### -install(DIRECTORY robots test - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +install( + DIRECTORY robots launch test + DESTINATION share/${PROJECT_NAME} ) -install(FILES upload_robot.launch - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -) +ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS}) -install(FILES display_robot.launch - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -) +if(BUILD_TESTING) + find_package(ament_cmake_pytest REQUIRED) + ament_add_pytest_test(ur_urdf_xacro test/test_view_cob_launch.py) +endif() + +ament_package() \ No newline at end of file diff --git a/cob_hardware_config/display_robot.launch b/cob_hardware_config/display_robot.launch deleted file mode 100644 index 72da83444..000000000 --- a/cob_hardware_config/display_robot.launch +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cob_hardware_config/launch/display_robot.launch.py b/cob_hardware_config/launch/display_robot.launch.py new file mode 100644 index 000000000..460800aa8 --- /dev/null +++ b/cob_hardware_config/launch/display_robot.launch.py @@ -0,0 +1,96 @@ +# Copyright 2024 Fraunhofer IPA +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author: Nadia Hammoudeh Garcia + +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument +from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution +from launch_ros.actions import Node +from launch_ros.substitutions import FindPackageShare +from ament_index_python.packages import get_package_share_directory +from launch_ros.parameters_type import ParameterValue +import os +import xacro +import subprocess + +def generate_launch_description(): + declared_arguments = [] + declared_arguments.append( + DeclareLaunchArgument( + "robot", + description="Robot name.", + choices=["cob4-25"], + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "pkg_hardware_config", + default_value="cob_hardware_config", + description="Name of the package that contains the robot configuration.", + ) + ) + declared_arguments.append( + DeclareLaunchArgument( + "description_file", + default_value=[LaunchConfiguration("robot"),".urdf.xacro"], + description="File containing the robot description.", + ) + ) + + # Initialize Arguments + robot = LaunchConfiguration("robot") + pkg_hardware_config = LaunchConfiguration("pkg_hardware_config") + description_file = LaunchConfiguration("description_file") + + xacro_file= os.path.join(get_package_share_directory("cob_hardware_config"),"robots","cob4-25","urdf","cob4-25.urdf.xacro") + doc = xacro.parse(open(xacro_file)) + xacro.process_doc(doc) + robot_description = {'robot_description': doc.toxml()} + + # xacro_command = [ + # "xacro", + # PathJoinSubstitution([FindPackageShare(pkg_hardware_config), "robots", robot, "urdf", description_file]), + # ] + # robot_description = {"robot_description": Command(xacro_command)} + + rviz_config_file = PathJoinSubstitution( + [FindPackageShare(pkg_hardware_config), "robots", robot, "view_robot.rviz"] + ) + + joint_state_publisher_node = Node( + package="joint_state_publisher_gui", + executable="joint_state_publisher_gui", + ) + robot_state_publisher_node = Node( + package="robot_state_publisher", + executable="robot_state_publisher", + output="both", + parameters=[robot_description], + ) + rviz_node = Node( + package="rviz2", + executable="rviz2", + name="rviz2", + output="log", + arguments=["-d", rviz_config_file], + ) + + nodes_to_start = [ + joint_state_publisher_node, + robot_state_publisher_node, + rviz_node, + ] + + return LaunchDescription(declared_arguments + nodes_to_start) diff --git a/cob_hardware_config/package.xml b/cob_hardware_config/package.xml index 07f7a174c..74bb653b9 100644 --- a/cob_hardware_config/package.xml +++ b/cob_hardware_config/package.xml @@ -10,31 +10,31 @@ Felix Messmer Felix Messmer - Nadia Hammoudeh Garcia Florian Weisshardt + Nadia Hammoudeh Garcia - catkin - + ament_cmake + + joint_state_publisher_gui cob_calibration_data cob_description cob_omni_drive_controller - costmap_2d - diagnostic_aggregator - joint_state_controller - joint_state_publisher - joint_state_publisher_gui - joint_trajectory_controller - laser_filters - position_controllers - raw_description + + launch + launch_ros robot_state_publisher - rviz - - velocity_controllers + rviz2 + urdf xacro - cob_supported_robots - roslaunch - rostest + ament_cmake_pytest + launch_testing_ament_cmake + launch_testing_ros + liburdfdom-tools + xacro + + + ament_cmake + diff --git a/cob_hardware_config/robots/cob4-25/cob4-25.rviz b/cob_hardware_config/robots/cob4-25/cob4-25.rviz deleted file mode 100644 index 5fe9fd1d1..000000000 --- a/cob_hardware_config/robots/cob4-25/cob4-25.rviz +++ /dev/null @@ -1,622 +0,0 @@ -Panels: - - Class: rviz/Displays - Help Height: 78 - Name: Displays - Property Tree Widget: - Expanded: - - /Global Options1 - - /TF1/Frames1 - Splitter Ratio: 0.804714 - Tree Height: 843 - - Class: rviz/Selection - Name: Selection - - Class: rviz/Tool Properties - Expanded: - - /2D Pose Estimate1 - - /2D Nav Goal1 - Name: Tool Properties - Splitter Ratio: 0.588679 - - Class: rviz/Views - Expanded: - - /Current View1 - Name: Views - Splitter Ratio: 0.5 - - Class: rviz/Time - Experimental: false - Name: Time - SyncMode: 0 - SyncSource: LaserScan Left -Visualization Manager: - Class: "" - Displays: - - Alpha: 0.5 - Cell Size: 1 - Class: rviz/Grid - Color: 160; 160; 164 - Enabled: true - Line Style: - Line Width: 0.03 - Value: Lines - Name: Grid - Normal Cell Count: 0 - Offset: - X: 0 - Y: 0 - Z: 0 - Plane: XY - Plane Cell Count: 10 - Reference Frame: - Value: true - - Alpha: 1 - Class: rviz/RobotModel - Collision Enabled: false - Enabled: true - Links: - All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - b_caster_r_wheel_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - b_caster_rotation_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - base_charger_link: - Alpha: 1 - Show Axes: false - Show Trail: false - base_chassis_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - base_footprint: - Alpha: 1 - Show Axes: false - Show Trail: false - base_laser_front_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - base_laser_left_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - base_laser_right_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - fl_caster_r_wheel_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - fl_caster_rotation_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - fr_caster_r_wheel_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - fr_caster_rotation_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_1_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_2_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_3_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_cam_frame: - Alpha: 1 - Show Axes: false - Show Trail: false - head_cam_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - head_cam_optical_frame: - Alpha: 1 - Show Axes: false - Show Trail: false - head_center_link: - Alpha: 1 - Show Axes: false - Show Trail: false - sensorring_base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - sensorring_cam3d_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - sensorring_cam3d_mount_link: - Alpha: 1 - Show Axes: false - Show Trail: false - sensorring_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_1_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_2_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_3_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_base_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_cam3d_down_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_cam3d_down_mount_link: - Alpha: 1 - Show Axes: false - Show Trail: false - torso_cam3d_left_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_cam3d_left_mount_link: - Alpha: 1 - Show Axes: false - Show Trail: false - torso_cam3d_right_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - torso_cam3d_right_mount_link: - Alpha: 1 - Show Axes: false - Show Trail: false - torso_center_link: - Alpha: 1 - Show Axes: false - Show Trail: false - Value: true - Name: RobotModel - Robot Description: robot_description - TF Prefix: "" - Update Interval: 0 - Value: true - Visual Enabled: true - - Class: rviz/TF - Enabled: false - Frame Timeout: 15 - Frames: - All Enabled: false - Marker Scale: 1 - Name: TF - Show Arrows: true - Show Axes: true - Show Names: true - Tree: - {} - Update Interval: 0 - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: x - Class: rviz/LaserScan - Color: 0; 255; 0 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 0; 255; 0 - Max Intensity: 10.454 - Min Color: 0; 255; 0 - Min Intensity: 0.227896 - Name: LaserScan Front - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.025 - Style: Spheres - Topic: /base_laser_front/scan - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/LaserScan - Color: 0; 255; 0 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 0 - Min Color: 0; 255; 0 - Min Intensity: 0 - Name: LaserScan Left - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.025 - Style: Spheres - Topic: /base_laser_left/scan - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/LaserScan - Color: 0; 255; 0 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: LaserScan Right - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.025 - Style: Spheres - Topic: /base_laser_right/scan - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /sound/marker - Name: SoundMarker - Namespaces: - {} - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /light_base/marker - Name: LightBaseMarker - Namespaces: - color: true - Queue Size: 100 - Value: true - - Class: rviz/Marker - Enabled: true - Marker Topic: /light_torso/marker - Name: LightTorsoMarker - Namespaces: - color: true - Queue Size: 100 - Value: true - - Class: rviz/Image - Enabled: false - Image Topic: /torso_cam3d_down_upright/rgb/image_raw - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: TorsoCam3dDownImage - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Class: rviz/Image - Enabled: false - Image Topic: /torso_cam3d_left_upright/rgb/image_raw - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: TorsoCam3dLeftImage - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Class: rviz/Image - Enabled: false - Image Topic: /torso_cam3d_right_upright/rgb/image_raw - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: TorsoCam3dRightImage - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Class: rviz/Image - Enabled: false - Image Topic: /sensorring_cam3d_upright/rgb/image_raw - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: SensorringCam3dImage - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Class: rviz/Image - Enabled: false - Image Topic: /head_cam_upright/image_rect_color - Max Value: 1 - Median window: 5 - Min Value: 0 - Name: HeadCamdImage - Normalize Range: true - Queue Size: 2 - Transport Hint: raw - Unreliable: false - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: RGB8 - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: TorsoCam3dDownPointCloud2 - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.01 - Style: Flat Squares - Topic: /torso_cam3d_down_upright/depth/points - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: RGB8 - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: TorsoCam3dLeftPointCloud2 - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.01 - Style: Flat Squares - Topic: /torso_cam3d_left_upright/depth/points - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: RGB8 - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: TorsoCam3dRightPointCloud2 - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.01 - Style: Flat Squares - Topic: /torso_cam3d_right_upright/depth/points - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz/PointCloud2 - Color: 255; 255; 255 - Color Transformer: RGB8 - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: SensorringCam3dPointCloud2 - Position Transformer: XYZ - Queue Size: 10 - Selectable: true - Size (Pixels): 3 - Size (m): 0.01 - Style: Flat Squares - Topic: /sensorring_cam3d_upright/depth/points - Unreliable: false - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 0.7 - Class: rviz/Map - Color Scheme: map - Draw Behind: false - Enabled: false - Name: Map - Topic: /map - Unreliable: false - Use Timestamp: false - Value: false - Enabled: true - Global Options: - Background Color: 48; 48; 48 - Default Light: true - Fixed Frame: base_link - Frame Rate: 30 - Name: root - Tools: - - Class: rviz/Interact - Hide Inactive Objects: true - - Class: rviz/MoveCamera - - Class: rviz/Select - - Class: rviz/Measure - - Class: rviz/SetInitialPose - Topic: /initialpose - - Class: rviz/SetGoal - Topic: /move_base_simple/goal - Value: true - Views: - Current: - Class: rviz/Orbit - Distance: 19.5897 - Enable Stereo Rendering: - Stereo Eye Separation: 0.06 - Stereo Focal Distance: 1 - Swap Stereo Eyes: false - Value: false - Focal Point: - X: 0.891724 - Y: -0.865633 - Z: 1.0872 - Focal Shape Fixed Size: true - Focal Shape Size: 0.0500000007 - Invert Z Axis: false - Name: Current View - Near Clip Distance: 0.01 - Pitch: 0.509797 - Target Frame: - Value: Orbit (rviz) - Yaw: 4.28313 - Saved: ~ -Window Geometry: - Displays: - collapsed: false - HeadCamdImage: - collapsed: false - Height: 1016 - Hide Left Dock: false - Hide Right Dock: false - QMainWindow State: 000000ff00000000fd000000040000000000000223000003a4fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003a000003a4000000c600fffffffb0000000c00430061006d00650072006100000002a5000000cd0000000000000000fb0000001a004800650061006400430061006d00640049006d0061006700650000000313000000cb0000001600ffffff0000000100000169000003a4fc0200000007fb000000260054006f00720073006f00430061006d003300640044006f0077006e0049006d006100670065000000003a000003a40000001600fffffffb000000260054006f00720073006f00430061006d00330064004c0065006600740049006d006100670065000000003a000003a40000001600fffffffb000000280054006f00720073006f00430061006d00330064005200690067006800740049006d006100670065000000003a000003a40000001600fffffffb0000002800530065006e0073006f007200720069006e006700430061006d003300640049006d006100670065000000003a000003a40000001600fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000028000003260000009e00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a00000024400fffffffb0000000800540069006d0065010000000000000450000000000000000000000517000003a400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 - Selection: - collapsed: false - SensorringCam3dImage: - collapsed: false - Time: - collapsed: false - Tool Properties: - collapsed: false - TorsoCam3dDownImage: - collapsed: false - TorsoCam3dLeftImage: - collapsed: false - TorsoCam3dRightImage: - collapsed: false - Views: - collapsed: false - Width: 1856 - X: 64 - Y: 27 diff --git a/cob_hardware_config/robots/cob4-25/view_robot.rviz b/cob_hardware_config/robots/cob4-25/view_robot.rviz new file mode 100644 index 000000000..e6d00b788 --- /dev/null +++ b/cob_hardware_config/robots/cob4-25/view_robot.rviz @@ -0,0 +1,197 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 87 + Name: Displays + Property Tree Widget: + Expanded: + - /RobotModel1/Description Topic1 + Splitter Ratio: 0.5 + Tree Height: 1096 + - 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 +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: + Value: true + - Alpha: 1 + Class: rviz_default_plugins/RobotModel + Collision Enabled: false + Description File: "" + Description Source: Topic + Description Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /robot_description + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Name: RobotModel + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + 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 + 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: 3.493516445159912 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: -0.0457618348300457 + Y: -0.07058511674404144 + Z: 0.49734944105148315 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.15039828419685364 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.5353983640670776 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1379 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd00000004000000000000016a000004f0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000007901000003fb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000048000004f00000010101000003fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c000002610000000100000110000004f0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000048000004f0000000db01000003fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d0065010000000000000450000000000000000000000784000004f000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 2560 + X: 0 + Y: 30 + diff --git a/cob_hardware_config/test/test_view_cob_launch.py b/cob_hardware_config/test/test_view_cob_launch.py new file mode 100644 index 000000000..3c6c36ded --- /dev/null +++ b/cob_hardware_config/test/test_view_cob_launch.py @@ -0,0 +1,51 @@ +# Copyright (c) 2022 FZI Forschungszentrum Informatik +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of the {copyright_holder} nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# Author: Lukas Sackewitz + +import os +import pytest + +from ament_index_python.packages import get_package_share_directory +from launch import LaunchDescription +from launch.actions import IncludeLaunchDescription +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch_testing.actions import ReadyToTest + + +# Executes the given launch file and checks if all nodes can be started +@pytest.mark.rostest +def generate_test_description(): + launch_include = IncludeLaunchDescription( + PythonLaunchDescriptionSource( + os.path.join(get_package_share_directory("cob_hardware_config"), "display_robot.launch.py") + ), + launch_arguments={"robot": "cob4-25"}.items(), + ) + + return LaunchDescription([launch_include, ReadyToTest()]) diff --git a/cob_hardware_config/test/urdf.test b/cob_hardware_config/test/urdf.test deleted file mode 100644 index 1e7c910db..000000000 --- a/cob_hardware_config/test/urdf.test +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/cob_hardware_config/upload_robot.launch b/cob_hardware_config/upload_robot.launch deleted file mode 100644 index f8f79aa36..000000000 --- a/cob_hardware_config/upload_robot.launch +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - -