ROS2 (intra process communication 4)

ROS2のnodeのあいだの通信を無くします。

launch.pyです。

launch

Using ROS 2 launch to launch composable nodes

Launch file examples

…で省略されていたところが埋められたくらいですかね。

import launch
from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode

def generate_launch_description():
    """Generate launch description with multiple components."""
    container = ComposableNodeContainer(
            name='image_container',
            namespace='',
            package='rclcpp_components',
            executable='component_container',
            composable_node_descriptions=[
                ComposableNode(
                    package='image_tools',
                    plugin='image_tools::Cam2Image',
                    name='cam2image',
                    remappings=[('/image', '/burgerimage')],
                    parameters=[{'width': 320, 'height': 240, 'burger_mode': True, 'history': 'keep_last'}],
                    extra_arguments=[{'use_intra_process_comms': True}]),
                ComposableNode(
                    package='image_tools',
                    plugin='image_tools::ShowImage',
                    name='showimage',
                    remappings=[('/image', '/burgerimage')],
                    parameters=[{'history': 'keep_last'}],
                    extra_arguments=[{'use_intra_process_comms': True}])
            ],
            output='both',
    )

    return launch.LaunchDescription([container])

Loading composable nodes into an existing container

LoadComposableNodesを使ったら他のlaunch fileでlaunchしていたcomponent_containerにcomposable nodesを突っ込める、ということだけど、これはROS2の中級者か上級者以上の人がやればいい話しなので割愛します。

初心者はlaunch.pyを書かないと覚えないので、全部書き直すくらいの方が良いと思います。

広告

IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
さくらのレンタルサーバ
ムームードメイン
Oisix(おいしっくす)
らでぃっしゅぼーや
珈琲きゃろっと
エプソムソルト




«       »