Giter Club home page Giter Club logo

lidarslam_ros2's People

Contributors

adyczech avatar amadeuszsz avatar delipl avatar fmrico avatar rayman avatar rsasaki0109 avatar takanotaiga avatar timple 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

lidarslam_ros2's Issues

base_link is jumping.

Hi Sasaki san

Thank you for your help.
I have one query regarding base_link jump.
I am not using odom (flag use_odom = false.) and when I am performing slam
base_link is jumping randomly.

Bug can be seen after 1:02 minute of video.
Can you please tell what could be the reason for that?
What I am missing here?

For this behavior I am sharing video link
https://www.youtube.com/watch?v=5PK0N8X5Hgg

Map produced not aligned on loop road

Hi!

I have successfully gotten the map data using the lidarslam. But, there is an issue, I noticed that the map is not aligned when I tried to record it on a loop road (you may see the line in the red circle is not aligned). But when I record it on a non-looping road, it works just fine. How can I resolve this issue?

Thank you.

not aligned

Stacking map and not detection of horizontal translation

I try to use slamming for a robot, but moving it will create some strange results.

Moving the robot vertically works fine, as lone as the robot does not move more than 5 meters at once. The transformation will be published correctly.
However moving it in horizontal direction the slamming will not match the input pointclouds.

Also if the map is visualized, the map looks like all inputs are stacked.

image

To to resolve this, so that the scanmatcher will publish the correct transformation in horizontal direction and should the map look like this?

About the timeline of map creation

Perhaps a rudimentary question, but...
Is it possible to create a map from a previously recorded BAG file?

Or would it create a map from records from LIDAR in the ongoing process?

Looking forward to your reply!

TF issue

Hello again,
I am running into some issues with the slam package. when I launch my robot in gazebo/rviz everything checks out, but issues arise when I launch the slam package. The terminal that I launch my robot in and the terminal I launch slam in gives me an error saying:
[rviz2-9] Warning: TF_OLD_DATA ignoring data from the past for frame base_footprint at time 289.900000 according to authority Authority undetectable
[rviz2-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
RVIZ also complains saying there is no transformation from Odom to base_link when the slam is running

The params in the lidarslam are global_frame_id is "map" and robot_frame_id are "base_footprint". I am lost on where to go from here. Am i missing something?

Here are the screenshots of the errors and the tf frames along with the lidarslam package from my local workspace:
[frames.pdf](https://github.com/rsasaki0109/lidarslam_ros2/files/6678740/frames.pdf
lidarslam_ros2.zip
screenshots.zip

scanmatcher node-1 error after launch

OS and Version: [Ubuntu 20.04]
ROS Version: [Galactic]

The goal:
To create a road map.

The issue:
Error when launched Lidarslam. The error --> [scanmatcher_node-1] [ERROR] [1663050603.996330287] [scan_matcher]: "odom" passed to lookupTransform argument target_frame does not exist.

Steps to reproduce the behavior:

  • source /opt/ros/galactic/setup.bash
  • ros2 launch velodyne velodyne-all-nodes-VLP16-launch.py
    On a new tab, launching rviz2:
  • rviz2
  • Add, by topic pointcloud2
  • Fixed frame, velodyne
    On a new tab, launching the lidarslam command:
  • source install/setup.bash
  • ros2 launch lidarslam lidarslam.launch.py

ros2 version of lio-sam

Hi:
Thanks for the work of lidarslam_ros2.
 Have you successfully run the ros2 version of lio-sam, and which rosbag to use? And how to set the yaml file?

Thanks

Transform lookup extrapolation warning

First: I'm using the scanmatcher node with ros2 galactic (ported from humble with a few changes of included headers).

When testing with gazebo, even for high odometry update rate (500 for odometry vs. 60 for laser), my log is spammed with transform lookup extrapolation warnings:
Lookup would require extrapolation into the future. Requested time 20.364000 but the latest data is at time 20.346000, when looking up transform from frame [robot/base_link] to frame [robot/odom]

Maybe you could try to avoid printing a warning when tf is outdated or provide a parameter for maximum timeout or for supressing of that warning. Or you could try to work with the outdated data if possible (in my scenario the messages occure while the robot was standing and odom did not change, so here even old odometry data should be usable).

Failed to build lidarslam_ros2

System:

  • Ubuntu 20.04 Focal Fossa

I was building lidarslam_ros2 with ndt_omp_ros2 installed. But failed to build the scanmatcher & graph_based_slam because there is no g2o. The error is stated as below:
"CMake Error at CMakeLists.txt:33 (find_package):
By not providing "Findg2o.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "g2o", but
CMake did not find one.

Could not find a package configuration file provided by "g2o" with any of
the following names:

g2oConfig.cmake
g2o-config.cmake

Add the installation prefix of "g2o" to CMAKE_PREFIX_PATH or set "g2o_DIR"
to a directory containing one of the above files. If "g2o" provides a separate development package or SDK, be sure it has been installed."

So, I am quite confused because I see in your scanmatcher package stated that I don't have to build the g2o.
Really appreciate for your help.

I had an error when I execute colcon build

Hello There!

I have an error when I execute:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
I get output:
`Starting >>> tf2
Starting >>> tf2_msgs
Starting >>> lidarslam_msgs
Starting >>> ndt_omp_ros2
Finished <<< tf2 [0.53s]
Starting >>> tf2_py
Starting >>> tf2_eigen_kdl
Finished <<< ndt_omp_ros2 [0.63s]
Finished <<< tf2_py [0.21s]
Finished <<< tf2_eigen_kdl [0.22s]
Finished <<< lidarslam_msgs [0.77s]
Finished <<< tf2_msgs [0.85s]
Starting >>> tf2_ros
Finished <<< tf2_ros [0.26s]
Starting >>> tf2_geometry_msgs
Starting >>> tf2_eigen
Starting >>> tf2_sensor_msgs
Starting >>> tf2_kdl
Starting >>> tf2_bullet
Starting >>> tf2_tools
Starting >>> examples_tf2_py
Finished <<< tf2_sensor_msgs [0.36s]
Finished <<< tf2_tools [0.36s]
Finished <<< tf2_bullet [0.38s]
Finished <<< tf2_eigen [0.40s]
Finished <<< tf2_kdl [0.40s]
Finished <<< tf2_geometry_msgs [0.42s]
Starting >>> graph_based_slam
Starting >>> scanmatcher
Starting >>> geometry2
Starting >>> test_tf2
Finished <<< geometry2 [0.12s]
Finished <<< test_tf2 [0.18s]
--- stderr: scanmatcher
In file included from /home/hasanenesbagci/ros2_ws/src/lidarslam_ros2/scanmatcher/src/scanmatcher_component.cpp:1:
/home/hasanenesbagci/ros2_ws/src/lidarslam_ros2/scanmatcher/include/scanmatcher/scanmatcher_component.h:47:10: fatal error: tf2_sensor_msgs/tf2_sensor_msgs.hpp: No such file or directory
47 | #include <tf2_sensor_msgs/tf2_sensor_msgs.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/scanmatcher_component.dir/build.make:63: CMakeFiles/scanmatcher_component.dir/src/scanmatcher_component.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:80: CMakeFiles/scanmatcher_component.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Failed <<< scanmatcher [0.22s, exited with code 2]
Aborted <<< graph_based_slam [0.23s]
Aborted <<< examples_tf2_py [0.77s]

Summary: 15 packages finished [2.10s]
1 package failed: scanmatcher
2 packages aborted: examples_tf2_py graph_based_slam
2 packages had stderr output: graph_based_slam scanmatcher
1 package not processed
`
Can you help me about this problem ?

Edit:

also when ı open terminal ı get these messages:
`not found: "/home/hasanenesbagci/ros2_ws/install/graph_based_slam/share/graph_based_slam/local_setup.bash"'

'not found: "/home/hasanenesbagci/ros2_ws/install/scanmatcher/share/scanmatcher/local_setup.bash"`

installation failure Imported target "g2o::solver_eigen" includes non-existent path

I tried to compile the code using the command

colcon build --symlink-install --cmake-clean-first --parallel-workers 12 --ament-cmake-args -DPYTHON_EXECUTABLE=$MY_PYTHON_ENV

I keep on getting this error message

`This may be promoted to an error in a future release of colcon-override-check.
Starting >>> lidarslam_msgs
Starting >>> ndt_omp_ros2
Starting >>> ros2_kitti_publishers
Starting >>> turtlesim
Finished <<< lidarslam_msgs [15.5s]
[Processing: ndt_omp_ros2, ros2_kitti_publishers, turtlesim]
Finished <<< turtlesim [50.2s]
Finished <<< ros2_kitti_publishers [55.4s]
[Processing: ndt_omp_ros2]
Finished <<< ndt_omp_ros2 [1min 26s]
Starting >>> graph_based_slam
Starting >>> scanmatcher
--- stderr: graph_based_slam
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
** WARNING ** io features related to libusb-1.0 will be disabled
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

FindOpenGL found both a legacy GL library:

OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

and GLVND libraries for OpenGL and GLX:

OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
/usr/local/lib/cmake/g2o/g2oConfig.cmake:4 (find_dependency)
CMakeLists.txt:33 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error in CMakeLists.txt:
Imported target "g2o::solver_eigen" includes non-existent path

"/usr/local/include/g2o/solver_eigen"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.

CMake Error in CMakeLists.txt:
Imported target "g2o::solver_eigen" includes non-existent path

"/usr/local/include/g2o/solver_eigen"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:

  • The path was deleted, renamed, or moved to another location.

  • An install or uninstall procedure did not complete successfully.

  • The installation package was faulty and references files it does not
    provide.
    `

Data Format: Compatibility/Conversion to NAV2 usage

Hi does this mapping framework provide output data to be used for Navigation Stack2 consumption?
In Nav2, it is used nav_msgs/OccupancyGrid map, if I am not wrong (Arrays from 0 to 100 to assign occupancy).

This framework provides: /map_array(lidarslam_msgs/MapArray) and /modified_map (sensor_msgs/PointCloud2)

Is there some available pkg to integrate this map to NAV2 Slam-toolbox usage?

Another question is if this mapping manner is more reliable and efficient than using occupancyGrid map. My application is also outdoor off-road. For this reason, it seems more reasonable to use this lidarslam_ros2 toolbox, it seems more faithful to the mapped environment. But I am not sure how to use it alongside NAV2.

I will be thankful for any hint (application pkg example) in this regard.

Relative Performance and Reliability

Hi,

How performant is this? E.g. can I run this on a mobile CPU like found on a NUC or would you require an automotive grade processing power for autonomous driving? Any metrics here would be helpful.

Additionally, have you done any reliability testing to know how large of maps it can handle before having problems or edge cases? Any comparison you can make to HDL from their datasets (or any of your other projects)?

I've taken a brief look over some of your github project; these all look very impressive. So many localization and slam projects, I can hardly tell which is better / newer / stronger / reliable 😉. Some metrics would be great to tell if these are good options for use. I can say the ROS community and general open-source community has a current lack in high-quality 6D localization and SLAM solutions and these all look interesting at least from the readme pictures.

(PS, you're also missing a license)

Steve

IMU alignment unclear

Dear @rsasaki0109,

Should I follow the IMU guide given in: https://github.com/TixiaoShan/LIO-SAM#prepare-imu-data?
I ask this since I assume I dont need to prepare the lidar data as such: https://github.com/TixiaoShan/LIO-SAM#prepare-lidar-data as pointCloud2 data does not carry ring numbers.

I assume that I can simply make sure myself that the axis of the IMU data align with the axis of the lidar? Or should the output of the IMU be identical to the axis of the IMU image? With all the axis modifications as mentioned?

Does the imu data have to contain RAW acceleration data? (incl. gravity) and do i need to compute a covariance matrix?

Last question: How can it be that the modules start running when I specify use_imu: True at moments when i am not launching the IMU? Shouldnt it wait for imu messages to come in before starting?

Im not able to get reliable performance yet. It jumps all over the place. But am hopeful.

Greetings and thank you for your time,

Deniz

map data

hello, do you have saved map data?

/map topic will not be displayed properly in rviz2

Hello rsasaki0109

I'm using the lidarslam_ros2 with Livox MID-360, but /map topic will not be displayed properly in rviz2.
I tried to modify some parameters of lidarslam.launch.py in order to use MID-360, but I couldn't get a good result.
The modified parameters are shown as follows.

mapping = launch_ros.actions.Node( package='scanmatcher', executable='scanmatcher_node', parameters=[main_param_dir], remappings=[('/input_cloud','/livox/lidar')], output='screen' ) tf = launch_ros.actions.Node( package='tf2_ros', executable='static_transform_publisher', arguments=['0','0','0','0','0','0','1','base_link','livox_frame'] )
I would like you to give me some advice to solve the above issue.

Best regards

cannot load .bag file

Required Info:

  • Operating System:
    • ubuntu 20.04
  • ROS2 Version:
    • ROS2 foxy

Steps to reproduce issue

(1) I build this framework following the tutorial in the README.md.
(2) I tried running the demo and the problem occured.

Problem Description

The input dataset provided by the demo is in the .bag file format, but ros2 only provides access to the .sqlite3 file format. Even if the rosbag2 plugin is installed, the .sqlite file still cannot be read. Framework testing cannot continue.
I am very interested in how you read the .bag file in ros2. Can you provide the system version and ros version, or other solutions? Thanks~

Input data

Hello,
I have a question regarding the slam algorithm. For this package to work, does it take in raw Lidar data? Or does it take in point clouds that has already been filtered?

Failed <<< ndt_omp_ros2 [1min 5s, exited with code 2]

Hi, I'm trying to "colcon build" your humble package that I got from your github. When I try building theapplication I get this error + a lot of code errors as well. Is this code optimized for humble and if so what am I doing wrong since I just cloned the github humble repo.
Version: Ubuntu 22.04, Humble.

afbeelding
Steps that I took in this process:

  1. I switched branches to: https://github.com/rsasaki0109/lidarslam_ros2/tree/feature/humble_ci_and_minor_fix
  2. Then I followed the requirement to build steps where you "cd ros2_ws/src" after that I did "git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2"
  3. cd ~/ros2_ws
  4. colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
  5. rviz2 -d src/lidarslam_ros2/lidarslam/rviz/mapping.rviz
  6. ros2 launch lidarslam lidarslam.launch.py (Doesn't find a package) (Package 'lidarslam' not found: "package 'lidarslam' not found, searching: ['/opt/ros/humble']"
    )

Map Frame

Hi,

thank you for your repo !
I have some trouble when launching lidarslam:

  • the /map pointcloud is in an " " frame rather than the map frame (that exists).
    I guess this comes from the scanmatcher but cannot figure out how to correct it.
    /path is working correctly

  • I get no output on /modified_* using debug mode on graphbasedslam does not help

The last message I get from logs is from the scan_matcher: create a first map.
I get a single map from it

Do you have any idea about what I am doing wrong ?

Here is the param file I am using :

scan_matcher:
  ros__parameters:
    global_frame_id: "map"
    robot_frame_id: "myrobot"
    registration_method: "NDT"
    ndt_resolution: 5.0
    ndt_num_threads: 0
    gicp_corr_dist_threshold: 5.0
    trans_for_mapupdate: 1.5
    vg_size_for_input: 0.2
    vg_size_for_map: 0.05
    use_min_max_filter: true
    scan_min_range: 1.0
    scan_max_range: 100.0
    scan_period: 0.1
    map_publish_period: 15.0
    num_targeted_cloud: 10
    set_initial_pose: true
    initial_pose_x: 0.0
    initial_pose_y: 0.0
    initial_pose_z: 0.0
    initial_pose_qx: 0.0
    initial_pose_qy: 0.0
    initial_pose_qz: 0.0
    initial_pose_qw: 1.0
    publish_tf: true
    use_imu: false
    use_odom: false
    debug_flag: false

graph_based_slam:
    ros__parameters:
      registration_method: "NDT"
      ndt_resolution: 5.0
      ndt_num_threads: 0
      voxel_leaf_size: 0.2
      loop_detection_period: 3000
      threshold_loop_closure_score: 0.7
      distance_loop_closure: 100.0
      range_of_searching_loop_closure: 20.0
      search_submap_num: 2
      num_adjacent_pose_cnstraints: 5
      use_save_map_in_loop: true
      debug_flag: false

Modified launch file

def generate_launch_description():

    main_param_dir = launch.substitutions.LaunchConfiguration(
        "main_param_dir",
        default=os.path.join(
            get_package_share_directory("lidarslam"),
            "param",
            "lidarslam-myrobot.yml",
        ),
    )

    mapping = launch_ros.actions.Node(
        package="scanmatcher",
        executable="scanmatcher_node",
        parameters=[main_param_dir],
        remappings=[("/input_cloud", "/ouster/points")],
        output="screen",
    )

    # tf = launch_ros.actions.Node(
    #     package="tf2_ros",
    #     executable="static_transform_publisher",
    #     arguments=[
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "0",
    #         "1",
    #         "myrobot",
    #         "os_sensor",
    #     ],
    # )

    graphbasedslam = launch_ros.actions.Node(
        package="graph_based_slam",
        executable="graph_based_slam_node",
        parameters=[main_param_dir],
        output="screen",
    )

    return launch.LaunchDescription(
        [
            launch.actions.DeclareLaunchArgument(
                "main_param_dir",
                default_value=main_param_dir,
                description="Full path to main parameter file to load",
            ),
            mapping,
            # tf,
            graphbasedslam,
        ]
    )

idea: Scanmathing pose publish with a constraint in roll and pitch.

Dear Mr. Rsasaki,

I have some question regarding the pose that publish by scanmatching node. I have been thinking about the relation between the limitation and constraint in translation "Z", orientation "pitch", orientation "roll" with the final pose SLAM output result.

If there is a limit in selected particular movement, can it help to improve the overall SLAM performance.

to put the constraint in "z" is possible but not with the "pitch" and "roll". I try to convert this line of quaternion into a rotation matrix again.

line 386 to line 394 (scanmatching component.cpp) void publishMapAndPose

geometry_msgs::msg::TransformStamped transform_stamped;
transform_stamped.header.stamp = stamp;
transform_stamped.header.frame_id = global_frame_id_;
transform_stamped.child_frame_id = robot_frame_id_;
transform_stamped.transform.translation.x = position.x();
transform_stamped.transform.translation.y = position.y();
transform_stamped.transform.translation.z = position.z();
transform_stamped.transform.rotation = quat_msg;
broadcaster_.sendTransform(transform_stamped);

the question is, it is possible? I hope you can give some opinion. Thank you.

Can not echo map_array topic

Hi,
I am trying to echo the map_array topic to get som more information about it. But i get the following error message:

Traceback (most recent call last):
  File "/opt/ros/foxy/bin/ros2", line 11, in <module>
    load_entry_point('ros2cli==0.9.11', 'console_scripts', 'ros2')()
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2cli/cli.py", line 67, in main
    rc = extension.main(parser=parser, args=args)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2topic/command/topic.py", line 41, in main
    return extension.main(args=args)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2topic/verb/echo.py", line 71, in main
    return main(args)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2topic/verb/echo.py", line 86, in main
    message_type = get_msg_class(node, args.topic_name, include_hidden_topics=True)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2topic/api/__init__.py", line 99, in get_msg_class
    msg_class = _get_msg_class(node, topic, include_hidden_topics)
  File "/opt/ros/foxy/lib/python3.8/site-packages/ros2topic/api/__init__.py", line 144, in _get_msg_class
    return get_message(message_type)
  File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_runtime_py/utilities.py", line 28, in get_message
    interface = import_message_from_namespaced_type(get_message_namespaced_type(identifier))
  File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_runtime_py/import_message.py", line 30, in import_message_from_namespaced_type
    module = importlib.import_module(
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'lidarslam_msgs'

I cant find the msg type in the interface list either.. I am kind of new to ROS, is there something I am missing?

PCL Version

Hello, after I successfully completed the requirements to build steps, I encountered the fault that is below in the last step which is for using to build. What should I do?

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release


user@ubuntu:~/ros2_ws$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Starting >>> lidarslam_msgs
Starting >>> ndt_omp_ros2
Finished <<< lidarslam_msgs [0.72s]                                                             
--- stderr: ndt_omp_ros2                         
CMake Error at CMakeLists.txt:23 (find_package):
  Could not find a configuration file for package "PCL" that is compatible
  with requested version "1.12".

  The following configuration files were considered but not accepted:

    /usr/share/pcl-1.8/PCLConfig.cmake, version: 1.8.0



make: *** [Makefile:370: cmake_check_build_system] Error 1
---
Failed   <<< ndt_omp_ros2 [0.96s, exited with code 2]

Summary: 1 package finished [1.23s]
  1 package failed: ndt_omp_ros2
  1 package had stderr output: ndt_omp_ros2
  3 packages not processed

Intel Realse Sense on the manipulator

Hi @rsasaki0109!
Is it possible to use your 3D mapping with the mobile manipulator with the 3D depth camera on it?
Screencast from 09.06.2023 21:17:49.webm
The base_link is the base of the platform. For this video the odom is static. The platform is not moving.

Also got errors:

[scanmatcher_node-1] Failed to find match for field 'intensity'.
[scanmatcher_node-1] Failed to find match for field 'intensity'.
[scanmatcher_node-1] Failed to find match for field 'intensity'.
[scanmatcher_node-1] Failed to find match for field 'intensity'.
[scanmatcher_node-1] Failed to find match for field 'intensity'.
[scanmatcher_node-1] Failed to find match for field 'intensity'.

image

Editting PCL

Hi!
I just want to ask if I can edit or remove unwanted data from the point cloud data. Are there any tools for that?

Question for providing odometry

Lidarslam_ros2 is working great for us, thank you for that!
But when moving outside, there are moments, when lidarslam looses its track and especially when returning to the same point the build map is wrong. (as in picture below)
Therefore, we wanted to add odometry. When doing that, is lidarslam then relying on the provided odometry for 100% or is it just complementary
Screenshot from 2022-08-08 16-04-09
?

QoS Policy Errors and Map Not Publishing

I am encountering an issue where no data is being published to the /map topic.

Below are the details of my setup and the steps I have taken so far:

Environment:

ROS2 Version: Humble
Simulator: Webots
Visualization: Foxglove
System: Ubuntu 22.04 on Docker
Middleware: rmw_fastrtps_cpp

Issue Description:

The /map topic is visible, and ros2 topic list shows it as existing. However, ros2 topic echo /map reveals that no data is being published.

I am not using Velodyne lidar - I don't think this is a requirement.
Might be a middleware issue, but when I runros2 doctor and ros2 doctor -r, everything looks fine.

The lidarslam_ros2 node appears to be running without any apparent issues. (Log below)

ros2 launch lidarslam lidarslam.launch.py 
[INFO] [launch]: All log files can be found below /root/.ros/log/2023-12-02-00-27-20-850854-72f875f9b2f4-23672
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [scanmatcher_node-1]: process started with pid [23708]
[INFO] [static_transform_publisher-2]: process started with pid [23710]
[INFO] [graph_based_slam_node-3]: process started with pid [23712]
[static_transform_publisher-2] [WARN] [1701476840.895559210] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-2] [INFO] [1701476840.903340210] [static_transform_publisher_dIfNbir1rGlI9JHN]: Spinning until stopped - publishing transform
[static_transform_publisher-2] translation: ('0.000000', '0.000000', '0.000000')
[static_transform_publisher-2] rotation: ('0.000000', '0.000000', '0.000000', '1.000000')
[static_transform_publisher-2] from 'base_link' to 'velodyne'
[scanmatcher_node-1] registration_method:NDT
[scanmatcher_node-1] ndt_resolution[m]:2
[scanmatcher_node-1] ndt_num_threads:2
[scanmatcher_node-1] gicp_corr_dist_threshold[m]:5
[scanmatcher_node-1] trans_for_mapupdate[m]:1.5
[scanmatcher_node-1] vg_size_for_input[m]:0.5
[scanmatcher_node-1] vg_size_for_map[m]:0.1
[scanmatcher_node-1] use_min_max_filter:true
[scanmatcher_node-1] scan_min_range[m]:1
[scanmatcher_node-1] scan_max_range[m]:200
[scanmatcher_node-1] set_initial_pose:true
[scanmatcher_node-1] publish_tf:true
[scanmatcher_node-1] use_odom:false
[scanmatcher_node-1] use_imu:false
[scanmatcher_node-1] scan_period[sec]:0.2
[scanmatcher_node-1] debug_flag:true
[scanmatcher_node-1] map_publish_period[sec]:15
[scanmatcher_node-1] num_targeted_cloud:20
[scanmatcher_node-1] ------------------
[scanmatcher_node-1] [INFO] [1701476840.913879376] [scan_matcher]: initialize Publishers and Subscribers
[scanmatcher_node-1] [INFO] [1701476840.915610793] [scan_matcher]: initialization end
[graph_based_slam_node-3] [INFO] [1701476840.934688085] [graph_based_slam]: initialization start
[graph_based_slam_node-3] registration_method:NDT
[graph_based_slam_node-3] voxel_leaf_size[m]:0.1
[graph_based_slam_node-3] ndt_resolution[m]:1
[graph_based_slam_node-3] ndt_num_threads:2
[graph_based_slam_node-3] loop_detection_period[Hz]:3000
[graph_based_slam_node-3] threshold_loop_closure_score:0.7
[graph_based_slam_node-3] distance_loop_closure[m]:100
[graph_based_slam_node-3] range_of_searching_loop_closure[m]:20
[graph_based_slam_node-3] search_submap_num:2
[graph_based_slam_node-3] num_adjacent_pose_cnstraints:5
[graph_based_slam_node-3] use_save_map_in_loop:true
[graph_based_slam_node-3] debug_flag:true
[graph_based_slam_node-3] ------------------
[graph_based_slam_node-3] [INFO] [1701476840.934871710] [graph_based_slam]: initialize Publishers and Subscribers
[graph_based_slam_node-3] [INFO] [1701476840.936463085] [graph_based_slam]: initialization end

ros2 node list correctly outputs graph_based_slam node and scan_matcher node:

ros2 node list
/Ros2Supervisor/Ros2Supervisor
/TurtleBot3Burger
/controller_manager
/diffdrive_controller
/foxglove_bridge
/foxglove_bridge_component_manager
/graph_based_slam
/joint_state_broadcaster
/robot_state_publisher
/scan_matcher
/static_transform_publisher_dIfNbir1rGlI9JHN
/static_transform_publisher_vc2cCkVSG7m3Rf60
/transform_listener_impl_aaaadaa2a1e8
/transform_listener_impl_aaaadf109cd8

Output from ros2 topic list

ros2 topic list
/Ros2Supervisor/remove_node
/TurtleBot3Burger/compass/bearing
/TurtleBot3Burger/compass/north_vector
/clicked_point
/clock
/cmd_vel
/current_pose
/diffdrive_controller/transition_event
/dynamic_joint_states
/imu
/initial_pose
/initialpose
/joint_state_broadcaster/transition_event
/joint_states
/map
/map_array
/modified_map
/modified_map_array
/modified_path
/move_base_simple/goal
/odom
/parameter_events
/path
/remove_urdf_robot
/robot_description
/rosout
/scan
/scan/point_cloud
/tf
/tf_static
/velodyne_points

Troubleshooting Steps Taken:

I checked that there is a publisher on the /map topic

ros2 topic info /map -v
Type: sensor_msgs/msg/PointCloud2

Publisher count: 1

Node name: scan_matcher
Node namespace: /
Topic type: sensor_msgs/msg/PointCloud2
Endpoint type: PUBLISHER
GID: 01.0f.56.e7.9c.5c.44.26.01.00.00.00.00.00.1b.03.00.00.00.00.00.00.00.00
QoS profile:
  Reliability: RELIABLE
  History (Depth): UNKNOWN
  Durability: VOLATILE
  Lifespan: Infinite
  Deadline: Infinite
  Liveliness: AUTOMATIC
  Liveliness lease duration: Infinite

Any help would be appreciated. Thank you in advance.

Other 3D LIDAR compatibility with this repository

Hi Sasaki san

I am very new to SLAM with LIDARs.
Please let me know that is this repository is compatible with another 3D-LIDAR or only Velodyne LIDAR is supported.
By the way I have Surestar R-Fans-16 3D LIDAR.
I am able to see in lidarslam.launch.py it is mentioned for velodyne.

If I have to use another LIDAR,is it possible to use it with your repository.

Please confirm.
Looking forward to hear from you soon.

Thanks

Build issue

OS: Pop!_OS 22.04 (ubuntu 22.04)
ROS: humble

Hi, I got an issue while building the package:

Could not find a package configuration file provided by "g2o" with any of
  the following names:

    g2oConfig.cmake
    g2o-config.cmake

After I installed the g2o lib(https://github.com/RainerKuemmerle/g2o), and try to build again, it then reports:

Starting >>> scanmatcher
--- stderr: graph_based_slam                                                                    
** WARNING ** io features related to pcap will be disabled
CMake Error at /usr/local/lib/cmake/g2o/modules/FindSuiteSparse.cmake:182 (message):
  Failed to find SuiteSparse - Did not find AMD header (required SuiteSparse
  component).
Call Stack (most recent call first):
  /usr/local/lib/cmake/g2o/modules/FindSuiteSparse.cmake:232 (suitesparse_report_not_found)
  /usr/local/lib/cmake/g2o/modules/FindSuiteSparse.cmake:323 (suitesparse_find_component)
  /usr/share/cmake-3.22/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /usr/local/lib/cmake/g2o/g2oConfig.cmake:7 (find_dependency)
  CMakeLists.txt:38 (find_package)

What could be the reason for this error?

Scan_Matcher "odom"-Frame Error

Hello,

the installation of the package went very smoothly and without problems.
But when i try to test it, with my ros2-bag, i got the following error only after i started to publish the data from the bag:

scanmatcher_error

System: ubuntu 20.04
Ros: Foxy
Arm64 Architecture

I was working with the scanmatcher a few months ago and i didnt get any error like this with the tested ros_bags.

Do you know how i can get solve this problem?

If you need more information just ask.

Best

Lukas

scan_period parameter

Hello,

README says "scan period of input cloud[sec](If you want to compound imu, you need to change this parameter.)". I couldn't understand how to change this parameter, should it be the same as imu message's period or what should it be?

Thank you.

ScanMatcher PointCloud Error. Failed to build.

Hello,
i want to build the package lidarslam_ros2 on Ubuntu 20.04 (Focal Fossa) with ndt_omp_ros2 and g2o installed but i get the following error:

/home/christoph/IAC/mod_map_loc/LiDAR_SLAM/lidarslam_test_build/lidarslam_ros2/src/scanmatcher/src/scanmatcher_component.cpp:488:32: error: no matching function for call to ‘rclcpp::Publisher<sensor_msgs::msg::PointCloud2_<std::allocator<void> > >::publish(sensor_msgs::msg::PointCloud2_<std::allocator<void> >::Ptr&)’ 488 | map_pub_->publish(map_msg_ptr);

I am using PCL 1.10 because of Ubuntu 20.04.

Build Issue (PCL version error)

I am using ROS Foxy.
I've followed the steps described for cloning the repository in the readme.md file but when I colcon build my workspace i always get the following issue:
`--- stderr: ndt_omp_ros2
CMake Error at CMakeLists.txt:23 (find_package):
Could not find a configuration file for package "PCL" that is compatible
with requested version "1.12".

The following configuration files were considered but not accepted:

/usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake, version: 1.10.0
/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake, version: 1.10.0

make: *** [Makefile:370: cmake_check_build_system] Error 1

I tried to upgrade my PCL version to 1.12 but it doesn't seem to do the trick. I tried to download the repository as a zip and then run thegit submodule update --init --recursiveinside the package but it just gave me a longer series of g2o errors:--- stderr: graph_based_slam
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
** WARNING ** io features related to libusb-1.0 will be disabled
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

FindOpenGL found both a legacy GL library:

OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

and GLVND libraries for OpenGL and GLX:

OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
/usr/local/lib/cmake/g2o/g2oConfig.cmake:4 (find_dependency)
CMakeLists.txt:33 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.

In file included from /usr/local/include/g2o/core/sparse_block_matrix.h:43,
from /usr/local/include/g2o/core/sparse_optimizer.h:34,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/include/graph_based_slam/graph_based_slam_component.h:75,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:1:
/usr/local/include/g2o/core/matrix_structure.h:57:19: error: ‘std::string_view’ has not been declared
57 | bool write(std::string_view filename) const;
| ^~~~~~~~~~~
In file included from /usr/local/include/g2o/core/base_fixed_sized_edge.h:39,
from /usr/local/include/g2o/core/base_binary_edge.h:30,
from /usr/local/include/g2o/types/slam3d/edge_se3.h:30,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/include/graph_based_slam/graph_based_slam_component.h:83,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:1:
/usr/local/include/g2o/stuff/tuple_tools.h: In function ‘void g2o::tuple_apply_i(F&&, T&, int)’:
/usr/local/include/g2o/stuff/tuple_tools.h:41:46: error: ‘tuple_size_v’ is not a member of ‘std’; did you mean ‘tuple_size’?
41 | f, t, i, std::make_index_sequence<std::tuple_size_v<std::decay_t>>());
| ^~~~~~~~~~~~
| tuple_size
/usr/local/include/g2o/stuff/tuple_tools.h:41:46: error: ‘tuple_size_v’ is not a member of ‘std’; did you mean ‘tuple_size’?
41 | f, t, i, std::make_index_sequence<std::tuple_size_v<std::decay_t>>());
| ^~~~~~~~~~~~
| tuple_size
/usr/local/include/g2o/stuff/tuple_tools.h:41:73: error: template argument 1 is invalid
41 | f, t, i, std::make_index_sequence<std::tuple_size_v<std::decay_t>>());
| ^~
/usr/local/include/g2o/stuff/tuple_tools.h:41:77: error: expected primary-expression before ‘)’ token
41 | f, t, i, std::make_index_sequence<std::tuple_size_v<std::decay_t>>());
| ^
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp: In member function ‘void graphslam::GraphBasedSlamComponent::doPoseAdjustment(lidarslam_msgs::msg::MapArray, bool)’:
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:272:10: error: ‘make_unique’ is not a member of ‘g2o’; did you mean ‘std::make_unique’?
272 | g2o::make_unique<g2o::LinearSolverEigeng2o::BlockSolver_6_3::PoseMatrixType>();
| ^~~~~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/include/graph_based_slam/graph_based_slam_component.h:42,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:868:5: note: ‘std::make_unique’ declared here
868 | make_unique(_Args&&...) = delete;
| ^~~~~~~~~~~
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:272:81: error: expected primary-expression before ‘>’ token
272 | g2o::make_unique<g2o::LinearSolverEigeng2o::BlockSolver_6_3::PoseMatrixType>();
| ^~
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:272:84: error: expected primary-expression before ‘)’ token
272 | g2o::make_unique<g2o::LinearSolverEigeng2o::BlockSolver_6_3::PoseMatrixType>();
| ^
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:274:10: error: ‘make_unique’ is not a member of ‘g2o’; did you mean ‘std::make_unique’?
274 | g2o::make_uniqueg2o::BlockSolver_6_3(std::move(linear_solver)));
| ^~~~~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:144,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/include/graph_based_slam/graph_based_slam_component.h:42,
from /home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:868:5: note: ‘std::make_unique’ declared here
868 | make_unique(_Args&&...) = delete;
| ^~~~~~~~~~~
/home/nadimdib/ros2_3D/src/lidarslam_ros2/graph_based_slam/src/graph_based_slam_component.cpp:274:42: error: expected primary-expression before ‘>’ token
274 | g2o::make_uniqueg2o::BlockSolver_6_3(std::move(linear_solver)));
| ^
make[2]: *** [CMakeFiles/graph_based_slam_component.dir/build.make:63: CMakeFiles/graph_based_slam_component.dir/src/graph_based_slam_component.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:107: CMakeFiles/graph_based_slam_component.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---`

colcon installation failure deu to opengl dependency

Hi

I'm trying to install the graph_based_slam_node

Colcon keeps on failing due to opengl dependency. I tried installing the opengl libaray, nothing helped.

Here is how I run the colcon command -

colcon build --symlink-install --parallel-workers 12 --ament-cmake-args -DPYTHON_EXECUTABLE=$MY_PYTHON_ENV -DCMAKE_BUILD_TYPE=Release

`CMake Error at CMakeLists.txt:69 (add_executable):
Target graph_based_slam_node links to target OpenGL::GL but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?

CMake Error at CMakeLists.txt:69 (add_executable):
Target graph_based_slam_node links to target OpenGL::GLU but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?`

Colcon build Fail!

Hi,

I am trying to build the repo, but it gives me some type of error where I don't know the solution for! Does anyone know something about it and can help me pls?

Greetings

image

__init__() missing 1 required keyword-only argument: 'node_executable'

Excuse me. I build the lidarslam_ros2 done. A problem occured when i run the command $ ros2 launch lidarslam lidarslam.launch.py. The information is as followed.

[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught exception when trying to load file of format [py]: init() missing 1 required keyword-only argument: 'node_executable'

System: ubuntu 18.04
ros version: ros1 melodic + ros2 eloquent

How can i solve this problem? Thank u~

2D LiDAR

Will this package work with shitty LiDARs like RPLidar s1 if I will convert the output to PointCloud2 and follow the LiDAR data preparation?

Random and silent crashes

I am testing the nodes with point clouds coming from a Robosense RS16, but the nodes keep crashing randomly without any error message. It just stops and I can't figure why.

Is this behavior normal or am I missing something ?

IMU intergration fail

Everything going smooth with lidar alone mapping , but when set use_imu: true,and publish IMU topic with 200HZ, Lidar 10HZ, i got error like below:

ros2 launch lidarslam lidarslam_tukuba.launch.py 
[INFO] [launch]: All log files can be found below /home/david/.ros/log/2022-04-27-22-21-37-612097-david-pc-1003649
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [scanmatcher_node-1]: process started with pid [1003651]
[INFO] [static_transform_publisher-2]: process started with pid [1003653]
[INFO] [graph_based_slam_node-3]: process started with pid [1003655]
[static_transform_publisher-2] [INFO] [1651069297.746841314] [static_transform_publisher_Bp2zNgpNGCEbeiRh]: Spinning until killed publishing transform from 'base_link' to 'laser_link'
[scanmatcher_node-1] registration_method:NDT
[scanmatcher_node-1] ndt_resolution[m]:2
[scanmatcher_node-1] ndt_num_threads:1
[scanmatcher_node-1] gicp_corr_dist_threshold[m]:5
[scanmatcher_node-1] trans_for_mapupdate[m]:2
[scanmatcher_node-1] vg_size_for_input[m]:1
[scanmatcher_node-1] vg_size_for_map[m]:0.1
[scanmatcher_node-1] use_min_max_filter:true
[scanmatcher_node-1] scan_min_range[m]:1
[scanmatcher_node-1] scan_max_range[m]:100
[scanmatcher_node-1] set_initial_pose:true
[scanmatcher_node-1] use_odom:false
[scanmatcher_node-1] use_imu:true
[scanmatcher_node-1] scan_period[sec]:0.1
[scanmatcher_node-1] debug_flag:false
[scanmatcher_node-1] map_publish_period[sec]:100
[scanmatcher_node-1] num_targeted_cloud:30
[scanmatcher_node-1] ------------------
[scanmatcher_node-1] [INFO] [1651069297.773546138] [scan_matcher]: initialize Publishers and Subscribers
[scanmatcher_node-1] [INFO] [1651069297.781154965] [scan_matcher]: initialization end
[graph_based_slam_node-3] [INFO] [1651069297.788144665] [graph_based_slam]: initialization start
[graph_based_slam_node-3] registration_method:NDT
[graph_based_slam_node-3] voxel_leaf_size[m]:0.2
[graph_based_slam_node-3] ndt_resolution[m]:5
[graph_based_slam_node-3] ndt_num_threads:3
[graph_based_slam_node-3] loop_detection_period[Hz]:5000
[graph_based_slam_node-3] threshold_loop_closure_score:2.5
[graph_based_slam_node-3] distance_loop_closure[m]:100
[graph_based_slam_node-3] range_of_searching_loop_closure[m]:20
[graph_based_slam_node-3] search_submap_num:4
[graph_based_slam_node-3] num_adjacent_pose_cnstraints:5
[graph_based_slam_node-3] use_save_map_in_loop:true
[graph_based_slam_node-3] ------------------
[graph_based_slam_node-3] [INFO] [1651069297.788516988] [graph_based_slam]: initialize Publishers and Subscribers
[graph_based_slam_node-3] [INFO] [1651069297.791048893] [graph_based_slam]: initialization end
[scanmatcher_node-1] [INFO] [1651069301.453226030] [scan_matcher]: create a first map
[scanmatcher_node-1] [pcl::NormalDistributionsTransform::setInputTarget] Invalid or empty point cloud dataset given!
[scanmatcher_node-1] [pcl::VoxelGridCovariance::applyFilter] No input dataset given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!
[scanmatcher_node-1] [pcl::registration::NormalDistributionsTransform::compute] No input target dataset was given!

Is there any tricks about intergrate IMU to this project? seems IMU is highly relavant with time, should i sync my IMU's time and Lidar's time strictly, Thanks! looking forward for your replying.

Expected Performance with Ideal Pose

Hi,

Firstly thanks for providing this package, especially in ROS2.

My question is about usage of ideal odometry data (and the corresponding tf) for mapping purposes.

The odometry data I'm using is "ideal" in the sense that its from an RTK system with centimeter accuracy. I'm not using IMU data. However when the pose from the SLAM algorithm is updated with the pose from pointcloud matching, I can see a visible drift at the point of loop closure. So the modified_map that's generated at the end has a visible mismatch at the loop closure point (but the input odometry data is continous, without any jump)
Is there some way to increase the weight of the pose information from the odometry, or some constraint parameter?

Thanks and regards

Will the test require modifying the Lidar parameters?

Hi,
I found each yaml file has no Lidar parameters. Will the test require modifying the Lidar parameters?
E.g. Can I run this using kitti dataset(Velodyne HDL-64E 3D laser scanner) without modifying any parameters?
Looking forward to your reply!

scanmatcher_node-1 process has died

Hi all.

Currently I'm using ROS2 humble, and using LS Lidar C32. I have recorded a pointcloud in a ros bag and try to play it back in our office.

First I run lidarslam. It run as normal

ros2 launch lidarslam lidarslam.launch.py

Screenshot from 2023-05-30 13-38-09

Next, I run RVIZ2 to visualise the path and modified_path. Also, have no issue.

Screenshot from 2023-05-30 13-38-20

Screenshot from 2023-05-30 13-39-45

After running lidarslam and rviz2, I play the ros2 bag. The way I play the ros bag is as following:

ros2 bag play file.bag

Screenshot from 2023-05-30 13-38-37

After few seconds, the vehicle is moving and now we can see the path.

Screenshot from 2023-05-30 13-41-42

Suddenly, there is an error occured in lidarslam. The error is as following:

[scanmatcher_node-1] [pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would overflow.
[ERROR] [scanmatcher_node-1]: process has died [pid 121510, exit code -8, cmd '/home/reka/ros2_ws/install/scanmatcher/lib/scanmatcher/scanmatcher_node --ros-args --params-file /home/reka/ros2_ws/install/lidarslam/share/lidarslam/param/lidarslam.yaml -r /input_cloud:=/c32/lslidar_point_cloud'].

Screenshot from 2023-05-30 13-41-53

Now, the lidarslam is crash. and the path is not moving anymore. Can I know what the reason behind this and how to fix it?

I tried to fix it by increasing the leaf size in params.yaml, but seems not working.

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.