# Dynablox
An online volumetric mapping-based approach for real-time detection of diverse dynamic objects in complex environments.
<p align="center">
<img width='100%' src="https://user-images.githubusercontent.com/36043993/232650770-a042cbb9-c251-42f9-8a96-d7d9273fec96.gif">
</p>
# Setup
There is a [docker image](https://hub.docker.com/repository/docker/zhangkin/dynablox/general) available for this package. Check the usage in the dockerhub page.
## Installation
* **Note on Versioning:** This package was developed using Ubuntu 20.04 using ROS Noetic. Other versions should also work but support can not be guaranteed.
1. If not already done so, install [ROS](http://wiki.ros.org/action/fullsearch/melodic/Installation/Ubuntu?action=fullsearch&context=180&value=linkto%3A%22melodic%2FInstallation%2FUbuntu%22). We recommend using `Desktop-Full`.
2. If not already done so, setup a catkin workspace:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
catkin config --extend /opt/ros/$ROS_DISTRO
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
catkin config --merge-devel
```
2. Install system dependencies:
```bash
sudo apt-get install python3-vcstool python3-catkin-tools ros-$ROS_DISTRO-cmake-modules protobuf-compiler autoconf git rsync -y
```
3. Download the project.
```bash
cd ~/catkin_ws/src
# download the project
```
4. Install ROS dependencies:
```bash
cd ~/catkin_ws/src
vcs import . < ./dynablox/ssh.rosinstall --recursive
```
5. Build:
```bash
catkin build dynablox_ros
```
## Datasets
To run the demos we use the [Urban Dynamic Objects LiDAR (DOALS) Dataset](https://projects.asl.ethz.ch/datasets/doku.php?id=doals).
To download the data and pre-process it for our demos, use the provided script:
```bash
roscd dynablox_ros/scripts
./download_doals_data.sh /home/$USER/data/DOALS # Or your preferred data destination.
```
We further collect a new dataset featuring diverse dynamic objects in complex scenes.
The full dataset and description ca nbe found [here](https://projects.asl.ethz.ch/datasets/doku.php?id=dynablox).
To download the processed ready-to-run data for our demos, use the provided script:
```bash
roscd dynablox_ros/scripts
./download_dynablox_data.sh /home/$USER/data/Dynablox # Or your preferred data destination.
```
# Examples
## Running a DOALS Sequence
1. If not done so, download the DOALS dataset as explained [here](#datasets).
2. Adjust the dataset path in `dynablox_ros/launch/run_experiment.launch`:
```xml
<arg name="bag_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/bag.bag" />
```
3. Run
```bash
roslaunch dynablox_ros run_experiment.launch
```
4. You should now see dynamic objects being detected as the sensor moves through the scene:
![Run DOALS Example](https://user-images.githubusercontent.com/36043993/232138501-84250c43-236e-46f6-9b50-af54312215a7.png)
## Running a Dynablox Sequence
1. If not done so, download the Dynablox dataset as explained [here](#datasets).
2. Adjust the dataset path in `dynablox_ros/launch/run_experiment.launch` and set `use_doals` to false:
```xml
<arg name="use_doals" default="false" />
<arg name="bag_file" default="/home/$(env USER)/data/Dynablox/processed/ramp_1.bag" />
```
3. Run
```bash
roslaunch dynablox_ros run_experiment.launch
```
4. You should now see dynamic objects being detected as the sensor moves through the scene:
![Run Dynablox Example](https://user-images.githubusercontent.com/36043993/232140093-ee99a919-d2ad-4dc8-95ac-fa047b901f94.png)
## Running and Evaluating an Experiment
### Running an Experiment
1. If not done so, download the DOALS dataset as explained [here](#datasets).
2. Adjust the dataset path in `dynablox_ros/launch/run_experiment.launch`:
```xml
<arg name="bag_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/bag.bag" />
```
3. In `dynablox_ros/launch/run_experiment.launch`, set the `evaluate` flag, adjust the ground truth data path, and specify where to store the generated outpuit data:
```xml
<arg name="evaluate" default="true" />
<arg name="eval_output_path" default="/home/$(env USER)/dynablox_output/" />
<arg name="ground_truth_file" default="/home/$(env USER)/data/DOALS/hauptgebaeude/sequence_1/indices.csv" />
```
3. Run
```bash
roslaunch dynablox_ros run_experiment.launch
```
4. Wait till the dataset finished processing. Dynablox should shutdown automatically afterwards.
### Analyzing the Data
- **Printing the Detection Performance Metrics:**
1. Run:
```bash
roscd dynablox_ros/src/evaluation
python3 evaluate_data.py /home/$USER/dynablox_output
```
2. You should now see the performance statistics for all experiments in that folder:
```
1/1 data entries are complete.
Data object_IoU object_Precision object_Recall
hauptgebaeude_1 89.8 +- 5.6 99.3 +- 0.4 90.3 +- 5.6
All 89.8 +- 5.6 99.3 +- 0.4 90.3 +- 5.6
```
- **Inspecting the Segmentation:**
1. Run:
```bash
roslaunch dynablox_ros cloud_visualizer.launch file_path:=/home/$USER/dynablox_output/clouds.csv
```
2. You should now see the segmentation for the annotated ground truth clouds, showing True Positives (green), True Negatives (black), False Positives (blue), False Negatives (red), and out-of-range (gray) points:
![Evaluation](https://user-images.githubusercontent.com/36043993/232151598-750a6860-e6e6-44bc-89c6-fbc866109019.png)
- **Inspecting the Run-time and Configuration:**
Additional information is automatically stored in `timings.txt` and `config.txt` for each experiment.
### Advanced Options
* **Adding Drift to an Experiment:**
To run an experiment with drift specify one of the pre-computed drift rollouts in `dynablox_ros/launch/run_experiment.launch`:
```xml
<arg name="drift_simulation_rollout" default="doals/hauptgebaeude/sequence_1/light_3.csv" />
```
All pre-computed rollouts can be found in `drift_simulation/config/rollouts`. Note that the specified sequence needs to match the data being played. For each sequence, there exist 3 rollouts for each intensity.
Alternatively, use the `drift_simulation/launch/generate_drift_rollout.launch` to create new rollouts for other datasets.
* **Changing th Configuration of Dynablox:**
All parameters that exist in dynablox are listed in `dynablox_ros/config/motion_detector/default.yaml`, feel free to tune the method for your use case!
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
动态物体检测-复杂环境下多目标动态物体实时检测算法实现-优质项目实战.zip (168个子文件)
.clang-format 2KB
motion_visualizer.cpp 29KB
motion_detector.cpp 12KB
odometry_drift_simulator.cpp 12KB
clustering.cpp 11KB
ever_free_integrator.cpp 9KB
evaluator.cpp 7KB
io_tools.cpp 5KB
tracking.cpp 4KB
drift_reader.cpp 3KB
cloud_visualizer.cpp 3KB
ground_truth_handler.cpp 2KB
preprocessing.cpp 2KB
normal_distribution.cpp 858B
motion_detector_node.cpp 646B
cloud_visualizer_node.cpp 616B
odometry_drift_simulator_node.cpp 461B
drift_reader_node.cpp 392B
severe_3.csv 141KB
strong_3.csv 141KB
strong_2.csv 141KB
moderate_1.csv 141KB
light_2.csv 141KB
strong_1.csv 141KB
moderate_3.csv 141KB
light_3.csv 141KB
light_1.csv 141KB
none.csv 140KB
severe_1.csv 140KB
moderate_2.csv 140KB
severe_2.csv 140KB
severe_3.csv 139KB
severe_1.csv 139KB
strong_1.csv 138KB
strong_3.csv 138KB
light_3.csv 138KB
strong_2.csv 138KB
moderate_2.csv 138KB
severe_2.csv 138KB
moderate_1.csv 138KB
none.csv 138KB
moderate_3.csv 138KB
light_1.csv 138KB
light_2.csv 138KB
severe_3.csv 123KB
severe_1.csv 123KB
light_1.csv 123KB
moderate_3.csv 123KB
none.csv 123KB
light_1.csv 123KB
strong_3.csv 123KB
moderate_1.csv 123KB
light_2.csv 123KB
strong_1.csv 123KB
strong_2.csv 123KB
light_3.csv 123KB
moderate_2.csv 123KB
none.csv 123KB
severe_2.csv 123KB
moderate_2.csv 123KB
strong_2.csv 123KB
moderate_1.csv 123KB
strong_3.csv 123KB
light_3.csv 123KB
severe_1.csv 123KB
light_2.csv 123KB
moderate_3.csv 123KB
severe_2.csv 123KB
severe_3.csv 123KB
strong_1.csv 123KB
strong_2.csv 116KB
moderate_3.csv 116KB
light_3.csv 116KB
light_1.csv 116KB
strong_3.csv 116KB
none.csv 116KB
severe_1.csv 116KB
moderate_2.csv 116KB
strong_1.csv 116KB
moderate_1.csv 116KB
light_2.csv 116KB
severe_3.csv 116KB
severe_2.csv 116KB
strong_3.csv 106KB
severe_3.csv 106KB
light_2.csv 106KB
light_1.csv 106KB
light_3.csv 106KB
severe_2.csv 106KB
moderate_2.csv 106KB
none.csv 106KB
moderate_1.csv 106KB
moderate_3.csv 106KB
severe_1.csv 106KB
strong_1.csv 105KB
strong_2.csv 105KB
moderate_2.csv 76KB
strong_3.csv 76KB
moderate_3.csv 76KB
strong_1.csv 76KB
共 168 条
- 1
- 2
资源评论
极智视界
- 粉丝: 2w+
- 资源: 1528
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功