대부분의 소개 자습서에서는 실행하는 모든 새 노드에 대해 새 터미널을 열었습니다. 점점 더 많은 노드가 동시에 실행되는 더 복잡한 시스템을 만들면 터미널을 열고 구성 세부 정보를 다시 입력하는 것이 지루해집니다.
시작 파일을 사용하면 ROS 2 노드를 포함하는 여러 실행 파일을 동시에 시작하고 구성할 수 있습니다.
새 터미널을 열고 다음을 실행합니다.
ros2 launch turtlesim multisim.launch.py
이 명령은 다음 시작 파일을 실행합니다.
# turtlesim/launch/multisim.launch.py
from launch import LaunchDescription
import launch_ros.actions
def generate_launch_description():
return LaunchDescription([
launch_ros.actions.Node(
namespace= "turtlesim1", package='turtlesim', executable='turtlesim_node', output='screen'),
launch_ros.actions.Node(
namespace= "turtlesim2", package='turtlesim', executable='turtlesim_node', output='screen'),
])
메모
위의 실행 파일은 Python으로 작성되었지만 XML 및 YAML을 사용하여 실행 파일을 만들 수도 있습니다. Using Python, XML, and YAML for ROS 2 Launch Files 에서 다양한 ROS 2 실행 형식을 비교할 수 있습니다 .
그러면 두 개의 turtlesim 노드가 실행됩니다.
이제 이러한 노드가 실행 중이므로 다른 ROS 2 노드처럼 제어할 수 있습니다. 예를 들어 두 개의 추가 터미널을 열고 다음 명령을 실행하여 거북이가 반대 방향으로 운전하도록 할 수 있습니다.
ros2 topic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
ros2 topic pub /turtlesim2/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -1.8}}"
이 명령을 실행하면 다음과 같은 내용이 표시됩니다.