Code Monkey home page Code Monkey logo

slamesh's Introduction

I am Jianyuan RUAN (阮建源), a dedicated robotics researcher. My research interests focus on SLAM, MAV, and 3D reconstruction. I have been working on continuous mapping with uncertainty for over 5 years. Don't miss our novel LiDAR system SLAMesh, which differs from the LOAM-based method.

Currently, I am a Ph.D. candidate at The Hong Kong Polytechnic University (PolyU) under the supervision of Prof. Zhang Dan. Before that, I received both my Bachelor's and Master's degrees at Zhejiang University (ZJU).

You are welcome to visit my papers at Google Schoolar, Research Gate

Anurag's GitHub stats.

slamesh's People

Contributors

ruanjy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slamesh's Issues

How to save the results?

Nice work!Thank you for your sharing!
To further evaluate the work, could you please tell me how to save the point cloud and mesh results?

Ceres Problem

I use ceres2.2.0 and I met this problem.

/home/zoratt/slamesh_ws/src/SLAMesh/src/map.cpp:968:72: error: invalid new-expression of abstract class type ‘PoseSE3Parameterization’
968 | problem.AddParameterBlock(parameters,7,new PoseSE3Parameterization());
| ^
In file included from /home/zoratt/slamesh_ws/src/SLAMesh/src/cell.h:53,
from /home/zoratt/slamesh_ws/src/SLAMesh/src/map.h:4,
from /home/zoratt/slamesh_ws/src/SLAMesh/src/map.cpp:1:
/home/zoratt/slamesh_ws/src/SLAMesh/src/factor/lidarFactor.hpp:159:7: note: because the following virtual functions are pure within ‘PoseSE3Parameterization’:

I searched online and they tell me the newest ceres has change the LocalParameterization to something else.Please note that.

A question about num_test in updateVertices()

Hi, thanks for your great work.

I am reading your code, and I am confused with the following function.

In updateVertices() function, it seems that the number of the updated points is num_test, but the total points is num_test_square.

It seems that all the points should be updated. So I wonder why you use num_test instead of num_test_square in this function.

Looking forward to your response.

KITTI with Ground Truth Poses

Hi! Thank you for such an awesome work.

I saw that you have some parameters grt_available and GroundTruthCallback, but didn't see any interface or any mentions in the README for feeding ground truth poses to SLAMesh to test only the meshing part. I'm wondering if I have to feed gt poses through rosbag play, or load it like how you load lidar points for KITTI.

Any help is much appreciated. Thanks!

编译报错,为什么?

/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:108:22: error: ‘std::enable_if_t’ has not been declared
std::enable_if_t<std::is_same<U, V>::value, int> = 0>
^~~~~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:108:33: error: expected ‘>’ before ‘<’ token
std::enable_if_t<std::is_same<U, V>::value, int> = 0>
^
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:115:22: error: ‘std::enable_if_t’ has not been declared
std::enable_if_t<!std::is_same<U, V>::value, int> = 0>
^~~~~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:115:33: error: expected ‘>’ before ‘<’ token
std::enable_if_t<!std::is_same<U, V>::value, int> = 0>
^
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:116:32: error: ‘template<class ... T> template template<class V, > boost::shared_array lvr2::VariantChannel::DataPtrVisitor::operator()(const lvr2::Channel&) const’ cannot be overloaded
boost::shared_array operator()(const Channel& channel) const
^~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:109:32: error: with ‘template<class ... T> template template<class V, > boost::shared_array lvr2::VariantChannel::DataPtrVisitor::operator()(const lvr2::Channel&) const’
boost::shared_array operator()(const Channel& channel) const
^~~~~~~~
In file included from /opt/ros/melodic/include/lvr2/types/VariantChannelMap.hpp:38:0,
from /opt/ros/melodic/include/lvr2/types/MultiChannelMap.hpp:33,
from /opt/ros/melodic/include/lvr2/types/BaseBuffer.hpp:35,
from /opt/ros/melodic/include/lvr2/io/PointBuffer.hpp:32,
from /home/robot/mesh_ws/src/mesh_tools/mesh_msgs_conversions/include/mesh_msgs_conversions/conversions.h:39,
from /home/robot/mesh_ws/src/SLAMesh/src/cell.h:48,
from /home/robot/mesh_ws/src/SLAMesh/src/cell.cpp:1:
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:108:22: error: ‘std::enable_if_t’ has not been declared
std::enable_if_t<std::is_same<U, V>::value, int> = 0>
^~~~~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:108:33: error: expected ‘>’ before ‘<’ token
std::enable_if_t<std::is_same<U, V>::value, int> = 0>
^
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:115:22: error: ‘std::enable_if_t’ has not been declared
std::enable_if_t<!std::is_same<U, V>::value, int> = 0>
^~~~~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:115:33: error: expected ‘>’ before ‘<’ token
std::enable_if_t<!std::is_same<U, V>::value, int> = 0>
^
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:116:32: error: ‘template<class ... T> template template<class V, > boost::shared_array lvr2::VariantChannel::DataPtrVisitor::operator()(const lvr2::Channel&) const’ cannot be overloaded
boost::shared_array operator()(const Channel& channel) const
^~~~~~~~
/opt/ros/melodic/include/lvr2/types/VariantChannel.hpp:109:32: error: with ‘template<class ... T> template template<class V, > boost::shared_array lvr2::VariantChannel::DataPtrVisitor::operator()(const lvr2::Channel&) const’
boost::shared_array operator()(const Channel& channel) const
^~~~~~~~
In file included from /opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.hpp:157:0,
from /opt/ros/melodic/include/lvr2/geometry/BaseMesh.tcc:38,
from /opt/ros/melodic/include/lvr2/geometry/BaseMesh.hpp:707,
from /opt/ros/melodic/include/lvr2/algorithm/ColorAlgorithms.hpp:47,
from /opt/ros/melodic/include/lvr2/texture/Material.hpp:32,
from /opt/ros/melodic/include/lvr2/io/MeshBuffer.hpp:31,
from /home/robot/mesh_ws/src/mesh_tools/mesh_msgs_conversions/include/mesh_msgs_conversions/conversions.h:40,
from /home/robot/mesh_ws/src/SLAMesh/src/cell.h:48,
from /home/robot/mesh_ws/src/SLAMesh/src/slamesher_node.h:6,
from /home/robot/mesh_ws/src/SLAMesh/src/slamesher_node.cpp:69:
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc: In function ‘void lvr2::walkContour(const lvr2::BaseMesh&, lvr2::EdgeHandle, VisitorF)’:
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc:47:43: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
walkContour(mesh, startH, visitor, [](auto unused)
^~~~
In file included from /opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.hpp:157:0,
from /opt/ros/melodic/include/lvr2/geometry/BaseMesh.tcc:38,
from /opt/ros/melodic/include/lvr2/geometry/BaseMesh.hpp:707,
from /opt/ros/melodic/include/lvr2/algorithm/ColorAlgorithms.hpp:47,
from /opt/ros/melodic/include/lvr2/texture/Material.hpp:32,
from /opt/ros/melodic/include/lvr2/io/MeshBuffer.hpp:31,
from /home/robot/mesh_ws/src/mesh_tools/mesh_msgs_conversions/include/mesh_msgs_conversions/conversions.h:40,
from /home/robot/mesh_ws/src/SLAMesh/src/cell.h:48,
from /home/robot/mesh_ws/src/SLAMesh/src/slamesher_node.h:6,
from /home/robot/mesh_ws/src/SLAMesh/src/slamesher_node.cpp:69:
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc: In function ‘void lvr2::calcContourEdges(const lvr2::BaseMesh&, lvr2::EdgeHandle, std::vectorlvr2::EdgeHandle&, PredF)’:
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc:183:35: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
walkContour(mesh, startH, [&](auto vertexH, auto edgeH)
^~~~
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc:183:49: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
walkContour(mesh, startH, [&](auto vertexH, auto edgeH)
^~~~
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc: In lambda function:
/opt/ros/melodic/include/lvr2/algorithm/ContourAlgorithms.tcc:185:35: error: no matching function for call to ‘std::vectorlvr2::EdgeHandle::push_back(int&)’
contourOut.push_back(edgeH);
已根据步骤安装了lvr2,可仍然会报lvr2相关的错误,请问这是为什么?我应该如何修复调整?

Error happened while running 00 sequence in the KITTI dataset

Hello Ruan, I have to say it's a nice work with beautiful codes.

I've successfully compiled and run the code using the provided launch file. However, as the times goes, when the program deals with the LiDAR data indexed in 979, error always happened.

The message in system log shows that segfault at 8 ... error 4 in slamesh. Do you have any clue why this error happened?

Thanks.

new save map feature is not working.

Hi , first thank you by add this nice feature, but sadly is not working in my case.

EDIT: I changed badly the paths in the launch file, not sure how it works to change the paths or if it is even possible, putting again the default lines worked.

Is there an advanced version?

Hi, @RuanJY
Thanks for your nice work!
I'm curious is there an advanced version that fusion with imu?
There is no distortion correction in the code, and distortion can greatly affect accuracy, right?

运行成功后怎么保存mesh

我用docker和vnc成功用我自己的数据集看到mesh效果,但是没看到怎么保存mesh数据,保存的mesh数据可以用cloudcompare打开吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.