The following is the python code for the launch file:
from launch import LaunchDescription
from launch_ros.parameter_descriptions import ParameterValue
from launch_ros.actions import Node
from launch.substitutions import Command
import os
from ament_index_python.packages import get_package_share_path
def generate_launch_description():
urdf_path = os.path.join(get_package_share_path('my_robot_description'),
'urdf', 'my_robot.urdf')
robot_description = ParameterValue(Command(['xacro ', urdf_path]), value_type=str)
robot_state_publisher_node = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
parameters=[{'robot_description': robot_description}]
)
joint_state_publisher_gui_node = Node(
package="joint_state_publisher_gui",
executable="joint_state_publisher_gui"
)
rviz2_node = Node(
package="rviz2",
executable="rviz2"
)
return LaunchDescription([
robot_state_publisher_node,
joint_state_publisher_gui_node,
rviz2_node
])
This is a Python launch file for ROS 2 (Robot Operating System 2) that starts three nodes:
robot_state_publisherjoint_state_publisher_guirviz2It also loads a URDF (Unified Robot Description Format) file that defines the robot’s model.
from launch import LaunchDescription
LaunchDescription: Represents a list of processes (nodes) to be launched in ROS 2.
from launch_ros.parameter_descriptions import ParameterValue
ParameterValue: Used to specify parameter values when launching nodes.
from launch_ros.actions import Node