diff --git a/.gitignore b/.gitignore index 8494edc..0be3c5a 100644 --- a/.gitignore +++ b/.gitignore @@ -137,4 +137,7 @@ dmypy.json # Cython debug symbols cython_debug/ -.idea \ No newline at end of file +.idea + +# VS Code +.vscode/ \ No newline at end of file diff --git a/.volkbay/Dockerfile b/.volkbay/Dockerfile new file mode 100644 index 0000000..e76dd57 --- /dev/null +++ b/.volkbay/Dockerfile @@ -0,0 +1,52 @@ +# Author: @volkbay[2023] +# +## Example Usage ## +## +## Build image with: `docker build -t eklt-vio .` +## Run container with: `docker run -it -v : eklt-vio` +## Load environment: `source ../devel/setup.bash` +## Evaluate with: `python3 x_evaluate/test/evaluate.py --configuration x_evaluate/test/evaluate.yaml ... +## --output_folder //output ... +## --dataset_dir --frontend XVIO --name "XVIO"` +## +## +FROM osrf/ros:noetic-desktop-full + +RUN apt-get update +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \ + git python3-vcstool python3-catkin-tools libtool nano \ + python3-pip + +# Install Eigen3 v3.4 (required by Haste Lib used in X Lib, this version cannot be found in apt repo for Ubuntu 20.04) +WORKDIR /home +RUN git clone https://gitlab.com/libeigen/eigen.git && \ + mkdir -p /home/eigen/build +WORKDIR /home/eigen/build +RUN cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local && \ + make install + +# Init catkin environment +ENV WORKSPACE /eklt_vio_ws +RUN mkdir -p /${WORKSPACE}/src +WORKDIR ${WORKSPACE} +RUN catkin init &&\ + catkin config --extend /opt/ros/noetic + +# Clone dependencies and modify CMake configurations +WORKDIR ${WORKSPACE}/src + +#TODO: @volkbay: Change volkbay to jpl-x if PR accepted +RUN git clone https://github.com/volkbay/x_evaluate.git && \ + ## Following `sed` is required to clone git repos by HTTPS ... + ## without global git configurations. + sed -i 's+git@github.com:+https://github.com/+g' x_evaluate/dependencies.yaml && \ + vcs-import < x_evaluate/dependencies.yaml + +# Build Catkin packages +RUN catkin build -j${nproc} x_evaluate + +RUN pip3 install -r x_evaluate/requirements.txt && \ + pip3 install ./x_evaluate + +# Run container +ENTRYPOINT [ "/bin/bash" ] \ No newline at end of file diff --git a/dependencies.yaml b/dependencies.yaml index c612d2c..7d772a9 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -7,3 +7,27 @@ repositories: type: git url: git@github.com:ethz-asl/gflags_catkin.git version: master + catkin_simple: + type: git + url: git@github.com:catkin/catkin_simple + version: master + x_events: + type: git + url: git@github.com:volkbay/x_events #TODO: @volkbay: Change volkbay to jpl-x if PR accepted + version: events + glog_catkin: + type: git + url: git@github.com:ethz-asl/glog_catkin + version: master + easy_profiler_catkin: + type: git + url: git@github.com:florian-world/x_easy_profiler_catkin + version: master + ceres_catkin: + type: git + url: git@github.com:ethz-asl/ceres_catkin + version: master + eigen_catkin: + type: git + url: git@github.com:ethz-asl/eigen_catkin + version: master \ No newline at end of file diff --git a/src/x_evaluate/plots.py b/src/x_evaluate/plots.py index e854ad8..1f0e290 100644 --- a/src/x_evaluate/plots.py +++ b/src/x_evaluate/plots.py @@ -448,7 +448,10 @@ def boxplot_compare(ax: plt.Axes, x_tick_labels, data, legend_labels, colors=Non ax.set_xticks(np.arange(n_xlabel)) ax.set_xticklabels(x_tick_labels) ax.set_xlim(-.6, n_xlabel-.4) - ax.xaxis.grid(b=None) + try: # @volkbay: Matplotlib > 3.5 has changed attribute 'b' to 'visible' + ax.xaxis.grid(b=None) + except ValueError: + ax.xaxis.grid(visible=None) if legend: # ax.legend(leg_handles, leg_labels, bbox_to_anchor=( # 1.05, 1), loc=2, borderaxespad=0.)