15from ament_index_python
import get_package_share_directory
16from launch
import LaunchDescription
17from launch_ros.actions
import ComposableNodeContainer
18from launch_ros.descriptions
import ComposableNode
19from launch.actions
import DeclareLaunchArgument
20from launch.substitutions
import LaunchConfiguration
21from carma_ros2_utils.launch.get_current_namespace
import GetCurrentNamespace
29This file is can be used to launch the CARMA carma_cloud_client_node.
30 Though in carma-platform it may be launched directly
from the base launch file.
36 REMOTE_ADDR=
"www.carma-cloud.com"
37 KEY_FILE=
"carma-cloud-test-1.pem"
41 param_launch_path = os.path.join(
42 get_package_share_directory(
'carma_cloud_client'),
'launch/scripts')
45 cmd = param_launch_path +
'/open_tunnels.sh'
47 subprocess.check_call([
'chmod',
'u+x', cmd])
49 key_path =
"/opt/carma/vehicle/calibration/cloud_permission"
51 key = key_path +
'/' + KEY_FILE
53 subprocess.check_call([
'sudo',
'chmod',
'400', key])
54 subprocess.check_call([
'sudo', cmd,
'-u', REMOTE_USER,
'-a', REMOTE_ADDR,
'-k', key,
'-p', REMOTE_PORT,
'-r', HOST_PORT])
61 log_level = LaunchConfiguration(
'log_level')
62 declare_log_level_arg = DeclareLaunchArgument(
63 name =
'log_level', default_value=
'WARN')
66 param_file_path = os.path.join(
67 get_package_share_directory(
'carma_cloud_client'),
'config/parameters.yaml')
71 container = ComposableNodeContainer(
72 package=
'carma_ros2_utils',
73 name=
'carma_cloud_client_container',
74 namespace=GetCurrentNamespace(),
75 executable=
'carma_component_container_mt',
76 composable_node_descriptions=[
80 package=
'carma_cloud_client',
81 plugin=
'carma_cloud_client::CarmaCloudClient',
82 name=
'carma_cloud_client',
84 {
'use_intra_process_comms':
True},
85 {
'--log-level' : log_level }
87 parameters=[ param_file_path ]
92 return LaunchDescription([
93 declare_log_level_arg,
def generate_launch_description()