Skip to content

Commit 5379502

Browse files
committed
makeover component launch file
1 parent 37219e2 commit 5379502

File tree

4 files changed

+5
-203
lines changed

4 files changed

+5
-203
lines changed
Lines changed: 3 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"""
77

88
import os
9+
import yaml
910
import launch
1011

1112
import ament_index_python.packages
@@ -19,119 +20,14 @@
1920
from launch_ros.substitutions import FindPackageShare
2021
from ament_index_python.packages import get_package_share_directory
2122

22-
23-
import yaml
24-
25-
26-
# --------- master_example.launch.py
27-
28-
29-
camera_list = {
30-
'cam0': '23540201',
31-
}
32-
33-
serial = '23540201'
34-
camera_type = 'blackfly_s'
35-
parameter_file = PJoin(
36-
[FindPackageShare('spinnaker_camera_driver'), 'config', camera_type + '.yaml']
37-
)
38-
39-
exposure_controller_parameters = {
40-
'type': 'master',
41-
'brightness_target': 120, # from 0..255
42-
'brightness_tolerance': 20, # when to update exposure/gain
43-
# watch that max_exposure_time is short enough
44-
# to support the trigger frame rate!
45-
'max_exposure_time': 15000, # usec
46-
'min_exposure_time': 5000, # usec
47-
'max_gain': 29.9,
48-
'gain_priority': False,
49-
}
50-
51-
camera_params = {
52-
'debug': False,
53-
'quiet': True,
54-
'buffer_queue_size': 1,
55-
'compute_brightness': True,
56-
'exposure_auto': 'Continuous',
57-
'exposure_time': 10000, # not used under auto exposure
58-
'trigger_mode': 'Off',
59-
'frame_rate_auto': 'Off',
60-
'frame_rate_enable': True,
61-
'gain_auto': 'Continuous',
62-
'trigger_source': 'Software',
63-
'trigger_selector': 'FrameStart',
64-
'trigger_overlap': 'ReadOut',
65-
'trigger_activation': 'RisingEdge',
66-
'balance_white_auto': 'Continuous',
67-
# You must enable chunk mode and chunks: frame_id, exposure_time, and gain
68-
'chunk_mode_active': True,
69-
'chunk_selector_frame_id': 'FrameID',
70-
'chunk_enable_frame_id': True,
71-
'chunk_selector_exposure_time': 'ExposureTime',
72-
'chunk_enable_exposure_time': True,
73-
'chunk_selector_gain': 'Gain',
74-
'chunk_enable_gain': True,
75-
# The Timestamp is not used at the moment
76-
'chunk_selector_timestamp': 'Timestamp',
77-
'chunk_enable_timestamp': True,
78-
'frame_rate': 5
79-
}
80-
81-
82-
def make_parameters(context):
83-
"""Launch synchronized camera driver node."""
84-
pd = LaunchConfig('camera_parameter_directory')
85-
calib_url = 'file://' + LaunchConfig('calibration_directory').perform(context) + '/'
86-
87-
exp_ctrl_names = [cam + '.exposure_controller' for cam in camera_list.keys()]
88-
driver_parameters = {
89-
'cameras': list(camera_list.keys()),
90-
'exposure_controllers': exp_ctrl_names,
91-
'ffmpeg_image_transport.encoding': 'hevc_nvenc', # only for ffmpeg image transport
92-
}
93-
# generate identical exposure controller parameters for all cameras
94-
for exp in exp_ctrl_names:
95-
driver_parameters.update(
96-
{exp + '.' + k: v for k, v in exposure_controller_parameters.items()}
97-
)
98-
99-
# generate camera parameters
100-
cam_parameters['parameter_file'] = PJoin([pd, 'blackfly_s.yaml'])
101-
for cam, serial in camera_list.items():
102-
cam_params = {cam + '.' + k: v for k, v in cam_parameters.items()}
103-
cam_params[cam + '.serial_number'] = serial
104-
cam_params[cam + '.camerainfo_url'] = calib_url + serial + '.yaml'
105-
cam_params[cam + '.frame_id'] = cam
106-
driver_parameters.update(cam_params) # insert into main parameter list
107-
# link the camera to its exposure controller. Each camera has its own controller
108-
driver_parameters.update({cam + '.exposure_controller_name': cam + '.exposure_controller'})
109-
return driver_parameters
110-
111-
112-
# ----------------------------------
113-
11423
def launch_setup(context, *args, **kwargs):
115-
"""Create composable node."""
116-
# For the camera
117-
#cam_name = LaunchConfig("camera_name")
118-
#cam_str = cam_name.perform(context)
119-
120-
# For the GPS
12124
config_directory = os.path.join(
12225
ament_index_python.packages.get_package_share_directory('ublox_gps'),
12326
'config')
12427
param_config = os.path.join(config_directory, 'zed_f9p.yaml')
12528
with open(param_config, 'r') as f:
12629
params = yaml.safe_load(f)['ublox_gps_node']['ros__parameters']
12730

128-
# For EC
129-
# bias_config = os.path.join(
130-
# ament_index_python.packages.get_package_share_directory('high_altitude_ec'),
131-
# 'config/silky_ev_all_zero.bias')
132-
bias_config = "/home/dcist/fclad/ROS/high_altitude_env/src/high_altitude_ec/config/silkyHD_all_zero.bias"
133-
# Declare launch arguments
134-
13531
# Find package share directory
13632
glider_share = FindPackageShare('glider')
13733
glider_share_dir = get_package_share_directory('glider')
@@ -146,7 +42,7 @@ def launch_setup(context, *args, **kwargs):
14642
graph_params_file = PJoin([
14743
glider_share,
14844
'config',
149-
'vectornav-vn100t.yaml'
45+
'glider-params.yaml'
15046
])
15147

15248
container = ComposableNodeContainer(
@@ -163,10 +59,8 @@ def launch_setup(context, *args, **kwargs):
16359
name="recorder",
16460
parameters=[{'topics': [
16561
"/ublox_gps_node/fix",
166-
"/odom",
62+
"/glider/odom",
16763
"/vectornav/imu",
168-
"/vectornav/magnetic",
169-
"/cam_driver/image_raw"
17064
],
17165
'storage_id': 'mcap',
17266
'record_all': False,
@@ -190,17 +84,6 @@ def launch_setup(context, *args, **kwargs):
19084
remappings=[],
19185
extra_arguments=[{'use_intra_process_comms': True}]),
19286

193-
# FLIR camera
194-
ComposableNode(
195-
package='spinnaker_camera_driver',
196-
plugin='spinnaker_camera_driver::CameraDriver',
197-
name="cam_driver",
198-
parameters=[camera_params, {'parameter_file': parameter_file, 'serial_number': serial}],
199-
remappings=[
200-
('~/control', '/exposure_control/control'),
201-
],
202-
extra_arguments=[{'use_intra_process_comms': True}],
203-
),
20487
# Ublox GPS
20588
ComposableNode(
20689
package='ublox_gps',
@@ -276,11 +159,5 @@ def generate_launch_description():
276159
),
277160
# This is for the composed nodes
278161
OpaqueFunction(function=launch_setup),
279-
#Node(
280-
# package="sf000_driver",
281-
# executable="reader.py",
282-
# name="reader",
283-
# remappings=[("/range", "/sf000/range")],
284-
#)
285162
]
286163
)

glider/launch/glider-component.launch.py

Lines changed: 0 additions & 74 deletions
This file was deleted.

glider/launch/glider-node.launch.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ def generate_launch_description():
6262
'use_odom': False}
6363
],
6464
remappings=[
65-
('/gps', '/ublox/fix'),
66-
('/imu', '/VN100T/imu'),
65+
('/gps', '/ublox_gps_node/fix'),
66+
('/imu', '/vectornav/imu'),
6767
('/odom', '/Odometry'),
6868
]
6969
)

glider/src/glider.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ void Glider::addGpsWithHeading(int64_t timestamp, Eigen::Vector3d& gps)
9191

9292
if(factor_manager_.isSystemInitialized() && current_odom_.isMovingFasterThan(dgps_.getVelocityThreshold()))
9393
{
94-
LOG(INFO) << "[GLIDER] Adding DGPS heading";
9594
double heading = dgps_.getHeading(gps);
9695
factor_manager_.addGpsFactor(timestamp, meas, heading, true);
9796
}

0 commit comments

Comments
 (0)