Esempio n. 1
0
def generate_launch_description():

    return LaunchDescription([
        SetEnvironmentVariable('RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED', '1'),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/hardware_2wd.launch.py'])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/sensors.launch.py'])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/ps4_teleop.launch.py'])),
        Node(
            package="tf2_ros",
            executable="static_transform_publisher",
            output='screen',
            arguments=[
                '0', '0', '0.25', '0', '0', '0', 'base_footprint', 'base_link'
            ],
        ),
        Node(
            package="tf2_ros",
            executable="static_transform_publisher",
            output='screen',
            arguments=[
                '0', '0', '0.05',
                str(pi), '0', '0', 'base_link', 'laser'
            ],
        ),
    ])
Esempio n. 2
0
def generate_launch_description():
    return LaunchDescription([
        SetEnvironmentVariable('RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED', '1'),
		#Launch from Same Package
		#Launch Rviz
		IncludeLaunchDescription(PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/rviz.launch.py'])),
    	#Launch SLAM
		#TODO
		#Launch Controller
		IncludeLaunchDescription(PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/controller.launch.py'])),
		#Launch Localization
		#IncludeLaunchDescription(PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/localization.launch.py'])),
		#Launch Navigation
    	#IncludeLaunchDescription(PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/navigation.launch.py'])),
		#Launch SLAM
		#IncludeLaunchDescription(PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/slam.launch.py'])),


		#Pull from different packages
		#IncludeLaunchDescription(
        #    PythonLaunchDescriptionSource(os.path.join(launch_dir,
        #                                               'bringup_launch.py')),
        #    launch_arguments={
        #                      'map': "/home/ros/willmap.yaml"}.items()),
        #IncludeLaunchDescription(PythonLaunchDescriptionSource(os.path.join(launch_dir, 'localization_launch.py')),
    ])
def generate_launch_description():
    params1 = duplicate_params(rs_launch.configurable_parameters, '1')
    params2 = duplicate_params(rs_launch.configurable_parameters, '2')
    return LaunchDescription(
        rs_launch.declare_configurable_parameters(local_parameters) +
        rs_launch.declare_configurable_parameters(params1) +
        rs_launch.declare_configurable_parameters(params2) + [
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource(
                    [ThisLaunchFileDir(), '/rs_launch.py']),
                launch_arguments=set_configurable_parameters(params1).items(),
            ),
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource(
                    [ThisLaunchFileDir(), '/rs_launch.py']),
                launch_arguments=set_configurable_parameters(params2).items(),
            ),
            # dummy static transformation from camera1 to camera2
            launch_ros.actions.Node(package="tf2_ros",
                                    executable="static_transform_publisher",
                                    arguments=[
                                        "0", "0", "0", "0", "0", "0",
                                        "camera1_link", "camera2_link"
                                    ]),
        ])
def generate_launch_description():

    use_sim_time = LaunchConfiguration('use_sim_time', default='false')
    rviz_config_dir = os.path.join(
        get_package_share_directory('testbot_description'), 'rviz',
        'testbot.rviz')

    return LaunchDescription([
        DeclareLaunchArgument(
            'use_sim_time',
            default_value=use_sim_time,
            description='Use simulation (Gazebo) clock if true'),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/testjoint_state_publisher.launch.py']),
            launch_arguments={'use_sim_time': use_sim_time}.items(),
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/testrobot_state_publisher.launch.py']),
            launch_arguments={'use_sim_time': use_sim_time}.items(),
        ),
        Node(package='rviz2',
             node_executable='rviz2',
             node_name='rviz2',
             arguments=['-d', rviz_config_dir],
             output='screen'),
    ])
Esempio n. 5
0
def generate_launch_description():

    return LaunchDescription([

        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/rs_face_d415.launch.py']),
        ),

        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/rs_scene_d435.launch.py']),
        ),

        Node(
            package='tf2_ros',
            node_executable='static_transform_publisher',
            node_name='static_transform_publisher_face_d415_to_scene_d435',
            node_namespace='',
            output='screen',
            parameters=[],
            # Parallel
            arguments=['-0.05938306', '-0.0375', '0.0',
                       '3.14159265', '0.0', '0.0',
                       'face_d415', 'scene_d435'],
            # # # 15 deg offset
            # arguments=['-0.0212582', '-0.06153793', '0.0',
            #            '-3.40339204', '0.0', '0.0',
            #            'face_d415', 'scene_d435'],
            remappings=[],
        ),
    ])
Esempio n. 6
0
def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/hardware.launch.py'])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/presence.launch.py'])),
    ])
Esempio n. 7
0
def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/motion_planning.launch.py'])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/follow_trajectory.launch.py']))
    ])
Esempio n. 8
0
def test_this_launch_file_path_methods():
    """Test the methods of the ThisLaunchFileDir class."""
    tlfp = ThisLaunchFileDir()

    lc = LaunchContext()
    with pytest.raises(SubstitutionFailure):
        tlfp.perform(lc)
    lc.extend_locals({'current_launch_file_directory': 'foo'})
    assert tlfp.perform(lc) == 'foo'
def generate_launch_description():
    return LaunchDescription([
        SetEnvironmentVariable('RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED', '1'),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/hardware.launch.py'])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/presence.launch.py'])),
    ])
Esempio n. 10
0
def generate_launch_description():
    return LaunchDescription([
        LogInfo(msg=[
            'Including launch file located at: ',
            ThisLaunchFileDir(), '/nodes.launch.py'
        ]),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/nodes.launch.py'])),
    ])
Esempio n. 11
0
def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/actor_detection.launch.py'])
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/heading_estimation.launch.py'])
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/motion_forecasting.launch.py'])
        )
    ])
Esempio n. 12
0
def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/rplidar_s1_tcp.launch.py'])),
        Node(
            package='rviz2',
            node_executable='rviz2',
            output='screen',
            arguments=['-d', [ThisLaunchFileDir(), '/../rviz/rplidar.rviz']],
        )
    ])
Esempio n. 13
0
def generate_launch_description():
    """Launch the example.launch.py launch file."""
    return LaunchDescription([
        LogInfo(msg=[
            'Including launch file located at: ',
            ThisLaunchFileDir(), '/example.launch.py'
        ]),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/example.launch.py']),
            launch_arguments={'node_prefix': 'FOO'}.items(),
        ),
    ])
Esempio n. 14
0
def generate_launch_description():
    return LaunchDescription([
        LogInfo(msg=['Execute two launch files!!']),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/pub.launch.py']),
            launch_arguments={'ns': 'new_examples'}.items(),
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/sub.launch.py']),
            launch_arguments={'ns': 'new_examples'}.items(),
        ),
    ])
Esempio n. 15
0
def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), "/start_turtlesim_dgm.launch.py"])),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), "/start_target_publisher.launch.py"])),
        Node(
            package="dg_tutorial_with_turtlesim",
            node_executable="sequencer",
            output="screen",
            prefix=['xterm -hold -e'],
        ),
    ])
Esempio n. 16
0
def generate_launch_description():
    params_file = LaunchConfiguration(
        'params',
        default=[ThisLaunchFileDir(), '/launch_params.yaml'])

    # make sure the dbc file gets installed with the launch file
    dbc_file_path = get_package_share_directory('raptor_dbw_can') + \
        '/launch/New_Eagle_DBW_3.4.dbc'

    return LaunchDescription(
        [
            Node(
                package='raptor_dbw_can',
                executable='raptor_dbw_can_node',
                output='screen',
                namespace='raptor_dbw_interface',
                parameters=[
                    {'dbw_dbc_file': dbc_file_path},
                    params_file
                ],
            ),
            Node(
                package='kvaser_interface',
                executable='kvaser_can_bridge',
                output='screen',
                namespace='raptor_dbw_interface',
                parameters=[params_file]),
        ])
def generate_launch_description():
    turtlebot3_cartographer_prefix = get_package_share_directory('turtlebot3_cartographer')
    turtlebot3_cartographer_launch_dir = os.path.join(turtlebot3_cartographer_prefix, 'launch')
    use_sim_time = LaunchConfiguration('use_sim_time', default='true')
    cartographer_occupancy_grid_dir = LaunchConfiguration('cartographer_occupancy_grid',
                                                          default=turtlebot3_cartographer_launch_dir)
    cartographer_config_dir = LaunchConfiguration('cartographer_config_dir', default=os.path.join(
        turtlebot3_cartographer_prefix, 'config'))
    configuration_basename = LaunchConfiguration('configuration_basename',
                                                 default='turtlebot3_lds_2d.lua')
    resolution = LaunchConfiguration('resolution', default='0.05')
    publish_period_sec = LaunchConfiguration('publish_period_sec', default='1.0')

    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/start_cartographer.launch.py']),
            launch_arguments={
                'use_sim_time': use_sim_time,
                'cartographer_occupancy_grid_dir': cartographer_occupancy_grid_dir,
                'cartographer_config_dir': cartographer_config_dir,
                'configuration_basename': configuration_basename,
                'resolution': resolution,
                'publish_period_sec': publish_period_sec
            }.items()
        ),
        Node(
            package='wall_follower',
            executable='wall_follower',
            name='wall_follower'
        ),
    ])
Esempio n. 18
0
def generate_launch_description():
    params1 = duplicate_params(rs_launch.configurable_parameters, '1')
    params2 = duplicate_params(rs_launch.configurable_parameters, '2')
    return LaunchDescription(
        rs_launch.declare_configurable_parameters(params1) + 
        rs_launch.declare_configurable_parameters(params2) + 
        [
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/rs_launch.py']),
            launch_arguments=set_configurable_parameters(params1).items(),
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/rs_launch.py']),
            launch_arguments=set_configurable_parameters(params2).items(),
        ),
    ])
def generate_launch_description():

    ip = launch_ros.actions.Node(
        package='system_status',
        executable='system_status',
        output='both',  # "screen", "log" or "both"
        name='system_status',
    )

    robot = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            [ThisLaunchFileDir(), '/robot.launch.py']), )

    watchdog = launch_ros.actions.Node(
        package='robot_spawner_pkg',
        executable='watchdog',
        namespace=utils.get_robot_name('robot'),
    )

    # Create the launch description and populate
    ld = LaunchDescription()
    ld.add_action(ip)
    ld.add_action(robot)
    ld.add_action(watchdog)
    return ld
Esempio n. 20
0
def generate_launch_description():

    teleop_keyboard = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            [ThisLaunchFileDir(), '/teleop_keyboard.launch.py']))

    data_root = DeclareLaunchArgument(
        'data_root', default_value="/workspace/src/jetbot_ros/data/datasets")
    data_path = DeclareLaunchArgument(
        'data_path',
        default_value=f"{datetime.now().strftime('%Y%m%d-%H%M%S')}")

    data_collection = Node(package='jetbot_ros',
                           node_executable='data_collection',
                           parameters=[
                               {
                                   "data_path": [
                                       LaunchConfiguration('data_root'),
                                       os.path.sep,
                                       LaunchConfiguration('data_path')
                                   ]
                               },
                           ],
                           output='screen',
                           emulate_tty=True)

    return LaunchDescription(
        [teleop_keyboard, data_root, data_path, data_collection])
def generate_launch_description():
    params_file = LaunchConfiguration(
        'params', default=[ThisLaunchFileDir(), '/launch_params.yaml'])

    # make sure the dbc file gets installed with the launch file
    dbc_file_path = get_package_share_directory('raptor_dbw_can') + \
        "/launch/New_Eagle_DBW_3.3.388.dbc"

    return LaunchDescription([
        Node(
            package='raptor_dbw_can',
            executable='raptor_dbw_can_node',
            output='screen',
            namespace='raptor_dbw_interface',
            parameters=[{
                "dbw_dbc_file": dbc_file_path
            }],
            remappings=[
                ('/raptor_dbw_interface/can_rx', '/can_rx_tx/can_tx'),
                ('/raptor_dbw_interface/can_tx', '/can_rx_tx/can_rx'),
            ],
        ),
        LifecycleNode(package='kvaser_interface',
                      node_executable='kvaser_can_bridge',
                      node_name="kvaser_interface",
                      output='screen',
                      namespace='',
                      parameters=[params_file]),
    ])
Esempio n. 22
0
def generate_launch_description():

    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/ros2_wrapper.launch.py'])
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/vision_pipeline.launch.py'])
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/mapping_pipeline.launch.py'])
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/planning_pipeline.launch.py'])
        )
    ])
def generate_launch_description():
    # Declare arguments
    declared_arguments = []
    declared_arguments.append(
        DeclareLaunchArgument(
            "prefix",
            default_value='""',
            description="Prefix of the joint names, useful for \
        multi-robot setup. If changed than also joint names in the controllers' configuration \
        have to be updated.",
        ))
    declared_arguments.append(
        DeclareLaunchArgument(
            "use_fake_hardware",
            default_value="true",
            description=
            "Start robot with fake hardware mirroring command to its states.",
        ))
    declared_arguments.append(
        DeclareLaunchArgument(
            "fake_sensor_commands",
            default_value="false",
            description=
            "Enable fake command interfaces for sensors used for simple simulations. \
            Used only if 'use_fake_hardware' parameter is true.",
        ))
    declared_arguments.append(
        DeclareLaunchArgument("slowdown",
                              default_value="3.0",
                              description="Slowdown factor of the RRbot."))
    declared_arguments.append(
        DeclareLaunchArgument(
            "robot_controller",
            default_value="forward_position_controller",
            description="Robot controller to start.",
        ))

    # Initialize Arguments
    prefix = LaunchConfiguration("prefix")
    use_fake_hardware = LaunchConfiguration("use_fake_hardware")
    fake_sensor_commands = LaunchConfiguration("fake_sensor_commands")
    slowdown = LaunchConfiguration("slowdown")
    robot_controller = LaunchConfiguration("robot_controller")

    base_launch = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            [ThisLaunchFileDir(), "/rrbot.launch.py"]),
        launch_arguments={
            "controllers_file":
            "rrbot_multi_interface_forward_controllers.yaml",
            "description_file": "rrbot_system_multi_interface.urdf.xacro",
            "prefix": prefix,
            "use_fake_hardware": use_fake_hardware,
            "fake_sensor_commands": fake_sensor_commands,
            "slowdown": slowdown,
            "robot_controller": robot_controller,
        }.items(),
    )

    return LaunchDescription(declared_arguments + [base_launch])
Esempio n. 24
0
def generate_launch_description():
    # Declare arguments
    declared_arguments = []
    declared_arguments.append(
        DeclareLaunchArgument(
            "robot_ip",
            description="IP address by which the robot can be reached.",
        )
    )
    declared_arguments.append(
        DeclareLaunchArgument(
            "use_fake_hardware",
            default_value="false",
            description="Start robot with fake hardware mirroring command to its states.",
        )
    )
    declared_arguments.append(
        DeclareLaunchArgument(
            "fake_sensor_commands",
            default_value="false",
            description="Enable fake command interfaces for sensors used for simple simulations. \
            Used only if 'use_fake_hardware' parameter is true.",
        )
    )
    declared_arguments.append(
        DeclareLaunchArgument(
            "initial_joint_controller",
            default_value="joint_trajectory_controller",
            description="Initially loaded robot controller.",
        )
    )
    declared_arguments.append(
        DeclareLaunchArgument(
            "activate_joint_controller",
            default_value="true",
            description="Activate loaded joint controller.",
        )
    )

    # Initialize Arguments
    robot_ip = LaunchConfiguration("robot_ip")
    use_fake_hardware = LaunchConfiguration("use_fake_hardware")
    fake_sensor_commands = LaunchConfiguration("fake_sensor_commands")
    initial_joint_controller = LaunchConfiguration("initial_joint_controller")
    activate_joint_controller = LaunchConfiguration("activate_joint_controller")

    base_launch = IncludeLaunchDescription(
        PythonLaunchDescriptionSource([ThisLaunchFileDir(), "/ur_control.launch.py"]),
        launch_arguments={
            "ur_type": "ur5",
            "robot_ip": robot_ip,
            "use_fake_hardware": use_fake_hardware,
            "fake_sensor_commands": fake_sensor_commands,
            "initial_joint_controller": initial_joint_controller,
            "activate_joint_controller": activate_joint_controller,
        }.items(),
    )

    return LaunchDescription(declared_arguments + [base_launch])
Esempio n. 25
0
def generate_launch_description():
    """Launch the example.launch.py launch file."""
    return LaunchDescription([
        launch.actions.DeclareLaunchArgument(
            'image1',
            default_value='bar.png',
            description='image arg that overlaps with included arg',
        ),
        LogInfo(msg=[
            'Including launch file located at: ',
            ThisLaunchFileDir(), '/example.launch.py'
        ]),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/example.launch.py']),
            launch_arguments={'node_name': 'bar'}.items(),
        ),
    ])
Esempio n. 26
0
def generate_launch_description():
    use_sim_time = LaunchConfiguration('use_sim_time', default='false')
    turtlebot3_cartographer_prefix = get_package_share_directory('turtlebot3_cartographer')
    cartographer_config_dir = LaunchConfiguration('cartographer_config_dir', 
                                                    default=os.path.join(turtlebot3_cartographer_prefix, 'config'))
    configuration_basename = LaunchConfiguration('configuration_basename', default='turtlebot3_lds_2d.lua')

    resolution = LaunchConfiguration('resolution', default='0.05')
    publish_period_sec = LaunchConfiguration('publish_period_sec', default='1.0')

    rviz_config_dir = os.path.join(get_package_share_directory('turtlebot3_cartographer'), 'rviz', 'tb3_cartographer.rviz')

    return LaunchDescription([
        DeclareLaunchArgument(
            'cartographer_config_dir',
            default_value=cartographer_config_dir,
            description='Full path to config file to load'),
        DeclareLaunchArgument(
            'configuration_basename',
            default_value=configuration_basename,
            description='Name of lua file for cartographer'),
        DeclareLaunchArgument(
            'use_sim_time',
            default_value='false',
            description='Use simulation (Gazebo) clock if true'),

        Node(
            package='cartographer_ros',
            node_executable='cartographer_node',
            node_name='cartographer_node',
            output='screen',
            parameters=[{'use_sim_time': use_sim_time}],
            arguments=['-configuration_directory', cartographer_config_dir, '-configuration_basename', configuration_basename]),

        DeclareLaunchArgument(
            'resolution',
            default_value=resolution,
            description='Resolution of a grid cell in the published occupancy grid'),

        DeclareLaunchArgument(
            'publish_period_sec',
            default_value=publish_period_sec,
            description='OccupancyGrid publishing period'),

        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/occupancy_grid.launch.py']),
            launch_arguments={'use_sim_time': use_sim_time, 'resolution': resolution, 'publish_period_sec': publish_period_sec}.items(),
        ),

        Node(
            package='rviz2',
            node_executable='rviz2',
            node_name='rviz2',
            arguments=['-d', rviz_config_dir],
            parameters=[{'use_sim_time': use_sim_time}],
            output='screen'),
    ])
Esempio n. 27
0
def generate_launch_description():
    return LaunchDescription([
        Node(package=pkg, executable='main', name='main'),
        Node(package='rviz2',
             executable='rviz2',
             name=AnonName('rviz2'),
             arguments=['-d', Join([ThisLaunchFileDir(), 'main.rviz'])],
             output={'both': 'log'})
    ])
Esempio n. 28
0
def generate_launch_description():
    return LaunchDescription(
        rs_launch.declare_configurable_parameters(local_parameters) + [
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource(
                    [ThisLaunchFileDir(), '/rs_multi_camera_launch.py']),
                launch_arguments=rs_launch.set_configurable_parameters(
                    local_parameters).items(),
            ),
        ])
Esempio n. 29
0
def generate_launch_description():

    return LaunchDescription([
        DeclareLaunchArgument('gui',
                              default_value='true',
                              description='Set to "false" to run headless.'),
        DeclareLaunchArgument(
            'server',
            default_value='true',
            description='Set to "false" not to run gzserver.'),
        IncludeLaunchDescription(PythonLaunchDescriptionSource(
            [ThisLaunchFileDir(), '/gzserver.launch.py']),
                                 condition=IfCondition(
                                     LaunchConfiguration('server'))),
        IncludeLaunchDescription(PythonLaunchDescriptionSource(
            [ThisLaunchFileDir(), '/gzclient.launch.py']),
                                 condition=IfCondition(
                                     LaunchConfiguration('gui'))),
    ])
Esempio n. 30
0
def generate_launch_description():

    ld = LaunchDescription()

    # environment variables
    DRONE_DEVICE_ID = os.getenv('DRONE_DEVICE_ID')

    # arguments
    ld.add_action(
        DeclareLaunchArgument("rplidar_mode", default_value="outdoor"))
    ld.add_action(
        DeclareLaunchArgument("serial_port", default_value="/dev/rplidar"))

    # mode select for rplidar
    # ----------------------
    # Sensitivity: optimized for longer ranger, better sensitivity but weak environment elimination
    # Boost: optimized for sample rate
    # Stability: for light elimination performance, but shorter range and lower sample rate
    rplidar_mode = PythonExpression([
        '"Stability" if "outdoor" == "',
        LaunchConfiguration("rplidar_mode"), '" else "Sensitivity"'
    ])

    #namespace declarations
    namespace = DRONE_DEVICE_ID

    # frame names
    fcu_frame = DRONE_DEVICE_ID + "/fcu"  # the same definition is in static_tf_launch.py file
    rplidar_frame = DRONE_DEVICE_ID + "/rplidar"  # the same definition is in static_tf_launch.py file
    garmin_frame = DRONE_DEVICE_ID + "/garmin"  # the same definition is in static_tf_launch.py file

    ld.add_action(
        Node(
            namespace=namespace,
            package='rplidar_ros2',
            executable='rplidar',
            name='rplidar',
            parameters=[{
                'serial_port': LaunchConfiguration("serial_port"),
                'serial_baudrate': 256000,  # A3
                'frame_id': rplidar_frame,
                'inverted': False,
                'angle_compensate': True,
                'scan_mode': rplidar_mode,
            }],
            output='screen',
        ), ),

    ld.add_action(
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource(
                [ThisLaunchFileDir(), '/static_tf_launch.py'])), ),

    return ld