85 lines
2.9 KiB
Python
85 lines
2.9 KiB
Python
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_two_arms').find('openarm_two_arms'))
|
|
default_model_path = pkg_share / 'urdf/openarm_two_arms_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_two_arms'),
|
|
'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,
|
|
])
|