|
11 | 11 | <param name="use_sim_time" value="true"/> |
12 | 12 | <arg name="rosbag_path" unless="$(arg online)"/> |
13 | 13 |
|
| 14 | + <!-- If true, SparkVio will log output of all modules to the |
| 15 | + 'log_output_path' location. --> |
| 16 | + <arg name="log_output" default="false"/> |
| 17 | + <arg name="log_output_path" |
| 18 | + default="$(find spark_vio_ros)/output_logs/"/> |
| 19 | + <!-- If true, log ground-truth poses to a csv file using the |
| 20 | + gt_logger_node, and processing data from the gt_topic rostopic --> |
| 21 | + <arg name="log_gt_data" default="false"/> |
| 22 | + <arg name="gt_topic" if="$(arg log_gt_data)" |
| 23 | + default="ground_truth_odometry_topic"/> |
| 24 | + |
14 | 25 | <!-- Parameters --> |
15 | 26 | <!-- each dataset has its own set of parameter files --> |
16 | 27 | <!-- the parameters are set in param folder, ordered by the dataset's name --> |
17 | | - <arg name="params_folder" value="$(find spark_vio_ros)/param/$(arg dataset_name)"/> |
| 28 | + <arg name="params_folder" |
| 29 | + value="$(find spark_vio_ros)/param/$(arg dataset_name)"/> |
18 | 30 |
|
19 | 31 | <!-- Subscribed Topics --> |
20 | | - <arg name="left_cam_topic" default="/cam0/image_raw"/> |
21 | | - <arg name="right_cam_topic" default="/cam1/image_raw"/> |
22 | | - <arg name="imu_topic" default="/imu0"/> |
| 32 | + <arg name="left_cam_topic" default="/cam0/image_raw"/> |
| 33 | + <arg name="right_cam_topic" default="/cam1/image_raw"/> |
| 34 | + <arg name="imu_topic" default="/imu0"/> |
| 35 | + <!-- Empty string ("") means no ground-truth available. Used for init if |
| 36 | + requested to do ground-truth initialization. --> |
| 37 | + <arg name="odometry_ground_truth_topic" default=""/> |
23 | 38 |
|
24 | 39 | <!-- Frame IDs --> |
25 | 40 | <arg name="world_frame_id" default="world"/> |
|
31 | 46 | <arg name="backend_type" default="1" /> |
32 | 47 | <!-- Visualize pipeline output in OpenCV. --> |
33 | 48 | <!-- Note that this is duplicated from the flags file --> |
34 | | - <arg name="visualize" default="false" /> |
| 49 | + <arg name="visualize" default="true" /> |
35 | 50 |
|
36 | 51 | <!-- Launch main node --> |
37 | 52 | <node name="spark_vio_ros" pkg="spark_vio_ros" type="spark_vio_ros" output="screen" |
|
47 | 62 | --log_prefix=1 |
48 | 63 | --v=$(arg verbosity) |
49 | 64 | --backend_type=$(arg backend_type) |
50 | | - --log_output=0 |
51 | | - --output_path='.' |
| 65 | + --log_output=$(arg log_output) |
| 66 | + --output_path=$(arg log_output_path) |
52 | 67 | --visualize=$(arg visualize) |
53 | 68 | --parallel_run=$(arg parallel) |
54 | 69 | --online_run=$(arg online)"> |
|
66 | 81 | <param name="left_cam_rosbag_topic" value="$(arg left_cam_topic)" unless="$(arg online)"/> |
67 | 82 | <param name="right_cam_rosbag_topic" value="$(arg right_cam_topic)" unless="$(arg online)"/> |
68 | 83 | <param name="imu_rosbag_topic" value="$(arg imu_topic)" unless="$(arg online)"/> |
| 84 | + <param name="ground_truth_odometry_rosbag_topic" |
| 85 | + value="$(arg odometry_ground_truth_topic)" unless="$(arg online)"/> |
| 86 | + |
| 87 | +ground_truth_odometry_rosbag_topic |
69 | 88 |
|
70 | 89 | <!-- Other subscription topics --> |
71 | 90 | <remap from="reinit_flag" to="/sparkvio/reinit_flag"/> |
72 | 91 | <remap from="reinit_pose" to="/sparkvio/reinit_pose"/> |
73 | 92 |
|
74 | 93 | <!-- Remap publisher topics --> |
75 | | - <remap from="odometry" to="/sparkvio/odometry"/> |
76 | | - <remap from="resiliency" to="/sparkvio/resiliency"/> |
77 | | - <remap from="imu_bias" to="/sparkvio/imu_bias"/> |
| 94 | + <!-- TODO(Toni): we should use a group ns="sparkvio" instead --> |
| 95 | + <remap from="odometry" to="/sparkvio/odometry"/> |
| 96 | + <remap from="resiliency" to="/sparkvio/resiliency"/> |
| 97 | + <remap from="imu_bias" to="/sparkvio/imu_bias"/> |
| 98 | + <remap from="mesh" to="/sparkvio/mesh"/> |
| 99 | + <remap from="frontend_stats" to="/sparkvio/frontend_stats"/> |
| 100 | + <remap from="debug_mesh_img" to="/sparkvio/debug_mesh_img"/> |
| 101 | + <remap from="time_horizon_pointcloud" |
| 102 | + to="/sparkvio/time_horizon_pointcloud"/> |
78 | 103 |
|
79 | 104 | <!-- Resiliency Thresholds: TODO(Sandro) document --> |
80 | 105 | <param name="velocity_det_threshold" value="0.1"/> |
|
86 | 111 | <rosparam command="load" file="$(arg params_folder)/calibration.yaml"/> |
87 | 112 |
|
88 | 113 | </node> |
| 114 | + |
| 115 | + <!-- Log ground-truth data only if requested--> |
| 116 | + <node if="$(arg log_gt_data)" name="gt_logger_node" pkg="spark_vio_ros" |
| 117 | + type="gt_logger_node.py" output="screen"> |
| 118 | + <param name="gt_topic" value="$(arg gt_topic)"/> |
| 119 | + <param name="output_dir" value="$(arg log_output_path)"/> |
| 120 | + </node> |
89 | 121 | </launch> |
0 commit comments