-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdisplay.launch.py
50 lines (43 loc) · 1.71 KB
/
display.launch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import launch
from launch.substitutions import Command, LaunchConfiguration
import launch_ros
import os
import xacro
def generate_launch_description():
pkgPath = launch_ros.substitutions.FindPackageShare(package='new_robot').find('new_robot')
#process the URDF
xacro_file = os.path.join(pkgPath,'urdf','new_robot.urdf.xacro')
robot_description_config = xacro.process_file(xacro_file)
params = {'robot_description': robot_description_config.toxml()}
robot_state_publisher_node =launch_ros.actions.Node(
package='robot_state_publisher',
executable='robot_state_publisher',
output='screen',
parameters=[params])
joint_state_publisher_node = launch_ros.actions.Node(
package='joint_state_publisher',
executable='joint_state_publisher',
name='joint_state_publisher',
parameters=[params],
condition=launch.conditions.UnlessCondition(LaunchConfiguration('gui'))
)
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'))
)
rviz_node = launch_ros.actions.Node(
package='rviz2',
executable='rviz2',
name='rviz2',
output='screen'
)
return launch.LaunchDescription([
launch.actions.DeclareLaunchArgument(name='gui', default_value='True',
description='This is a flag for joint_state_publisher_gui'),
robot_state_publisher_node,
joint_state_publisher_node,
joint_state_publisher_gui_node,
rviz_node
])