LearningROS 2 Fundamentals
Launch Files | Launch System
Automate starting multiple ROS 2 nodes dengan launch files | Automate starting multiple ROS 2 nodes with launch files
Apa itu ROS 2?
0 dari 5 halaman selesai
In Progress
Scroll sampai 80% untuk menandai halaman selesai.
Launch Files
Launch files memungkinkan kamu menjalankan banyak nodes sekaligus dengan satu command.
📄 Python Launch File
# launch/robot_launch.py
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package='turtlesim',
executable='turtlesim_node',
name='turtle1',
output='screen'
),
Node(
package='turtlesim',
executable='turtle_teleop_key',
name='teleop',
output='screen',
prefix='xterm -e' # Open in new terminal
),
])🏃 Running Launch Files
# From package
ros2 launch my_package my_launch.py
# From file path
ros2 launch ./launch/robot_launch.py⚙️ Parameters & Arguments
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
# Declare argument
DeclareLaunchArgument(
'robot_name',
default_value='bascorro',
description='Name of the robot'
),
# Use argument
Node(
package='my_package',
executable='robot_node',
name='robot',
parameters=[{
'robot_name': LaunchConfiguration('robot_name')
}]
),
])# Run with argument
ros2 launch my_package robot.launch.py robot_name:=darwin📂 Setup di Package
# setup.py
from setuptools import setup
import os
from glob import glob
setup(
name='my_package',
# ... other config
data_files=[
('share/my_package/launch', glob('launch/*.py')),
],
)🎯 BASCORRO Example
# bascorro_launch.py
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
# Vision
Node(package='soccer_vision', executable='ball_detector'),
# Walking
Node(package='op3_walking_module', executable='walking_node'),
# Strategy
Node(package='op3_demo', executable='soccer_strategy'),
])