Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 32 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,25 @@

### ROS 1 User
* Install Ubuntu 20.04 and ROS NOETIC
* Checkout the master branch
* Please catkin build [SFUISE](https://github.com/ASIG-X/SFUISE) in your workspace to have the cf_msg, which is required in gptr.
* Please install Ceres 2.0 and sophus
* Please install depencies, including Ceres Solver (1.14) and sophus
```
sudo apt install libfmt-dev # may be required as a dependency of sophus
sudo apt install ros-noetic-sophus
sudo apt install libceres-dev
```
* Git clone and catkin build the repo.
* Create a catkin workspace with [SFUISE](https://github.com/ASIG-X/SFUISE) (main branch) for the `cf_msgs` dependency, and [GPTR](https://github.com/brytsknguyen/gptr) (master branch)
```
mkdir -p ~/gptr_ws/src && cd ~/gptr_ws
catkin init
cd src
git clone git@github.com:ASIG-X/SFUISE.git
git clone git@github.com:brytsknguyen/gptr.git
```
* Build the repo:
```
cd ~/gptr_ws
catkin build gptr
```

### ROS 2 User
* Install Ubuntu 22.04 and ROS HUMBLE
Expand Down Expand Up @@ -42,15 +52,27 @@ Please raise an issue should you encounter any issue with the compilation of the

You can download and unzip the file `cloud_avia_mid_dynamic_extrinsics` from [here](https://drive.google.com/file/d/1Q5fTn5OvWd_I2RvVfiUKir90q5HshzQM/view?usp=sharing). It contains the pointclouds and the prior map for the experiment.

After that, modify the path to the data and prior map in `run_sim.launch` and launch it. You should see the following visualization from rviz.
Launch the experiment with `run_lio_sim.launch`, ensuring that you set the path to the extracted folder correctly.
```
source ~/gptr_ws/devel/setup.bash
roslaunch gptr run_lio_sim.launch path:=/path/to/cloud_avia_mid_dynamic_extrinsics
```

You should see the following visualization in rviz.

<img src="docs/sim.gif" alt="synthetic_exp" width="600"/>

### With handheld setup

Similar to the synthetic dataset, please download the data and the prior map from [here](https://drive.google.com/file/d/1QId8X4LFxYdYewHSBXiDEAvpIFD8w-ei/view?usp=sharing).

Then specify the paths to the data and prior map in `gptr/launch/run_lio_cathhs_iot.launch` before roslaunch. You should see the following illustration.
Launch the experiment with `run_lio_cathhs_iot.launch`, ensuring that you set the path to the extracted folder correctly.
```
source ~/gptr_ws/devel/setup.bash
roslaunch gptr run_lio_cathhs_iot.launch path:=/path/to/cathhs_07
```

You should see the following visualization in rviz.

<img src="docs/cathhs.gif" alt="cathhs_exp" width="600"/>

Expand All @@ -64,11 +86,9 @@ Please use the scripts `analysis_cathhs.ipynb` and `analysis_sim.ipynb` to evalu

Please download the [UTIL](https://utiasdsl.github.io/util-uwb-dataset/) (TDoA-inertial) dataset.

Change `bag_file` and `anchor_path` in `gptr/launch/run_util.launch` according to your own path.

For ROS1 users, please run
For ROS1 users, please run with the correct path to the directory containing the extracted dataset:
```
roslaunch gptr run_util.launch
roslaunch gptr run_util.launch path:=/path/to/UTIL
```
For ROS2 users, please first convert the UTIL dataset to ROS2 bag using `ros2bag_convert_util.sh` from [SFUISE2](https://github.com/ASIG-X/SFUISE2) and run
```
Expand All @@ -87,10 +107,10 @@ For comparison, a baseline approach based on ESKF is available in the paper of U

## Testing on visual-inertial estimation and calibration
<img src="/docs/vicalib.gif" width="600"/>
Run the following command from terminal

Run the following command from terminal, changing the path as desired:
```
roslaunch gptr run_vicalib.launch
roslaunch gptr run_vicalib.launch result_save_path:=/path/to/results
```
This dataset is converted from the original one in [here](https://gitlab.com/tum-vision/lie-spline-experiments).

Expand Down
24 changes: 12 additions & 12 deletions gptr/launch/gptr_ui.rviz
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Panels:
- /ground_truth1/Shape1
- /Odometry1/Shape1
Splitter Ratio: 0.5
Tree Height: 746
Tree Height: 1239
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expand Down Expand Up @@ -228,33 +228,33 @@ Visualization Manager:
Views:
Current:
Class: rviz/Orbit
Distance: 0.0010668616741895676
Distance: 7.582653522491455
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: -0.13623669743537903
Y: -1.8856688737869263
Z: 1.7679803371429443
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.45039811730384827
Pitch: 0.49539807438850403
Target Frame: <Fixed Frame>
Yaw: 3.418574810028076
Yaw: 3.4635751247406006
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 1043
Height: 1536
Hide Left Dock: false
Hide Right Dock: true
QMainWindow State: 000000ff00000000fd00000004000000000000015600000375fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730200000780000004e800000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000375000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000006240000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
QMainWindow State: 000000ff00000000fd00000004000000000000015600000562fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f00700065007200740069006500730200000780000004e800000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000562000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000562fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000562000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000009b80000003efc0100000002fb0000000800540069006d00650100000000000009b8000003bc00fffffffb0000000800540069006d006501000000000000045000000000000000000000085c0000056200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
Expand All @@ -263,6 +263,6 @@ Window Geometry:
collapsed: false
Views:
collapsed: true
Width: 1920
X: 0
Y: 1256
Width: 2488
X: 1992
Y: 861
11 changes: 7 additions & 4 deletions gptr/launch/run_lio_cathhs_iot.launch
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
<!-- <arg name="sequence" default="cathhs_03"/> -->
<!-- <arg name="sequence" default="cathhs_04"/> -->

<!-- Path -->
<arg name="path" default="/media/tmn/mySataSSD1/Experiments/gptr"/>

<!-- Bag file -->
<arg name="lidar_bag_file" value="/media/tmn/mySataSSD1/Experiments/gptr/$(arg sequence)/"/>
<arg name="lidar_bag_file" value="$(arg path)"/>

<!-- Initial start time of each sequence -->
<!-- <arg name="skipped_time" value="3.5" if="$(eval 'cathhs_06' in sequence)"/> -->
Expand All @@ -23,15 +26,15 @@
0.2, 0, -0.2, 0, 90, 0 ]"/>

<!-- Direction to log the exp -->
<arg name="log_dir" value="/media/tmn/mySataSSD1/Experiments/gptr/logs/lio/cathhs_exp/$(arg sequence)_gptr_two_lidar"/>
<arg name="log_dir" value="$(arg path)/logs/lio/cathhs_exp/$(arg sequence)_gptr_two_lidar"/>

<!-- Multi-lidar motion estimation node -->
<node required="false" pkg="gptr" type="gptr_lo" name="gptr_lo" output="screen"
launch-prefix="bash -c 'cp -r $(find gptr)/launch $(arg log_dir); sleep 3; $0 $@' ">
<!-- launch-prefix="gdb -ex run - -args"> -->

<!-- Location of the prior map -->
<param name="priormap_file" value="/media/tmn/mySataSSD1/Experiments/gptr/cathhs_iot_prior_2cm.pcd"/>
<param name="priormap_file" value="$(arg path)/cathhs_iot_prior_2cm.pcd"/>

<!-- Location of bag file -->
<param name="lidar_bag_file" value="$(arg lidar_bag_file)"/>
Expand Down Expand Up @@ -138,4 +141,4 @@
<node pkg="rviz" type="rviz" name="rviz_odom" output="log" required="true"
args="-d $(find gptr)/launch/gptr_lo_cathhs.rviz"/>

</launch>
</launch>
11 changes: 7 additions & 4 deletions gptr/launch/run_lio_sim.launch
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
<!-- Sequence -->
<arg name="sequence" default="cloud_avia_mid_dynamic_extrinsics"/>

<!-- Path -->
<arg name="path" default="/media/tmn/mySataSSD1/Experiments/gptr"/>

<!-- Bag file -->
<arg name="lidar_bag_file" value="/media/tmn/mySataSSD1/Experiments/gptr/$(arg sequence)/"/>
<arg name="lidar_bag_file" value="$(arg path)/$(arg sequence)"/>

<!-- Initial start time of each sequence -->
<arg name="skipped_time" value="0"/>
Expand All @@ -19,15 +22,15 @@
-0.3, -0.3, 0.55, -134, 0, 0 ]"/>

<!-- Direction to log the exp -->
<arg name="log_dir" value="/media/tmn/mySataSSD1/Experiments/gptr/logs/lio/sim_exp/sim_$(arg sequence)_gptr_two_lidar/"/>
<arg name="log_dir" value="$(arg path)/logs/lio/sim_exp/sim_$(arg sequence)_gptr_two_lidar/"/>

<!-- Multi-lidar motion estimation node -->
<node required="false" pkg="gptr" type="gptr_lo" name="gptr_lo" output="screen"
launch-prefix="bash -c 'cp -r $(find gptr)/launch $(arg log_dir); sleep 3; $0 $@' ">
<!-- launch-prefix="gdb -ex run - -args"> -->

<!-- Location of the prior map -->
<param name="priormap_file" value="/media/tmn/mySataSSD1/Experiments/gptr/sim_priormap.pcd"/>
<param name="priormap_file" value="$(arg path)/sim_priormap.pcd"/>

<!-- Location of bag file -->
<param name="lidar_bag_file" value="$(arg lidar_bag_file)"/>
Expand Down Expand Up @@ -130,4 +133,4 @@
<node pkg="rviz" type="rviz" name="rviz_odom" output="log" required="true"
args="-d $(find gptr)/launch/gptr_lo_sim.rviz"/>

</launch>
</launch>
9 changes: 5 additions & 4 deletions gptr/launch/run_util.launch
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
<launch>

<!-- Name of the UWB sequence -->
<arg name="bag_file" default="/media/tmn/mySataSSD1/DATASETS/UTIL_DATASETS/dataset/flight-dataset/rosbag-data/const1/const1-trial1-tdoa2.bag"/>
<arg name="anchor_path" default="/media/tmn/mySataSSD1/DATASETS/UTIL_DATASETS/dataset/flight-dataset/survey-results/anchor_const1_survey.txt"/>
<arg name="result_save_path" default="/home/kailai/Documents/results/gptr/c1/"/>
<arg name="path" default="/media/tmn/mySataSSD1/DATASETS/UTIL_DATASETS"/>
<arg name="bag_file" default="$(arg path)/dataset/flight-dataset/rosbag-data/const1/const1-trial1-tdoa2.bag"/>
<arg name="anchor_path" default="$(arg path)/dataset/flight-dataset/survey-results/anchor_const1_survey.txt"/>
<arg name="result_save_path" default="$(arg path)/results/gptr/c1/"/>

<!-- Launch the uwb imu fusion node -->
<node pkg="gptr" type="gptr_ui" name="gptr_ui" output="screen">
Expand Down Expand Up @@ -50,4 +51,4 @@
args="--clock $(arg bag_file) -r 0.5 -s 0.0"
launch-prefix="bash -c 'sleep 1.0; $0 $@' "/>

</launch>
</launch>
2 changes: 2 additions & 0 deletions gptr/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,14 @@
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>sophus</build_depend>
<build_depend>cf_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>cf_msgs</exec_depend>


<!-- The export tag contains other, unspecified, tags -->
Expand Down