Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Public place to ask questions, post and discuss issues #3

Open
laboshinl opened this issue Apr 11, 2016 · 177 comments
Open

Public place to ask questions, post and discuss issues #3

laboshinl opened this issue Apr 11, 2016 · 177 comments

Comments

@laboshinl
Copy link
Owner

No description provided.

@laboshinl
Copy link
Owner Author

The mapping is working, but in some point the pointcloud suddenly returns to the initial position and I get this error:

  laserOdometry: /build/buildd/pcl-1.7-1.7.1/kdtree/include/pcl/kdtree/impl/kdtree_flann.hpp:136: int pcl::KdTreeFLANN<PointT, Dist>::nearestKSearch(const PointT&, int, std::vector<int>&, std::vector<float>&) const [with PointT = pcl::PointXYZI; Dist = flann::L2_Simple<float>]: Assertion `point_representation_->isValid (point) && "Invalid (NaN, Inf) point coordinates given to nearestKSearch!"' failed.
    [laserOdometry-2] process has died [pid 10107, exit code -6, cmd /home/vicky/catkin_ws/devel/lib/loam_velodyne/laserOdometry __name:=laserOdometry __log:=/home/vicky/.ros/log/580f7db4-ffc0-11e5-aee2-74d4358625bb/laserOdometry-2.log].
    log file: /home/vicky/.ros/log/580f7db4-ffc0-11e5-aee2-74d4358625bb/laserOdometry-2*.log
    [laserOdometry-2] restarting process

I think when a keypoint from the registration process is not found, then the node laserOdometry node crashed and restart, then the mapping does not work because it does not continue in the same position as before, however it start again from the initial position.

When you run your example:

roslaunch ~/catkin_ws/src/loam_velodyne/launch/loam_velodyne.launch
rosbag play ~/Downloads/nsh_indoor_outdoor.bag 

do you obtain the same error?

How can I avoid this error? Many thanks in advance.

I have the same errors with the nsh bag.
Works great with sample VLP16 data

@laboshinl
Copy link
Owner Author

Is this a version you wrote or is it the original implementation or did you piece it back together from the help pages?
Did you write the package and launch file?

I've created package and launch file. I've also modified scanRegistration.cpp to get it to work with my VLP16 (I think originally it was for HDL32 )

@ZepherusFF
Copy link

ZepherusFF commented Apr 26, 2016

@laboshinl Do you know if it saves the map generated anywhere? and if not, are you planning on modifying it so it does?

@DamonMIN
Copy link

When I build with catkin "source ~catkin_ws/devel/setup.bash", there is an error "bash: ~catkin_ws/devel/setup.bash: No such file or directory". Please help me to solve it. Thank you. @laboshinl

@ZepherusFF
Copy link

Hi @DamonMIN did you setup your catkin workspace correctly based on the ROS documentation ? Do you have the file in that directory ?

@DamonMIN
Copy link

DamonMIN commented Apr 27, 2016

Hi@ZepherusFF
I have the "setup.bash" file in the folder ~catkin_ws/devel. The following text is the content of this file.

////////////////////////////////////////////////////////////////////
#!/usr/bin/env bash
# generated from catkin/cmake/templates/setup.bash.in

CATKIN_SHELL=bash

# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"
//////////////////////////////////////////////////////////////////

@laboshinl
Copy link
Owner Author

@DamonMIN You have missed "/"

laboshinl@rtc ~/catkin_ws $ source ~catkin_ws/devel/setup.bash 
bash: ~catkin_ws/devel/setup.bash: No such file or directory
laboshinl@rtc ~/catkin_ws $ source ~/catkin_ws/devel/setup.bash 

@DamonMIN
Copy link

DamonMIN commented Apr 27, 2016

@laboshinl

In second terminal play sample velodyne data from VLP16 rosbag:

rosbag play ~/Downloads/2014-11-10-10-48-31_Velodyne-VLP_20Hz_Hecker Pass.pcap
[ INFO] [1461760124.789037514]: Opening /home/aicrobo/Downloads/2014-11-10-10-48-31_Velodyne-VLP_20Hz_Hecker
[FATAL] [1461760124.789397586]: Error opening file: /home/aicrobo/Downloads/2014-11-10-10-48-31_Velodyne-VLP_20Hz_Hecker

read from velodyne VLP16 sample pcap:

roslaunch velodyne_pointcloud VLP16_points.launch pcap:="/home/aicrobo/Downloads/2014-11-10-10-48-31_Velodyne-VLP_20Hz_Hecker Pass.pcap"
[VLP16_points.launch] is neither a launch file in package [velodyne_pointcloud] nor is [velodyne_pointcloud] a launch file name
The traceback for the exception was written to the log file

It seems that the launch file can't find or recognize the velodyne data (The data was downloaded from VLP16 sample pcap).

@laboshinl
Copy link
Owner Author

You should compile velodyne driver
https://github.com/ros-drivers/velodyne/tree/master/velodyne_pointcloud

@ZepherusFF
Copy link

@DamonMIN For the VLP16 you need to compile yourself the driver

@FernandoArrigorriaga
Copy link

Is there any way to export the data or is just for visualization?. By the way, works great.

@laboshinl
Copy link
Owner Author

@fazt
You can save registered clouds to pcd and open with ccViewer
rosrun pcl_ros pointcloud_to_pcd input:=/velodyne_cloud_registered

@drscopus
Copy link

drscopus commented Jun 3, 2016

It seems that I can't run it successfully. I used the "VLP16 sample pcap" data sets. Should I calibrate the Velodyne sensor at first?
At first, the 3D data points couldn't be displayed in rviz, only two odom topics /laser_odom_to_init and /integrated_to_init could be displayed. The locations of these odom topics are strange. Initially, they start at a same position. They are getting further in the distance. And the orientations of these two topics are also very strange.
Then I found if the displayed style of pointcloud2 is adjusted from "points" to "squares", the 3D data points could be displayed. However, I couldn't see the constructed 3D map in rviz.
Looking forwards to any great advices.
Best!

@laboshinl
Copy link
Owner Author

laboshinl commented Jun 3, 2016

@drscopus

only two odom topics /laser_odom_to_init and /integrated_to_init could be displayed. The locations of these odom topics are strange. Initially, they start at a same position. They are getting further in the distance. And the orientations of these two topics are also very strange.

Did you clone latest version of repo? It has different rviz config.
You should look only at RED odom lines. Just disable GREEN. Arrows are perpendicular to the the direction of movement for some reason.

@laboshinl
Copy link
Owner Author

laboshinl commented Jun 3, 2016

@drscopus

I couldn't see the constructed 3D map in rviz.

Try setting 'Decay Time' parameter to 1000 in topic 'velodyne_cloud_registered'

screenshot-10

@drscopus
Copy link

drscopus commented Jun 4, 2016

@laboshinl Thanks! It seems works fine now!

@CansenJIANG
Copy link

Dear Leonid,

Hello, I'm a Phd student from Univ. de Bourgogne in France. And recently I found your awesome project on github using Zhang's method on SLAM. I tested your code and it was working very well. However, I have some questions on the performances of the registration results. I tested the dataset that you shared on Github (VLP16 rosbag). Here are the results that I obtain (Fig.1 is the top view, and Fig.2 is the side view) . As we know, the Zhang's method achieves the best performances among the KITTI dataset (the LOAM ranked second, while V-LOAM ranked first). But the registered clouds that I got from the dataset that you provided are bent (see Fig.2).

I would like to ask that if you are having the same problem on this testing data or not? Or do you know the reason why it happens?

Thank you very much and look forward to your reply!
Cansen

image
Inline image 1
image
Inline image 2

@haoala
Copy link
Contributor

haoala commented Jun 16, 2016

Hi,

The LOAM paper defines a formula for computing curvature that normalises by the distance of the point from the origin (equation (1) in the paper). However, it seems like the curvature computed in line 378 of scanRegistration.cpp is not normalised by the distance of the point from the origin. Any idea why this might be the case?

Thanks!

@TopGunSnake
Copy link

@laboshinl When testing the loam_velodyne with real data, I noticed that the transform frames are in a non-standard coordinate system. Namely, sensor forward is mapped to +z, sensor up is mapped to +y, and sensor left is mapped to +x. Is there a reason for this, and where can I easily change it to standard cartesian?

@haoala
Copy link
Contributor

haoala commented Jun 18, 2016

@TopGunSnake I believe it's because that's the convention the paper uses (page 2 at http://www.roboticsproceedings.org/rss10/p07.pdf).

@haoala
Copy link
Contributor

haoala commented Jun 24, 2016

@laboshinl What units are distances in?

@Kailegh
Copy link

Kailegh commented Jun 30, 2016

@haoala meters I think

think@laboshinl What units are distances in?

@laboshinl For the error generated in nsh_indoor_outdoor.bag is it possible to make that when it losses odometry it keeps the last pose?
And I have other question, is it possible to add the help of an IMU or wheel odometry?

@laboshinl
Copy link
Owner Author

laboshinl commented Jun 30, 2016

@Kailegh There is no error for me with current version
60db8c1

@Kailegh
Copy link

Kailegh commented Jun 30, 2016

@Kailegh There is no error for me with current version
60db8c1

Thanks a lot, works perfect now I had an old version sorry. Great work man! Although this version seems to have less points, do you use a voxel grid or something like that?

Regarding the IMU, do you think there is any advantage of including one?

An important question would be what is the maximun speed this can work?

@laboshinl
Copy link
Owner Author

@Kailegh I have not tested it with IMU yet.
#6

@haoala
Copy link
Contributor

haoala commented Jul 4, 2016

I believe there's a bug with laserOdometry.cpp. Lines 458-459 should really go after line 470. You want to reset the points used to build the Jacobian at the start of each new iteration, and not keep points from previous iterations.

@laboshinl
Copy link
Owner Author

@haoala
Feel free to send pull requests with updates

@doublej317
Copy link

Can you share the original version of scanRegistration.cpp that works with HDL-32E? Thanks.

@laboshinl
Copy link
Owner Author

laboshinl commented Jul 15, 2016

@doublej317 I was mistaken, it doesn't seem to be for HDL-32. Original sources can be found here: http://docs.ros.org/indigo/api/loam_velodyne/html/files.html

@doublej317
Copy link

@laboshinl Thank you :)

@julianst
Copy link

julianst commented May 15, 2018

Dear @CansenJIANG @TopGunSnake @kamiyuanyang @nikitaporje,
Have you found a solution for the circular output problem meanwhile?

Thanks

@tamerharsh
Copy link

Hi,
Please help me to rectify the error obtained after running the command catkin_make which is as follows:-

Running command: "make cmake_check_build_system" in "/home/harsh/loam_ws/build"

Running command: "make -j2 -l2" in "/home/harsh/loam_ws/build"

[ 11%] [ 22%] Building CXX object loam_velodyne/src/lib/CMakeFiles/loam.dir/MultiScanRegistration.cpp.o
Building CXX object loam_velodyne/src/lib/CMakeFiles/loam.dir/ScanRegistration.cpp.o
In file included from /home/harsh/loam_ws/src/loam_velodyne/include/loam_velodyne/ScanRegistration.h:37:0,
from /home/harsh/loam_ws/src/loam_velodyne/src/lib/ScanRegistration.cpp:33:
/home/harsh/loam_ws/src/loam_velodyne/include/loam_velodyne/common.h:38:45: fatal error: pcl_conversions/pcl_conversions.h: No such file or directory
#include <pcl_conversions/pcl_conversions.h>

^
compilation terminated.
In file included from /home/harsh/loam_ws/src/loam_velodyne/include/loam_velodyne/ScanRegistration.h:37:0,
from /home/harsh/loam_ws/src/loam_velodyne/include/loam_velodyne/MultiScanRegistration.h:37,
from /home/harsh/loam_ws/src/loam_velodyne/src/lib/MultiScanRegistration.cpp:33:
/home/harsh/loam_ws/src/loam_velodyne/include/loam_velodyne/common.h:38:45: fatal error: pcl_conversions/pcl_conversions.h: No such file or directory
#include <pcl_conversions/pcl_conversions.h>
^
compilation terminated.
make[2]: *** [loam_velodyne/src/lib/CMakeFiles/loam.dir/ScanRegistration.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [loam_velodyne/src/lib/CMakeFiles/loam.dir/MultiScanRegistration.cpp.o] Error 1
make[1]: *** [loam_velodyne/src/lib/CMakeFiles/loam.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j2 -l2" failed

I am using ROS-JADE and Ubuntu 14.0 .

Thank You

@LimaKilo
Copy link

LimaKilo commented May 23, 2018

On my system (ROS kinetic, Ubuntu 16.04) building failed with

/catkin_ws/src/loam_velodyne/src/lib/LaserOdometry.cpp:33:
/usr/include/pcl-1.7/pcl/impl/point_types.hpp:46:22: fatal error: Eigen/Core: No such file or directory

and some more Eigen-related "no such file"-errors. In the loam package's CMakeLists.txt I found that

include_directories(
include
${EIGEN3_INCLUDE_DIR}

is commented out by default. Uncommenting this allowed me to build it. On my other system, it compiled fine without changing this line.
Is there a reason that line is commented out?

@brunoeducsantos
Copy link

Hey,
Is it possible to build the map from LOAM to octomap?
I tried using octomap in ROS but the map is stored on the rviz. Any suggestions @laboshinl?
Thanks in advance,
Bruno

@brunoeducsantos
Copy link

Hey, How can I build a single 3d point cloud map using LOAM?

@laizwithzed
Copy link

Hi everyone,
I see two Odometry topics when I launch loam_velodyne with a bag file in RViz: /aft_mapped_to_init and /laser_odom_to_init. I'd like to understand what they are displaying and the role of each of these topics in the mapping process. Could somebody shed some light on this?
Thanks in advance!

@WaveLet8
Copy link

I want to know which point to parse the PCAP source cloudpoint and advertise it?

@tuloski
Copy link

tuloski commented Jul 31, 2018

Hi, is the implementation following exactly the LOAM algorithm by Zhang or it differs somehow?

@Rolanding
Copy link

@Shantnu12345 Could you post your modified file? I also want to visualize the fully registered map in RVIZ and save it. Thanks a lot.

@elahea2020
Copy link

elahea2020 commented Aug 21, 2018

@Rolanding How do you save the final point cloud ( I want to save it as pcd)?
Also, RViz does not display some of my dataset that are in bag format, does anybody have any idea what might be the source of issue?
Thanks

@Rolanding
Copy link

@elahea2020 I haven't solved this problem yet. LOAM can't show the complete registered point cloud in RVIZ. And now I'm trying to read the code, hopefully to solve it. If I found the answer, I will post it here.

@Rolanding
Copy link

@elahea2020 Unfortunately, I have some important things to do at the moment.. After I finish these things, I will start modifying the source code.

@MontyTHall
Copy link

MontyTHall commented Aug 21, 2018

Can anybody explain in LaserOdometry - specifically - how the equations la, lb, lc, for edges (lines 607-621), pa-pd for planes (lines 731 - 737) and finally the jacobian arx - atz (line 802 - 855) is computed? He computes "coeff" from edges and planes and uses that in computing the jacobian. However, it looks like it was computer generated. I figure if I can understand this, LaserMapping shouldn't be so bad.

@victoriaPierce
Copy link

When I run catkin_make -DCMAKE_BUILD_TYPE=Release , this error occurs:
/home/victoria/loam/catkin_ws/src/loam_velodyne/src/lib/LaserMapping.cpp: In member function ‘virtual bool loam::LaserMapping::setup(ros::NodeHandle&, ros::NodeHandle&)’:
/home/victoria/loam/catkin_ws/src/loam_velodyne/src/lib/LaserMapping.cpp:149:28:
error: ‘downSizeFilterMap’ was not declared in this scope
downSizeFilterMap().setLeafSize(fParam, fParam, fParam);
^
loam_velodyne/src/lib/CMakeFiles/loam.dir/build.make:182: recipe for target 'loam_velodyne/src/lib/CMakeFiles/loam.dir/LaserMapping.cpp.o' failed
make[2]: *** [loam_velodyne/src/lib/CMakeFiles/loam.dir/LaserMapping.cpp.o] Error 1
CMakeFiles/Makefile2:2376: recipe for target 'loam_velodyne/src/lib/CMakeFiles/loam.dir/all' failed
make[1]: *** [loam_velodyne/src/lib/CMakeFiles/loam.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j1 -l1" failed
Have you met this problem?
Thanks

@adishavit
Copy link
Contributor

adishavit commented Aug 24, 2018 via email

@GarethZhang
Copy link

Hi @Xiangzhaohong @StefanGlaser ,
Did you find a way to output a point cloud with LOAM with correct intensity value?
Thanks!

@w4rlock999
Copy link

@laboshinl a simple question, how do you show the a completed map from nsh_indoor_outdoor.bag dataset in ccViewer. Do you convert the .bag from the velodyne_cloud_registered topic ? or how?

@al-aminrahman
Copy link

al-aminrahman commented Nov 25, 2018

after installing the loam_velodyne , I have tested the code and it plays fine and opens the rviz viewer with PCAP file.
roslaunch loam_velodyne loam_velodyne.launch
roslaunch velodyne_pointcloud VLP16_points.launch pcap:="/home/laboshinl/Downloads/velodyne.pcap"

But, when I'm trying to register the .bag file with ....(different terminal for each line)
roslaunch velodyne_pointcloud VLP16_points.launch
rosbag record -o file.pcap /velodyne_cloud_registered
rosbag play /home/lidar/sub3.bag
roslaunch loam_velodyne loam_velodyne.launch

It gives me error on loading ...
[loam_velodyne.launch] is neither a launch file in package [loam_velodyne] nor is [loam_velodyne] a launch file name
The traceback for the exception was written to the log file

Thanks in advance :)

Correction: I did sourced the .bash file.

@hierarch41
Copy link

I have encountered this problem. Does anyone know why?
$ roslaunch loam_velodyne loam_velodyne.launch
... logging to /home/hierarch41/.ros/log/d91f9dca-f57d-11e8-9ccb-8c164507fb3b/roslaunch-hierarch41-RESCUER-R720-15IKBM-24797.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://hierarch41-RESCUER-R720-15IKBM:35341/

SUMMARY

PARAMETERS

  • /rosdistro: kinetic
  • /rosversion: 1.12.14

NODES
/
laserMapping (loam_velodyne/laserMapping)
laserOdometry (loam_velodyne/laserOdometry)
rviz (rviz/rviz)
scanRegistration (loam_velodyne/scanRegistration)
transformMaintenance (loam_velodyne/transformMaintenance)

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

setting /run_id to d91f9dca-f57d-11e8-9ccb-8c164507fb3b
process[rosout-1]: started with pid [24820]
started core service [/rosout]
/opt/ros/kinetic/lib/python2.7/dist-packages/roslib/packages.py:447: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
if resource_name in files:
ERROR: cannot launch node of type [loam_velodyne/scanRegistration]: can't locate node [scanRegistration] in package [loam_velodyne]
ERROR: cannot launch node of type [loam_velodyne/laserOdometry]: can't locate node [laserOdometry] in package [loam_velodyne]
ERROR: cannot launch node of type [loam_velodyne/laserMapping]: can't locate node [laserMapping] in package [loam_velodyne]
ERROR: cannot launch node of type [loam_velodyne/transformMaintenance]: can't locate node [transformMaintenance] in package [loam_velodyne]
process[rviz-6]: started with pid [24837]

@zj611
Copy link

zj611 commented Apr 1, 2019

Dataset is unavailable~~~The link seems invalid~
http://www.frc.ri.cmu.edu/~jizhang03/Datasets/

@hemangchawla
Copy link

hemangchawla commented May 22, 2019

While the LOAM implementation works great for setups where the LiDAR is placed horizontally, it gives weird results for situation where the LiDAR is placed at a certain pitch. Could you please suggest what changes need to be made to make it work for a tilted setup?

@shuhilya
Copy link

@laboshinl
Good day)
The project work very well, but now I have some additional wishes. I am going to find place in code, where pcad-data come from "roslaunch velodyne_pointcloud" and after touch from it some additional information like timestamp and other. Can you help me, please?

@fawadahm
Copy link

@hemangchawla ; did you have any luck on getting LOAM to work with a titled setup? I tried experimenting with using the LiDAR at 45 degrees. It works well outdoors because you have a diversity of features given that the LiDAR is at least 6 feet above the ground. Anything less than that, it doesn't work so well

@jingshaojing
Copy link

You should compile velodyne driver
https://github.com/ros-drivers/velodyne/tree/master/velodyne_pointcloud

How can I compile velodyne driver, when I click the link,there are some code?

@lidongxu111
Copy link

I want to get the key release event in rviz::Tool class

but the function processKeyEvent can only get pressed key event.

Is there any way to get released key event?

@LeeSang705
Copy link

HI I am student studying lidar scanning in Korea. It is my first time studying ROS. I have some problem running the code.

i cannot get any visualization of point cloud in rviz when i do rosbag play.
Also I get this error message :

[multiScanRegistration-1] process has died [pid 5040, exit code -11, cmd /home/cau/catkin_ws/devel/lib/loam_velodyne/multiScanRegistration /multi_scan_points:=/velodyne_points __name:=multiScanRegistration __log:=/home/cau/.ros/log/b7fc1dc2-5783-11ee-9dff-a74c89350a67/multiScanRegistration-1.log].
log file: /home/cau/.ros/log/b7fc1dc2-5783-11ee-9dff-a74c89350a67/multiScanRegistration-1*.log

Can anyone tell me how to solve this problem ?

@soumya997
Copy link

@LeeSang705 this is the answer #71 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests