openarm_ros2/openarm_description/launch/display.launch.py

85 lines
2.9 KiB
Python
Raw Normal View History

2025-03-08 11:45:28 +00:00
from pathlib import Path
import launch
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
import launch_ros
from launch_ros.substitutions import FindPackageShare
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
def generate_launch_description():
pkg_share = Path(launch_ros.substitutions.FindPackageShare(package='openarm_description_2').find('openarm_description_2'))
default_model_path = pkg_share / 'urdf/openarm_wrapper.urdf.xacro'
default_rviz_config_path = pkg_share / 'rviz/robot_description.rviz'
use_sim_time = LaunchConfiguration('use_sim_time')
robot_state_publisher_node = IncludeLaunchDescription(
PythonLaunchDescriptionSource([
PathJoinSubstitution([
FindPackageShare('openarm_description_2'),
'launch',
'description.launch.py',
]),
]),
launch_arguments=dict(use_sim_time=use_sim_time).items(),
)
joint_state_publisher_node = launch_ros.actions.Node(
package='joint_state_publisher',
executable='joint_state_publisher',
name='joint_state_publisher',
condition=launch.conditions.UnlessCondition(LaunchConfiguration('gui')),
parameters=[{
'use_sim_time': use_sim_time,
}],
)
joint_state_publisher_gui_node = launch_ros.actions.Node(
package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui',
condition=launch.conditions.IfCondition(LaunchConfiguration('gui')),
parameters=[{
'use_sim_time': use_sim_time,
}],
)
rviz_node = launch_ros.actions.Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen',
arguments=['-d', LaunchConfiguration('rvizconfig')],
parameters=[{
'use_sim_time': use_sim_time,
}],
)
return launch.LaunchDescription([
launch.actions.DeclareLaunchArgument(
name='use_sim_time',
default_value='false',
description='Flag to enable usage of simulation time',
),
launch.actions.DeclareLaunchArgument(
name='gui',
default_value='True',
description='Flag to enable joint_state_publisher_gui',
),
launch.actions.DeclareLaunchArgument(
name='model',
default_value=str(default_model_path),
description='Absolute path to robot urdf file',
),
launch.actions.DeclareLaunchArgument(
name='rvizconfig',
default_value=str(default_rviz_config_path),
description='Absolute path to rviz config file',
),
joint_state_publisher_node,
joint_state_publisher_gui_node,
robot_state_publisher_node,
rviz_node,
])