Giter Club home page Giter Club logo

iscloam's Introduction

logo

Wang Han [homepage]               Profile views

  • :🌱: currently working in Huawei Singapore (Todmind Program).
  • 🎓 received Ph.D. in Nanyang Technological University.
  • 🔨 specialize in computer vision and robotics.

iscloam's People

Contributors

wh200720041 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iscloam's Issues

Sharing the newest improvements?

On the KITTI benchmark, I noticed your ISC-LOAM has been improved greatly.
Would you like to share your main improvements ?Thanks for your good work!

FLOAM vs ISCLOAM

Hey,I have a question,why your FLOAM(lidar odometry only) is better than your ISCLOAM(with loop closure)in KITTI test dataset(sequence 11 ~ 21)?

Compilation fail

Hi, I'm using ROS Melodic an download the repository with git clone.
When I did "catkin_make" the error said that I had to use "catkin_make_isolated".
And after doing so the error says: / usr / bin / ld: cannot find -lBoost :: timer

Could you help me?

cannot launch node of type [hector_trajectory_server/hector_trajectory_server]

Hello, when i do the second roslaunch, there is ERROR: cannot launch node of type [hector_trajectory_server/hector_trajectory_server]: hector_trajectory_server ROS path [0]=/opt/ros/kinetic/share/ros ROS path [1]=/media/lvsijie/mypassport/linux/catkin_ws_iscloam/src ROS path [2]=/opt/ros/kinetic/share
my system is ubuntu 16.04, it seems that there is no hector_trajectory_server.
Do i install hector-slam to get hector_trajectory_server?
thank you!

How can I run in other kitti bag?

@wh200720041 Thanks for your sharing! I want to run in the other kitti sequnce bag, but I meet the problem.
Here I run in the KITTI sequnce 08(2011_09_30_0028().
At first, I apply kitti2bag to 2011_09_30_0028(kITTI raw data page), and I get a .bag file.
Then I based on the topics provided in the KITTI 07 package(2011_09_30_0027) provided by the author(I run success),remap topics of the 2011_09_30_0028.bag in the iscloam.launch.
2023-03-15 15-01-41 的屏幕截图
2023-03-15 15-03-21 的屏幕截图
2023-03-15 15-15-52 的屏幕截图
2023-03-15 15-16-35 的屏幕截图

However, I get this result, I am confused.
2023-03-15 15-03-54 的屏幕截图
2023-03-14 21-28-14 的屏幕截图
8297ca85.png)

I guess the problem is tf,
the KITTI 07 tf:
frames_07

the KITTI 08 tf:
2023-03-15 15-49-49 的屏幕截图

I have no idea how to deal with it. I hope get your help!

Loop closure module does not work after some frames

Thanks a lot for this amazing work. But after some seconds, the iscloam_result can not be displayed in rviz. The info is like "No transform between frames world and odom_final available after 1317354879.400485 seconds of waiting".

Missing file: iscloam/LoopInfo.h

Hi,

It would be nice to test the iscloam with my own data. Currently, the compilation fails due to missing iscloam/LoopInfo.h referenced in iscloam/src/iscOptimizationNode.cpp and iscGenerationNode.cpp.

Regards,
Paul

about memory

hi,thanks for your great work.

what's the memory consumed mainly? it seems my 16G memory almost be used,but the robot doesn't move so far.

hope for your reply,thanks

编译文件报错

"(base) xdh@Pc:~/SLAM/iscloam_ws$ catkin_make",当我编译的时候有以下错误产生这是为什么

`Base path: /home/xdh/SLAM/iscloam_ws
Source space: /home/xdh/SLAM/iscloam_ws/src
Build space: /home/xdh/SLAM/iscloam_ws/build
Devel space: /home/xdh/SLAM/iscloam_ws/devel
Install space: /home/xdh/SLAM/iscloam_ws/install

Running command: "make cmake_check_build_system" in "/home/xdh/SLAM/iscloam_ws/build"

Running command: "make -j8 -l8" in "/home/xdh/SLAM/iscloam_ws/build"

[ 0%] Built target std_msgs_generate_messages_lisp
[ 0%] Built target std_msgs_generate_messages_cpp
[ 0%] Built target std_msgs_generate_messages_py
Scanning dependencies of target iscloam_odom_estimation_node
[ 0%] Built target std_msgs_generate_messages_nodejs
[ 0%] Built target std_msgs_generate_messages_eus
[ 13%] Built target iscloam_laser_mapping_node
[ 27%] Built target iscloam_laser_processing_node
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationClass.cpp.o
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/lidarOptimization.cpp.o
[ 37%] Building CXX object iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationNode.cpp.o
[ 37%] Built target _iscloam_generate_messages_check_deps_LoopInfo
[ 44%] Built target iscloam_generate_messages_py
[ 48%] Built target iscloam_generate_messages_cpp
[ 55%] Built target iscloam_generate_messages_eus
[ 58%] Built target iscloam_generate_messages_nodejs
[ 62%] Built target iscloam_generate_messages_lisp
Scanning dependencies of target iscloam_isc_optimization_node
[ 62%] Built target iscloam_generate_messages
[ 75%] Built target iscloam_isc_generation_node
[ 79%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidar.cpp.o
[ 82%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationNode.cpp.o
[ 86%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationClass.cpp.o
[ 89%] Building CXX object iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidarOptimization.cpp.o
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/lidarOptimization.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/lidarOptimization.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:76:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/lidarOptimization.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:89:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/lidarOptimization.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:34,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp: In member function ‘void OdomEstimationClass::updatePointsToMap(const Ptr&, const Ptr&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:57:83: error: no matching function for call to ‘ceres::Problem::AddParameterBlock(double [7], int, PoseSE3Parameterization
)’
57 | problem.AddParameterBlock(parameters, 7, new PoseSE3Parameterization());
| ^
In file included from /usr/local/include/ceres/ceres.h:64,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:25,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationClass.cpp:5:
/usr/local/include/ceres/problem.h:259:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double
, int)’
259 | void AddParameterBlock(double* values, int size);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:259:8: note: candidate expects 2 arguments, 3 provided
/usr/local/include/ceres/problem.h:271:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int, ceres::Manifold*)’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:271:62: note: no known conversion for argument 3 from ‘PoseSE3Parameterization*’ to ‘ceres::Manifold*’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ~~~~~~~~~~^~~~~~~~
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/odomEstimationClass.h:34,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/odomEstimationNode.cpp:27:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:63:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationNode.cpp.o] 错误 1
In file included from /opt/ros/noetic/include/ros/ros.h:40,
from /opt/ros/noetic/include/pcl_ros/point_cloud.h:4,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:19,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp: In member function ‘bool ISCOptimizationClass::addPoseToGraph(const Ptr&, const Ptr&, std::vector&, Eigen::Isometry3d&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:30: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘std::vector<boost::shared_ptr<pcl::PointCloudpcl::PointXYZI > >::size_type’ {aka ‘long unsigned int’} [-Wformat=]
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| std::vector<boost::shared_ptr<pcl::PointCloudpcl::PointXYZI > >::size_type {aka long unsigned int}
/opt/ros/noetic/include/ros/console.h:351:165: note: in definition of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
351 | ::ros::console::print(filter, _rosconsole_define_location__loc.logger, _rosconsole_define_location__loc.level, FILE, LINE, ROSCONSOLE_FUNCTION, VA_ARGS)
| ^~~~~~~~~~~
/opt/ros/noetic/include/ros/console.h:390:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
390 | ROSCONSOLE_PRINT_AT_LOCATION(VA_ARGS);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/noetic/include/ros/console.h:575:35: note: in expansion of macro ‘ROS_LOG_COND’
575 | #define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, VA_ARGS)
| ^~~~~~~~~~~~
/opt/ros/noetic/include/rosconsole/macros_generated.h:162:23: note: in expansion of macro ‘ROS_LOG’
162 | #define ROS_WARN(...) ROS_LOG(::ros::console::levels::Warn, ROSCONSOLE_DEFAULT_NAME, VA_ARGS)
| ^~~~~~~
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:21: note: in expansion of macro ‘ROS_WARN’
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ^~~~~~~~
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:82:60: note: format string is defined here
82 | ROS_WARN("global optimization finished%d,%d with tranform %f,%f,%f, [%f,%f,%f,%f]",pointcloud_edge_arr.size()-1, matched_frame_id[i],loop_temp.translation().x(),loop_temp.translation().y(),loop_temp.translation().z(),loop_temp.rotation().toQuaternion().w(),loop_temp.rotation().toQuaternion().x(),loop_temp.rotation().toQuaternion().y(),loop_temp.rotation().toQuaternion().z());
| ~^
| |
| int
| %ld
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp: In member function ‘double ISCOptimizationClass::estimateOdom(const Ptr&, const Ptr&, const Ptr&, const Ptr&, Eigen::Isometry3d&)’:
/home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:251:79: error: no matching function for call to ‘ceres::Problem::AddParameterBlock(double [7], int, PoseSE3Parameterization*)’
251 | problem.AddParameterBlock(parameters, 7, new PoseSE3Parameterization());
| ^
In file included from /usr/local/include/ceres/ceres.h:64,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:7,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationClass.cpp:5:
/usr/local/include/ceres/problem.h:259:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int)’
259 | void AddParameterBlock(double* values, int size);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:259:8: note: candidate expects 2 arguments, 3 provided
/usr/local/include/ceres/problem.h:271:8: note: candidate: ‘void ceres::Problem::AddParameterBlock(double*, int, ceres::Manifold*)’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ^~~~~~~~~~~~~~~~~
/usr/local/include/ceres/problem.h:271:62: note: no known conversion for argument 3 from ‘PoseSE3Parameterization*’ to ‘ceres::Manifold*’
271 | void AddParameterBlock(double* values, int size, Manifold* manifold);
| ~~~~~~~~~~^~~~~~~~
In file included from /home/xdh/SLAM/iscloam_ws/src/iscloam/include/iscOptimizationClass.h:45,
from /home/xdh/SLAM/iscloam_ws/src/iscloam/src/iscOptimizationNode.cpp:28:
/home/xdh/SLAM/iscloam_ws/src/iscloam/include/lidarOptimization.h:39:69: error: expected class-name before ‘{’ token
39 | class PoseSE3Parameterization : public ceres::LocalParameterization {
| ^
make[2]: *** [iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/build.make:102:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/src/odomEstimationClass.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:573:iscloam/CMakeFiles/iscloam_odom_estimation_node.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:63:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationNode.cpp.o] 错误 1
make[2]: *** [iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/build.make:76:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/src/iscOptimizationClass.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:515:iscloam/CMakeFiles/iscloam_isc_optimization_node.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j8 -l8" failed`**

rviz error: frame [velodyne] does not exit

When I run my own bag, in rviz the "raw_data" option is red, and local point clouds don't show. But I'm sure that my lidar topic is velodyne_points and my lidar frame_is is velodyne, I don't know what the problem is. Could you answer it ?
question

FLOAM & ISCLOAM

Hi :)

I have tried the following methods with the KITTI data and I get exactly the same result in FLOAM and ISCLOAM. I have also evaluated the APE through evo and the result is the same.
Screen Shot 2021-03-28 at 9 37 22 PM

I have taken into account what is described in #11 & #3 and I have tested it with:
[800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000]
but in both methods I keep getting exactly the same value.

mismatch with paper

Hi doctor wang,

  • The current code doesn't include Temporal consistency check module, right?
  • Geometrical consistency, which calculate corner-to-corner and surf-to-surf with ceres to get constraint. Is there some reason, why not use FPFH first and ICP, have you test the performance between them?
  • BTW, I tested with our bag data, there is some missed loop detection. I found there is a LiDAR-Iris, maybe next we can test it, and then compare.

Thanks for your hard work and help!
Jiao

Error When running iscloam.launch

Thank you for your excellent work. I tried to use the dataset to reproduce your algorithm. I used KITTI Raw Data 2011_09_30_drive_0027_sync, which was converted into a rosbag file by kitti_to_rosbag. After the program was successfully installed, I encountered the following problems, I did not change other parameters. When I ran the iscloam.launch file, the following problems appeared. I used PCL1.8.1, Opencv3.4.9, GTSAM4.0.3, Ceres1.14, Do you know how to solve it ?

... logging to /home/ubuntu/.ros/log/c61b096c-d3b6-11ea-8bf8-34de1af975b3/roslaunch-ubuntu-CW65S-29499.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://localhost:38889/

SUMMARY

PARAMETERS

  • /gt/trajectory_server_loam/source_frame_name: velodyne
  • /gt/trajectory_server_loam/target_frame_name: world
  • /gt/trajectory_server_loam/trajectory_publish_rate: 10.0
  • /gt/trajectory_server_loam/trajectory_update_rate: 10.0
  • /max_dis: 90.0
  • /min_dis: 3.0
  • /odom_final/trajectory_server_loam/source_frame_name: odom_final
  • /odom_final/trajectory_server_loam/target_frame_name: world
  • /odom_final/trajectory_server_loam/trajectory_publish_rate: 10.0
  • /odom_final/trajectory_server_loam/trajectory_update_rate: 10.0
  • /ring_height: 20
  • /ring_width: 60
  • /rosdistro: kinetic
  • /rosversion: 1.12.14
  • /scan_line: 64
  • /scan_period: 0.1
  • /use_sim_time: True
  • /vertical_angle: 2.0

NODES
/odom_final/
trajectory_server_loam (hector_trajectory_server/hector_trajectory_server)
/gt/
trajectory_server_loam (hector_trajectory_server/hector_trajectory_server)
/
iscloam_isc_generation_node (iscloam/iscloam_isc_generation_node)
iscloam_isc_optimization_node (iscloam/iscloam_isc_optimization_node)
iscloam_laser_processing_node (iscloam/iscloam_laser_processing_node)
iscloam_odom_estimation_node (iscloam/iscloam_odom_estimation_node)
rosbag_play (rosbag/play)
rviz (rviz/rviz)
word2map_tf (tf/static_transform_publisher)

auto-starting new master
process[master]: started with pid [29509]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to c61b096c-d3b6-11ea-8bf8-34de1af975b3
process[rosout-1]: started with pid [29522]
started core service [/rosout]
process[rosbag_play-2]: started with pid [29525]
process[iscloam_odom_estimation_node-3]: started with pid [29527]
process[iscloam_laser_processing_node-4]: started with pid [29537]
process[iscloam_isc_generation_node-5]: started with pid [29554]
process[iscloam_isc_optimization_node-6]: started with pid [29561]
process[word2map_tf-7]: started with pid [29565]
process[rviz-8]: started with pid [29570]
process[gt/trajectory_server_loam-9]: started with pid [29584]
process[odom_final/trajectory_server_loam-10]: started with pid [29587]
The ISC parameters are:20
number of rings: 20
number of sectors: 60
maximum distance: 40
[ INFO] [1596259257.372484322, 1317357625.605306247]: odom inited
[ WARN] [1596259257.384661902, 1317357625.610353380]: intensity is 0.090000, if intensity showed here is integer format between 1-255, please uncomment #define INTEGER_INTENSITY in iscGenerationClass.cpp and recompile
[iscloam_odom_estimation_node-3] process has died [pid 29527, exit code -11, cmd /home/ubuntu/iscloam_ws/devel/lib/iscloam/iscloam_odom_estimation_node __name:=iscloam_odom_estimation_node __log:=/home/ubuntu/.ros/log/c61b096c-d3b6-11ea-8bf8-34de1af975b3/iscloam_odom_estimation_node-3.log].
log file: /home/ubuntu/.ros/log/c61b096c-d3b6-11ea-8bf8-34de1af975b3/iscloam_odom_estimation_node-3*.log

The traslational error on sequence 00 does not match that published on this page

Dear authors, firstly I want to thanks for your code. I have tested your code on sequence 00 of Kitti odometry dataset, and the result of average translational error is around 1.17%, which is not match 0.24% published on your github page. The same problem occurs in Fast-Loam, where your result is 0.51% on sequence 00 and my result is 0.97%. Maybe I need to make some changes to the code base you released before testing on Kitti odometry? I would be very grateful if you could help me.

pcl version

Hi Wang,

Really cool work! wondering what version of PCL was used by you.

How to view the whole map in rviz

Hi @wh200720041, thanks for your work!
I have a vlp-16 bag data to run the demo. The topic map published by iscloam_laser_mapping_node is not the whole map, right? How to see the whole map in rviz, thanks a lot!

PCL-Error

Hi,
i tried to build the package with catkin_make but i get an endless amount of error lines.
Most of them contain something similar to this:

/usr/include/pcl-1.10/pcl/point_types.h:546:1: error: ‘plusscalar’ is not a member of ‘pcl::traits’ 546 | POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::Boundary,

I am running ROS Noetic on Ubuntu 20.04

demo does not work well

image

Run the cmd
roslaunch iscloam iscloam_mapping.launch

In the launch file, I use the default kitti data: 2011_09_30_0018.bag.
The picture shows the result. The pose estimation seems to be divergent.

The log info: "map errornot enough points in map to associate"
Could you help me?

Loopclosure seems doesn't work

Hi @wh200720041, thanks for sharing your excellent work! I have some questions after running your code as follows:

  • When loopclosure was detected, the topic /final_path didn't output anymore. Red path is ground truth, Yellow path is result of iscOptimizationClassNode.cpp.

before_loopclosure
after_loopclosure

  • The second is how to save all frame's pose in KITTI's format, the poses I got always lost some frames, can you give me some advices, and how did you evaluate accuracy in KITTI dataset?

Wish to get reply from you, and thanks for work sincerely.

Map result iscloam

Hi :) @wh200720041 I keep testing your algorithm.

When I get the map from iscloam I have a poor result compared to floam.
iscloam:
Screen Shot 2021-04-16 at 6 08 46 AM
floam:
Screen Shot 2021-04-16 at 6 09 00 AM

I subscribe to /map and get a .pcd file. I test these two ways:
(1)

rosrun pcl_ros pointcloud_to_pcd input:=/map 

(2)

rosbag record -o <name> /map
rosrun pcl_ros bag_to_pcd <rosbag_name.bag> /map pcd

Your explanation will be of great help to me.

loop closure index

Hi doctor wang,
When geometryConsistencyVerification() in line 68 of iscOptimizationClass.cpp, return true, there is a true loop between history matched frame id and curr id.
Why the code is this ? Thanks for your help !

graph.push_back(
          gtsam::BetweenFactor<gtsam::Pose3>(gtsam::Symbol('x', matched_frame_id[i]+1), //TODO:why not is  matched_frame_id[i]
	                                 gtsam::Symbol('x', pointcloud_edge_arr.size()), //TODO: why not is  pointcloud_edge_arr.size()-1
	                                 loop_temp, loopModel));

GTSAM optimizer stuck

In a scenario that i tested, where a loop closure is detected (not the first loop closure), the optimization node was stuck at:
gtsam::LevenbergMarquardtOptimizer(graph, initials).optimize()

The program didn't crash, but continued without any type of exit. Do you have any insight on what might be the cause?

Thanks!

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.