forked from laxnpander/openvslam
-
Notifications
You must be signed in to change notification settings - Fork 0
/
wercker.yml
149 lines (143 loc) · 5.51 KB
/
wercker.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
box:
id: ghcr.io/ymd-stella/openvslam-community/openvslam-desktop:latest
no-response-timeout: 20
clang_format:
steps:
- script:
name: apply clang-format
code: |
DIRS_TO_EXCLUDE=".git 3rd cmake docs build .idea cmake-build-debug cmake-build-release"
for DIR in ${DIRS_TO_EXCLUDE}; do
EXCLUDE_CMD="${EXCLUDE_CMD} -type d -name ${DIR} -prune -o"
done
FILES=$(find . ${EXCLUDE_CMD} -type f -regex ".*\.\(c\|h\|cc\|hh\|cpp\|hpp\)" -print)
for FILE in ${FILES}; do
RET=$(diff ${FILE} <(clang-format-6.0 -style=file ${FILE}) 2>&1 || true)
if [ -n "${RET}" ]; then
FILES_TO_FORMAT="${FILES_TO_FORMAT} ${FILE}"
fi
done
- script:
name: check clang-format necessity
code: |
if [ -n "${FILES_TO_FORMAT}" ]; then
echo "Please apply clang-format to following files:"
for FILE in ${FILES_TO_FORMAT}; do echo "* ${FILE}"; done
exit 1
fi
echo "There is no file which needs clang-format"
build_with_gui:
steps:
- script:
name: setup ccache
code: |
export CCACHE_DIR=${WERCKER_CACHE_DIR}/.ccache
ccache -M 950M
ccache -s
- script:
name: cmake and make with pangolin viewer
code: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DBUILD_EXAMPLES=ON -DUSE_PANGOLIN_VIEWER=ON -DUSE_STACK_TRACE_LOGGER=ON -DBUILD_TESTS=ON ..
make -j $(($(nproc) / 2))
- script:
name: cmake and make with socket publisher
code: |
cd build
cmake -DCMAKE_BUILD_TYPE=None -DBUILD_EXAMPLES=ON -DUSE_SOCKET_PUBLISHER=ON -DUSE_STACK_TRACE_LOGGER=ON -DBUILD_TESTS=ON ..
make -j $(($(nproc) / 2))
build_without_gui:
steps:
- script:
name: setup ccache
code: |
export CCACHE_DIR=${WERCKER_CACHE_DIR}/.ccache
ccache -M 950M
ccache -s
- script:
name: cmake and make
code: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DBUILD_EXAMPLES=ON -DUSE_STACK_TRACE_LOGGER=ON -DBUILD_TESTS=ON -DUSE_SSE_ORB=ON ..
make -j $(($(nproc) / 2))
- script:
name: unit test
code: |
cd build
ctest -V
- script:
name: Convert groundtruth to TUM format (data.tum)
code: |
cd build
python3 ../scripts/dataset_tools/compute_euroc_cam_tf.py > tf.json
evo_traj euroc --transform_right tf.json /datasets/EuRoC/MH_04/state_groundtruth_estimate0/data.csv --save_as_tum
- script:
name: SLAM test (monocular) with EuRoC MAV dataset
code: |
cd build
./run_euroc_slam -v /datasets/orb_vocab/orb_vocab.fbow -d /datasets/EuRoC/MH_04 -c ../example/euroc/EuRoC_mono.yaml --frame-skip 2 --no-sleep --debug --eval-log --map-db euroc_mono.msg
evo_rpe tum data.tum frame_trajectory.txt -as
- script:
name: SLAM test (stereo) with EuRoC MAV dataset
code: |
cd build
./run_euroc_slam -v /datasets/orb_vocab/orb_vocab.fbow -d /datasets/EuRoC/MH_04 -c ../example/euroc/EuRoC_stereo.yaml --frame-skip 2 --no-sleep --debug --eval-log --map-db euroc_stereo.msg
evo_rpe tum data.tum frame_trajectory.txt -a
- script:
name: Localization test (monocular) with EuRoC MAV dataset
code: |
cd build
./run_euroc_localization -v /datasets/orb_vocab/orb_vocab.fbow -d /datasets/EuRoC/MH_04 -c ../example/euroc/EuRoC_mono.yaml --frame-skip 2 --no-sleep --debug --eval-log --map-db euroc_mono.msg
evo_rpe tum data.tum frame_trajectory.txt -as
build_tutorial:
steps:
- script:
name: setup ccache
code: |
export CCACHE_DIR=${WERCKER_CACHE_DIR}/.ccache
ccache -M 950M
ccache -s
- script:
name: cmake and make
code: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_EXAMPLES=ON -DUSE_STACK_TRACE_LOGGER=ON -DBUILD_TESTS=ON -DUSE_OPENMP=OFF ..
make -j $(($(nproc) / 2))
- script:
name: download a dataset
code: |
cd build
FILE_ID="1TXjREzkht3iRz__qVx4oYRW1GXsv37ct"
curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=${FILE_ID}" > /dev/null
CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"
curl -sLb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=${FILE_ID}" -o video_for_ci_1.zip
unzip video_for_ci_1.zip
rm video_for_ci_1.zip
- script:
name: mapping test with the tutorial
code: |
cd build
./run_video_slam -v /datasets/orb_vocab/orb_vocab.fbow -m ./video_for_ci_1/video.mp4 -c ../example/aist/equirectangular.yaml --frame-skip 3 --no-sleep --debug --eval-log --map-db map.msg
- script:
name: localization test with the tutorial
code: |
cd build
./run_video_localization -v /datasets/orb_vocab/orb_vocab.fbow -m ./video_for_ci_1/video.mp4 -c ../example/aist/equirectangular.yaml --frame-skip 3 --no-sleep --debug --eval-log --map-db map.msg
rosdep_foxy:
box: ghcr.io/ymd-stella/openvslam-community/ros:foxy-ros-base
steps:
- script:
name: build ros2 packages
code: |
mkdir -p ../ros_ws/src
cp -r . ../ros_ws/src/openvslam
cd ../ros_ws/src/openvslam
git submodule update -i --recursive
cd ../..
apt update
rosdep install -y -i --from-paths src
export MAKEFLAGS="-j $(($(nproc) / 2))"
(source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build --parallel-workers 1)