Download • Contact Us
vk-calibrate is an integrated visualization and calibration tool for robotics, available as a desktop app on Linux and macOS.
vk-calibrate is a tool for all things related to calibrating vilota's vk suite of cameras, from recording ROS .bag datasets, to corner detection (checkerboard, apriltags).
- Corner detection (checkerboard, apriltags)
- Integrated with OpenCV's corner detection with sub-pixel refinement
- Integrated with Basalt's corner detection algorithms and corner refinement
- Generates serialized binary containing corner detection results and metadata, to feed into Basalt's calibration pipeline
- (REMOVED) Support for libcbdetect corner detection algorithm (poor performance on worse datasets)
- Automatic serialization into custom cereal binary format
- ROS
.bag
dataset recording functionality- Record synchronized ROS
.bag
datasets from multiple cameras (tested up to 6 cameras, VK360) - Support for cameras that are not hardware synchronized
- Support for recording IMU data
- Supports continuous and snapshot recording modes
- Has presets for VK180, VK360(front), VK360(back), VK360(full)
- Record synchronized ROS
- ROS
.bag
dataset inspection- Inspect the topics and messages of
.bag
files - Supports IMU, Image, PoseStamped, and a few other message types
- Thread-safe wrapper around ROS's
.bag
API using rigtorp's high performance SPSC queue
- Inspect the topics and messages of
- Integration with Basalt's calibration pipeline
- Launch Basalt's calibration pipeline from within the GUI, and inject the serialized binary generated by vk-calibrate
- Install calibration priors for Vilota's suite of products
- AppState is an instance of a Meyer's threadsafe singleton, access it using AppState::getInstance() to access the global state
- C++20
- CMake
- OpenCV
- eCAL 5.12
- ROS
- Basalt
- Boost
- BS::thread_pool
- Rigtorp's SPSC queue
- Extended Native File Dialog
- spdlog
- tracy (for profiling)
- cereal
- Intel TBB
GUI Related:
- imgui
- glad
- glfw
- OpenGL
- immvision
- implot
You can either,
- Download the binaries directly from CircleCI artifacts, and install them
- Build from source, following the instructions below
- Install Cap'n Proto
git clone https://github.com/capnproto/capnproto.git capnproto
cd capnproto/c++
git checkout v0.10.2
git submodule update --init --recursive
autoreconf -i
./configure
make -j2 # check # skip check for now
sudo make install
- Install eCAL
sudo add-apt-repository -y ppa:ecal/ecal-5.11
sudo apt-get update
sudo apt-get install ecal
- Install other dependencies
sudo apt-get update
sudo apt-get install -y cmake libopencv-dev libglfw3-dev libgtk-3-dev libboost-all-dev libeigen3-dev liblz4-dev bzip2
git clone https://github.com/vilota-dev/calibration_tool.git --recursive
cd calibration_tool
cmake -S. -Bbuild
cmake --build build -j2
cd build
cpack
mkdir artifacts
cp *.deb artifacts
cp *.tar.gz artifacts
# Just install the deb package you generated
sudo dpkg -i calibration_tool-*.deb # replace this with the debian package name
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.