63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
import os
|
|
import xacro
|
|
from ament_index_python.packages import get_package_share_directory
|
|
from launch import LaunchDescription
|
|
from launch.substitutions import LaunchConfiguration
|
|
from launch_ros.actions import Node
|
|
from launch.actions import DeclareLaunchArgument, GroupAction
|
|
from launch.conditions import IfCondition, UnlessCondition
|
|
|
|
def get_xacro_to_doc(xacro_file_path, mappings):
|
|
doc = xacro.parse(open(xacro_file_path))
|
|
xacro.process_doc(doc, mappings=mappings)
|
|
return doc
|
|
|
|
def generate_launch_description():
|
|
# Launch configurations
|
|
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
|
|
isaac_sim = LaunchConfiguration('isaac_sim')
|
|
|
|
# Process XACRO
|
|
xacro_path = os.path.join(get_package_share_directory('bcr_bot'), 'urdf', 'bcr_bot.xacro')
|
|
doc = get_xacro_to_doc(xacro_path, {"wheel_odom_topic": "odom"})
|
|
|
|
# Nodes
|
|
robot_state_publisher = Node(
|
|
package='robot_state_publisher',
|
|
executable='robot_state_publisher',
|
|
name='robot_state_publisher',
|
|
output='screen',
|
|
parameters=[{'use_sim_time': use_sim_time}, {'robot_description': doc.toxml()}],
|
|
condition=UnlessCondition(isaac_sim) # Only start if isaac_sim is false
|
|
)
|
|
|
|
rviz = Node(
|
|
package='rviz2',
|
|
executable='rviz2',
|
|
name='rviz2',
|
|
output='screen',
|
|
arguments=['-d', os.path.join(get_package_share_directory('bcr_bot'), 'rviz', 'entire_setup.rviz')]
|
|
)
|
|
|
|
return LaunchDescription([
|
|
# Declare arguments
|
|
DeclareLaunchArgument(
|
|
'use_sim_time',
|
|
default_value='false',
|
|
description='Use simulation time if true'
|
|
),
|
|
DeclareLaunchArgument(
|
|
'isaac_sim',
|
|
default_value='false',
|
|
description='Set to true when using Isaac Sim'
|
|
),
|
|
DeclareLaunchArgument(
|
|
'robot_description',
|
|
default_value=doc.toxml(),
|
|
description='Robot description in URDF/XACRO format'
|
|
),
|
|
# Nodes
|
|
robot_state_publisher,
|
|
rviz
|
|
]) |