3D reconstruction with L515, VINS-RGBD and voxblox

Overview

3D-Recon: VINS-RGBD voxblox

voxblox_recon

Recently we are trying to create dataset for 3D perception, so we need to create a 3D scanned environment like meta Replica-Dataset. Our solution is to use a RGBD sensor with IMU (e.g. Realsense L515 or Azure Kinect) with VINS system like VINS-RGBD and Kimera to generate the pose for the sequence and use voxblox to generate the mesh. So much for the talk, let's head into the tutorial.

Build VINS-RGBD & VoxBlox

Building VINS-RGBD is similar to the ones with VINS-Mono , make sure you have ros environment. The project was tested with:

  1. Ubuntu 18.04
  2. ROS version Melodic fully installation
  3. Ceres Solver (1.14.0)
  4. Sophus (checkout a621ff)
  5. Pangolin (0.6)
  6. OpenCV (3.4)
  7. Realsense ROS wrapper or Azure Kinect ROS Driver

Build with Docker

If you are tired of configuring all kinds of environments, there is a docker env shipped with this solution: recon_docker. You can skip this if you want to configure your own environment locally.

cd docker/
./build-dokcer-image.bash

⚠️ Please replace the registry and proxy server with your own address in build-docker-image.bash and run-docker-image.bash:

docker build -t registry.server.com:5000/midea/vinsrgbd \ <== replace it
    --build-arg http_proxy=http://proxyserver.com:7890 \ <== replace it
    --build-arg https_proxy=http://proxyserver.com:7890 \ <== replace it
    --build-arg USER=${user} \
    --build-arg UID=${uid} \
    --build-arg GROUP=${group} \
    --build-arg GID=${gid} \
    ${file_dir}

⚠️ you need to make sure your display id is the current one:

$ echo $DISPLAY
:0

And modify this based on docker/dockerfile:

Ln201    RUN echo 'export DISPLAY=:0' >> /etc/profile

After build your docker image, run it and it will pompt out the terminator, note that it supports OpenGL and X11. So that you can run rviz with your remote docker.

To verify it, run the following command in your remote server:

./docker/run-docker-image.bash

ssh to remote server in your local computer:

ssh -p 3752 [email protected]

Then type the following command to see if the gears pompt out:

glxgears

If so, congratulations, you can run rviz remotely!

dl_docker_gl_app

Now we can head into compiling the VINS-RGBD and voxblox ros nodes.

Build Locally

Initialize ros environment:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
catkin config --extend /opt/ros/melodic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --merge-devel

# vins-rgbd
git clone https://github.com/rancheng/Reconstruction_Pipeline.git
cd Reconstruction_Pipeline
mv VINS-RGBD ~/catkin_ws/src/
mv voxblox ~/catkin_ws/src/

# voxblox
cd ~/catkin_ws/src/
git clone https://github.com/ethz-asl/voxblox.git
wstool init . ./voxblox/voxblox_https.rosinstall
wstool update

# build project
catkin_make

Run VINS-RGBD

To run with the VINS-RGBD system, one need to use the following command:

# Realsense L515
roslaunch vins_estimator realsense_color.launch

# Azure Kinect
roslaunch vins_estimator azure_color.launch

Run the Rviz for VINS-RGBD

roslaunch vins_estimator vins_rviz.launch

To run the L515 or Azure Kinect use the following command:

# Realsense L515
roslaunch realsense2_camera rs_camera.launch \
device_type:=l515 enable_gyro:=true enable_accel:=true \
align_depth:=true unite_imu_method:=linear_interpolation \
color_width:=1280 color_height:=720 color_fps:=30 \
depth_fps:=30 enable_pointcloud:=true

# Azure Kinect
roslaunch azure_kinect_ros_driver driver.launch \
depth_mode:=WFOV_2X2BINNED \
color_resolution:=720P \
fps:=30 \
imu_rate_target:=200

To run the rosbag if you want to record the raw imu ,rgb, depth with point cloud topics:

# Realsense L515
rosbag record /camera/aligned_depth_to_color/image_raw \
/camera/color/image_raw /camera/imu /camera/depth/metadata \
/camera/color/metadata /camera/color/camera_info \
/camera/depth/color/points

# Azure Kinect
rosbag record /rgb/image_raw \
/depth_to_rgb/image_raw /imu \
/depth_to_rgb/camera_info /rgb/camera_info \
/points2

Run VoxBlox

To run the voxblox, use the following command:

# Realsense L515
roslaunch voxblox_ros rgbd_dataset_l515.launch

# Azure Kinect
roslaunch voxblox_ros rgbd_dataset_azure.launch

The launch file is configured as following (L525 for example):

<?xml version="1.0" encoding="ISO-8859-15"?>
<launch>
  <arg name="robot_name" default="l515" />
  <arg name="voxel_size" default="0.05" />
  <arg name="voxels_per_side" default="16" />
  <arg name="world_frame" default="world" />
  <node name="voxblox_node" pkg="voxblox_ros" type="tsdf_server" output="screen" args="--alsologtostderr" clear_params="true">
    <remap from="pointcloud" to="/camera/depth/color/points"/>
    <remap from="voxblox_node/esdf_map_out" to="esdf_map" />
    <param name="tsdf_voxel_size" value="$(arg voxel_size)" />
    <param name="tsdf_voxels_per_side" value="$(arg voxels_per_side)" />
    <param name="color_mode" value="color" />
    <param name="voxel_carving_enabled" value="true" />
    <param name="publish_esdf_map" value="true" />
    <param name="update_mesh_every_n_sec" value="1.0" />
    <param name="min_time_between_msgs_sec" value="0.0" />
    <param name="publish_pointclouds" value="true" />
    <param name="use_tf_transforms" value="false" />
    <param name="update_mesh_every_n_sec" value="0.5" />
    <param name="allow_clear" value="true" />
    <remap from="transform" to="/vins_estimator/camera_transform" />
    <param name="clear_sphere_for_planning" value="true" />
    <param name="world_frame" value="$(arg world_frame)" />
    <rosparam file="$(find voxblox_ros)/cfg/l515.yaml"/>
    <param name="mesh_filename" value="$(find voxblox_ros)/mesh_results/l515.ply" />
  </node>
</launch>

If you have another sensor, please make sure you can export the point cloud data to your own topic name and remap it to voxblox in above launch file:

 <remap from="pointcloud" to="/camera/depth/color/points"/>

also, please change the transform to your own topic:

<remap from="transform" to="/vins_estimator/camera_transform" />

Note that the transform message should be the following format:

geometry_msgs::TransformStamped

Since VINS-RGBD output pose is camera pose so that we do not need to configure the transformation matrix in cfg:

# actually T_R_C (C = cam0, R = rgbd cam)
T_B_C:
- [1.0, 0.0, 0.0, 0.0]
- [0.0, 1.0, 0.0, 0.0]
- [0.0, 0.0, 1.0, 0.0]
- [0.0, 0.0, 0.0, 1.0]
invert_T_B_C: false

# actually T_V_C (C = cam0, V = vicon)
T_B_D:
- [1.0, 0.0, 0.0, 0.0]
- [0.0, 1.0, 0.0, 0.0]
- [0.0, 0.0, 1.0, 0.0]
- [0.0, 0.0, 0.0, 1.0]
invert_T_B_D: false

To visualize the voxblox result, please open the rviz config from here:

voxblox/voxblox_ros/cfg/voxblox_vis.rviz

and make sure your frame id is world, and Image Topic is the corresponding topic published by your sensor:

# Relsense L515
# line 71
Image Topic: /camera/color/image_raw
# line 91
Image Topic: /camera/aligned_depth_to_color/image_raw

# Azure Kinect
# line 71
Image Topic: /rgb/image_raw
# line 91
Image Topic: /depth_to_rgb/image_raw

To export the built mesh file, please run the following command in another terminal:

rosservice /voxblox_node/generate_mesh

The output mesh will be exported to here: voxblox_ros/mesh_results/l515.ply

Here's the visualization of 3D reconstruction of my room with MeshLab:

recon_result_meshlab

If you can not get your mesh updated in the rviz or the mesh topic is always empty, please make sure you have two major components ready:

  • your point cloud message

  • your pose message

Among them, the point cloud message should be type:

sensor_msgs/PointCloud2

the pose message should be type:

geometry_msgs/TransformStamped

If your localization sensor is different from your LIDAR sensor, please transform it use the voxblox_ros/cfg/xxx.yaml file to transform it to the sensor which produce the point cloud.

You can implement your own publisher to convert the camera pose to the desired message type:

void pubCameraTransform(const Estimator &estimator, const std_msgs::Header &header)
{
    int idx2 = WINDOW_SIZE - 1;

    if (estimator.solver_flag == Estimator::SolverFlag::NON_LINEAR)
    {
        int i = idx2;
        Vector3d P = estimator.Ps[i] + estimator.Rs[i] * estimator.tic[0];
        Quaterniond R = Quaterniond(estimator.Rs[i] * estimator.ric[0]);
        geometry_msgs::TransformStamped tf_msg;
        tf_msg.header = header;
        tf_msg.header.frame_id = "world";
        tf_msg.transform.translation.x = P.x();
        tf_msg.transform.translation.y = P.y();
        tf_msg.transform.translation.z = P.z();
        tf_msg.transform.rotation.x = R.x();
        tf_msg.transform.rotation.y = R.y();
        tf_msg.transform.rotation.z = R.z();
        tf_msg.transform.rotation.w = R.w();

        //"camera_pose"
        pub_camera_transform.publish(tf_msg);
    }
}

This is an example of modifying VINS-RGBD publisher.

Make sure your message xxx_msg.header.frame_id is set to world.

In order to obtain a better reconstructed mesh. the best practice is to save the point cloud and pose stamps into a new bagfile and set the reconstruction resolution to 0.001m and play the bag 10x slower.

To be continued with boundfusion cuda backend with realtime high-res reconstruction pipeline.

You might also like...
Deep Learning API and Server in C++11 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNE

Open Source Deep Learning Server & API DeepDetect (https://www.deepdetect.com/) is a machine learning API and server written in C++11. It makes state

In-situ data analyses and machine learning with OpenFOAM and Python

PythonFOAM: In-situ data analyses with OpenFOAM and Python Using Python modules for in-situ data analytics with OpenFOAM 8. NOTE that this is NOT PyFO

CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU executio

CTranslate2 is a fast inference engine for OpenNMT-py and OpenNMT-tf models supporting both CPU and GPU execution. The goal is to provide comprehensive inference features and be the most efficient and cost-effective solution to deploy standard neural machine translation systems such as Transformer models.

Toolkit for software engineers to Deploy AI Systems Yourself (DAISY). DaisyKit SDK is the core of models and algorithms, which can be used to develop wrappers and applications for different platforms: mobile, embedded or web browsers. Fast and robust template matching with majority neighbour similarity and annulus projection transformation
Fast and robust template matching with majority neighbour similarity and annulus projection transformation

A-MNS_TemplateMatching This is the official code for the PatternRecognition2020 paper: Fast and robust template matching with majority neighbour simil

a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.
a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.

a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.

New ultra super robust and fast programming language, fully supportable by G++ and Clang

Cplusplusplus New ultra super robust and fast programming language, fully supportable by G++ and Clang How to use: Just write #include C+++.h in you

LIDAR(Livox Horizon) point cloud preprocessing, including point cloud filtering and point cloud feature extraction (edge points and plane points)
LIDAR(Livox Horizon) point cloud preprocessing, including point cloud filtering and point cloud feature extraction (edge points and plane points)

LIDAR(Livox Horizon) point cloud preprocessing, including point cloud filtering and point cloud feature extraction (edge points and plane points)

Experimental and Comparative Performance Measurements of High Performance Computing Based on OpenMP and MPI
Experimental and Comparative Performance Measurements of High Performance Computing Based on OpenMP and MPI

High-Performance-Computing-Experiments Experimental and Comparative Performance Measurements of High Performance Computing Based on OpenMP and MPI 实验结

Comments
  • 代码跑不通啊

    代码跑不通啊

    ::pair<Eigen::Matrix<double, 3, 1>, Eigen::Matrix<double, 3, 1> > >&, Eigen::Matrix3d&, Eigen::Vector3d&)’: /home/gk/catkin_vox/src/VINS-RGBD/vins_estimator/src/initial/solve_5pts.cpp:258:24: error: missing template arguments before ‘(’ token Matrix3d rota = SO3(rvec.at(0, 0), rvec.at(1, 0), rvec.at(2, 0)).matrix();

    opened by Gong2Kun 1
  • Local compilation issues

    Local compilation issues

    Hello, after reading your work I think it is very good and very interested But I had some problems compiling locally I would appreciate it if you could give some guidance

    Base path: /home/lhr/catkin_ws Source space: /home/lhr/catkin_ws/src Build space: /home/lhr/catkin_ws/build Devel space: /home/lhr/catkin_ws/devel Install space: /home/lhr/catkin_ws/install

    Running command: "cmake /home/lhr/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/lhr/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/lhr/catkin_ws/install -G Unix Makefiles" in "/home/lhr/catkin_ws/build"

    -- Using CATKIN_DEVEL_PREFIX: /home/lhr/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /home/lhr/realsense_ws/devel;/opt/ros/kinetic -- This workspace overlays: /home/lhr/realsense_ws/devel;/opt/ros/kinetic -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.12", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python2 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/lhr/catkin_ws/build/test_results -- Found gtest sources under '/usr/src/gmock': gtests will be built -- Found gmock sources under '/usr/src/gmock': gmock will be built CMake Deprecation Warning at /usr/src/gmock/CMakeLists.txt:41 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    CMake Deprecation Warning at /usr/src/gtest/CMakeLists.txt:43 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Found PythonInterp: /usr/bin/python2 (found version "2.7.12") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 21 packages in topological order: -- ~~ - catkin_boost_python_buildtool -- ~~ - catkin_simple -- ~~ - catkin_boost_python_buildtool_test -- ~~ - eigen_catkin -- ~~ - gflags_catkin -- ~~ - glog_catkin -- ~~ - eigen_checks -- ~~ - grpc -- ~~ - minkindr -- ~~ - numpy_eigen -- ~~ - minkindr_python -- ~~ - protobuf_catkin -- ~~ - voxblox -- ~~ - voxblox_msgs -- ~~ - camera_model -- ~~ - feature_tracker -- ~~ - pose_graph -- ~~ - minkindr_conversions -- ~~ - vins_estimator -- ~~ - voxblox_rviz_plugin -- ~~ - voxblox_ros -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'catkin_boost_python_buildtool' -- ==> add_subdirectory(catkin_boost_python_buildtool/catkin_boost_python_buildtool) CMake Deprecation Warning at catkin_boost_python_buildtool/catkin_boost_python_buildtool/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- +++ processing catkin package: 'catkin_simple' -- ==> add_subdirectory(catkin_simple) CMake Deprecation Warning at catkin_simple/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- +++ processing catkin package: 'catkin_boost_python_buildtool_test' -- ==> add_subdirectory(catkin_boost_python_buildtool/catkin_boost_python_buildtool_test) CMake Deprecation Warning at catkin_boost_python_buildtool/catkin_boost_python_buildtool_test/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.12", minimum required is "2.7") -- Found numpy include path: '/usr/lib/python2.7/dist-packages/numpy/core/include' -- Found numpy/arrayobject.h in /usr/lib/python2.7/dist-packages/numpy/core/include. Keeping it as NUMPY_INCLUDE_DIR. -- +++ processing catkin package: 'eigen_catkin' -- ==> add_subdirectory(eigen_catkin) CMake Deprecation Warning at eigen_catkin/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Suitable Eigen version found. Minimum version: 3.3.4 Found version: 3.4.0 -- eigen_catkin is configured to USE system eigen -- Found and using system Eigen in /usr/local/include/eigen3 -- +++ processing catkin package: 'gflags_catkin' -- ==> add_subdirectory(gflags_catkin) CMake Deprecation Warning at gflags_catkin/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- +++ processing catkin package: 'glog_catkin' -- ==> add_subdirectory(glog_catkin) CMake Deprecation Warning at glog_catkin/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    CMake Deprecation Warning at glog_catkin/CMakeLists.txt:9 (cmake_policy): The OLD behavior for policy CMP0053 will be removed from a future version of CMake.

    The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.

    -- No preference for use of exported glog CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported glog CMake configuration if available. -- Failed to find installed glog CMake configuration, searching for glog build directories exported with CMake. -- Failed to find an installed/exported CMake configuration for glog, will perform search for installed glog components. -- Suitable Glog version found. -- Using system Glog. -- Failed to find installed glog CMake configuration, searching for glog build directories exported with CMake. -- Failed to find an installed/exported CMake configuration for glog, will perform search for installed glog components. -- +++ processing catkin package: 'eigen_checks' -- ==> add_subdirectory(eigen_checks) CMake Deprecation Warning at eigen_checks/CMakeLists.txt:25 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Marking SHARED_LIBRARY "eigen_checks" of package "eigen_checks" for installation -- Marking HEADER FILES in "include" folder of package "eigen_checks" for installation -- +++ processing catkin package: 'grpc' -- ==> add_subdirectory(catkin_grpc/grpc) -- +++ processing catkin package: 'minkindr' -- ==> add_subdirectory(minkindr/minkindr) CMake Deprecation Warning at minkindr/minkindr/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Marking HEADER FILES in "include" folder of package "minkindr" for installation -- +++ processing catkin package: 'numpy_eigen' -- ==> add_subdirectory(numpy_eigen) CMake Deprecation Warning at numpy_eigen/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Found Boost: /usr/include (found version "1.58.0") found components: system -- Found numpy include path: '/usr/lib/python2.7/dist-packages/numpy/core/include' -- Found numpy/arrayobject.h in /usr/lib/python2.7/dist-packages/numpy/core/include. Keeping it as NUMPY_INCLUDE_DIR. -- Found Boost: /usr/include (found version "1.58.0") found components: python -- Found numpy include path: '/usr/lib/python2.7/dist-packages/numpy/core/include' -- Found numpy/arrayobject.h in /usr/lib/python2.7/dist-packages/numpy/core/include. Keeping it as NUMPY_INCLUDE_DIR. -- Marking HEADER FILES in "include" folder of package "numpy_eigen" for installation -- +++ processing catkin package: 'minkindr_python' -- ==> add_subdirectory(minkindr/minkindr_python) CMake Deprecation Warning at minkindr/minkindr_python/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Found numpy include path: '/usr/lib/python2.7/dist-packages/numpy/core/include' -- Found numpy/arrayobject.h in /usr/lib/python2.7/dist-packages/numpy/core/include. Keeping it as NUMPY_INCLUDE_DIR. -- +++ processing catkin package: 'protobuf_catkin' -- ==> add_subdirectory(protobuf_catkin) CMake Deprecation Warning at protobuf_catkin/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.

    Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

    -- Found PythonInterp: /usr/bin/python2 (found version "2.7.12") -- Found protoc at: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND -- Found grpc_cpp_plugin at: GRPC_CPP_PLUGIN-NOTFOUND -- Found grpc_python_plugin at: GRPC_PYTHON_PLUGIN-NOTFOUND -- Found protobuf libraries: LIBPROTOBUF-NOTFOUND;LIBZ-NOTFOUND -- Found grpc libraries: LIBADDRESS_SORTING-NOTFOUND;LIBARES-NOTFOUND;LIBBORINGSSL-NOTFOUND;LIBGPR-NOTFOUND;LIBGRPC-NOTFOUND;LIBGRPCPP-NOTFOUND;LIBGRPC_ABSEIL-NOTFOUND;LIBGRPCPP_ALTS-NOTFOUND;LIBGRPC_CRONET-NOTFOUND;LIBGRPCPP_CRONET-NOTFOUND;LIBGRPCPP_ERROR_DETAILS-NOTFOUND;LIBGRPCPP_CHANNELZ-NOTFOUND;LIBGRPC_PLUGIN_SUPPORT-NOTFOUND;LIBGRPCPP_REFLECTION-NOTFOUND;LIBGRPC_UNSECURE-NOTFOUND;LIBGRPCPP_UNSECURE-NOTFOUND -- Could not find a recent enough version of system protobuf. -- +++ processing catkin package: 'voxblox' -- ==> add_subdirectory(voxblox/voxblox) -- Found protoc at: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND -- Found grpc_cpp_plugin at: GRPC_CPP_PLUGIN-NOTFOUND -- Found grpc_python_plugin at: GRPC_PYTHON_PLUGIN-NOTFOUND -- Found protobuf libraries: LIBPROTOBUF-NOTFOUND;LIBZ-NOTFOUND -- Found grpc libraries: LIBADDRESS_SORTING-NOTFOUND;LIBARES-NOTFOUND;LIBBORINGSSL-NOTFOUND;LIBGPR-NOTFOUND;LIBGRPC-NOTFOUND;LIBGRPCPP-NOTFOUND;LIBGRPC_ABSEIL-NOTFOUND;LIBGRPCPP_ALTS-NOTFOUND;LIBGRPC_CRONET-NOTFOUND;LIBGRPCPP_CRONET-NOTFOUND;LIBGRPCPP_ERROR_DETAILS-NOTFOUND;LIBGRPCPP_CHANNELZ-NOTFOUND;LIBGRPC_PLUGIN_SUPPORT-NOTFOUND;LIBGRPCPP_REFLECTION-NOTFOUND;LIBGRPC_UNSECURE-NOTFOUND;LIBGRPCPP_UNSECURE-NOTFOUND -- Preferred Protoc Executable: /home/lhr/catkin_ws/devel/bin/protoc CMake Error at /home/lhr/catkin_ws/devel/share/protobuf_catkin/cmake/protobuf-generate-cpp.cmake:43 (message): Couldn't find protobuf compiler. Please ensure that protobuf_catkin is properly installed. Checked the following paths: /home/lhr/catkin_ws/devel/bin/protoc;PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND;/home/lhr/catkin_ws/devel/bin/protoc;/opt/ros/kinetic/bin/protoc;/home/lhr/catkin_ws/devel/include/../bin/protoc Call Stack (most recent call first): /home/lhr/catkin_ws/devel/share/protobuf_catkin/cmake/protobuf-generate-cpp.cmake:166 (_find_protobuf_compiler) voxblox/voxblox/CMakeLists.txt:20 (PROTOBUF_CATKIN_GENERATE_CPP2)

    -- Configuring incomplete, errors occurred! See also "/home/lhr/catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/lhr/catkin_ws/build/CMakeFiles/CMakeError.log".

    opened by s3219521aa 0
Owner
Ran Cheng
Robotics, Vision, Learning
Ran Cheng
Implementation for the "Surface Reconstruction from 3D Line Segments" paper.

Surface Reconstruction from 3D Line Segments Surface reconstruction from 3d line segments. [Paper] [Supplementary Material] Langlois, P. A., Boulch, A

null 82 Nov 26, 2022
Square Root Bundle Adjustment for Large-Scale Reconstruction

Square Root Bundle Adjustment for Large-Scale Reconstruction

Nikolaus Demmel 202 Nov 24, 2022
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

eXtreme Gradient Boosting Community | Documentation | Resources | Contributors | Release Notes XGBoost is an optimized distributed gradient boosting l

Distributed (Deep) Machine Learning Community 23.5k Dec 2, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Nov 25, 2022
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 8.5k Nov 30, 2022
ORB-SLAM3 is the first real-time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models.

Just to test for my research, and I add coordinate transformation to evaluate the ORB_SLAM3. Only applied in research, and respect the authors' all work.

B.X.W 5 Jul 11, 2022
Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.

Cartographer Purpose Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platfo

Cartographer 6.3k Nov 29, 2022
A programmable and highly maneuverable robotic cat for STEM education and AI-enhanced services.

OpenCat is the open-source Arduino and Raspberry Pi-based robotic pet framework developed by Petoi, the maker of futuristic programmable robot

Petoi LLC 893 Nov 30, 2022
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.8k Nov 26, 2022