laboshinl / loam_velodyne Goto Github PK
View Code? Open in Web Editor NEWLaser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar.
Home Page: http://wiki.ros.org/loam_velodyne
License: Other
Laser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar.
Home Page: http://wiki.ros.org/loam_velodyne
License: Other
Hello!
Is colorization of the point cloud possible with a camera? How to achieve this?
Thank you.
hi - possible to use the LOAM with Aerial Multicopter/ drone?
Hi,
Does anyone know any parameters that can be changed to improve point cloud quality. I am mainly working with large indoor spaces and am using the LOAM package with an IMU connected.
Thank you,
Hey! Everyone.I have a problem about using the IMU.
Using the code stated in https://github.com/laboshinl/loam_velodyne/ and then run the gates_oscillating_motion.bag,but the result is fuzzy and can not get the results like the demo in ROS wiki.
Anything wrong ?
Thanks!
I'm trying to understand the order of operations for the ego-motion.
Conceptually or geometrically it is supposed to move/transform each point forward based on the solved transform by an amount [=time] proportional to the difference between each point's sampling time and total scan-period. I understand this geometrically.
I do not understand what each of the rotations and translations do and why they are performed in the order that they have. Can someone explain to me the flow of LaserOdometry::transformToEnd()?
Hi,
The direction of motion for my vehicle is in the Z axis as per loam. I do not know why. I have enclosed two screen shots of the LOAM. It directly starts perpendicular to the grid in RVIZ.
You can see that the LOAM considers the vehicle to be moving in the Z axis. Is there any way to alter this? When I just play the data (PCAP file) with the velodyne driver, the direction of motion is in the X axis.
I could rotate the final pointcloud, but I will also have to rotate the odometry in that case. I was wondering if this is an issue with my data or it is an issue with LOAM and if so, is there a way to fix it in the code.
I would like to rotate the axis to the general ROS convention. (X forward, Z upwards). This is required for path planning. I wanted to know which part of the code I should work with to change the orientation as even the input pointcloud is rotated in LOAM.
Thanks!
Is there any way to export the data or is just for visualization?. By the way, works great.
Hi Folks,
Thank you so much for make contributions to the LOAM code!
I think the first line in this function is to calculate the distance shift from the first point to the current point in a scan period. So it should be imuShiftFromStartXCur = imuShiftXCur - imuShiftXStart. But there is a imuVeloXStart * pointTime behind them. I am confused about this.
Does anyone meets the problem when build a big outdoor map? When I build a map with a size of 3km*3km, loam can only build a fixed-size map and this map less than actual size of map. Where can I modify the code to make it?
@laboshinl first of all, please remember that my issues/complains are my way to tell you "thank for your code, let me show you my appreciation by contributing to it".
The whole code is full of hard coded numbers that represent either time, distance in meters, squared_distance or integer numbers.
An example is to use CURVATURE_REGION_SIZE as shown here.
StefanGlaser@528368f
Hi
I want to use LOAM for it's odometry output.
So far I've tried to record the three odomertry topics:
did anyone tried to use these topics?
Hi,
I noticed that you are using OpenCV just to do simple math operations on matrices.
I would warmly suggest to use Eigen instead, to improve consistency, readability and reduce dependencies. For reference https://eigen.tuxfamily.org/dox/group__QR__Module.html
As well there are a lot of long mathematical calculations like PluginIMURotation and AccumulateRotation which are totally cryptic. Which mathematical operation are they supposed to perform?
Can they be refactored in terms of consecutive single axis rotations to improve readability?
Hi,
with the recent PR I wanted to test that there could be a considerable improve in execution time avoiding useless calculations of cos and sin.
Introducing rotateX, rotateY and rotateZ, I believe that the code become more readable.
But thinking twice, I think that the way I would do it myself would be to create an affine transform once and use it for each of the points, instead of doing multiple, simple rotations and translations.
Before doing this change, I wanted to get some feedback from the other users and the author...
I have built the loam project successfully.And when I launch in ros kinetic ,it's successful too. But when I play the bag it's error in my computer.such as:
... logging to /home/lmt/.ros/log/d9401fc2-77a2-11e8-a910-902b3433bbc4/roslaunch-lmt-8349.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://lmt:33200/
PARAMETERS
NODES
/
laserMapping (loam_velodyne/laserMapping)
laserOdometry (loam_velodyne/laserOdometry)
multiScanRegistration (loam_velodyne/multiScanRegistration)
rviz (rviz/rviz)
transformMaintenance (loam_velodyne/transformMaintenance)
auto-starting new master
process[master]: started with pid [8360]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to d9401fc2-77a2-11e8-a910-902b3433bbc4
process[rosout-1]: started with pid [8373]
started core service [/rosout]
process[multiScanRegistration-2]: started with pid [8382]
process[laserOdometry-3]: started with pid [8389]
process[laserMapping-4]: started with pid [8392]
process[transformMaintenance-5]: started with pid [8393]
process[rviz-6]: started with pid [8409]
[ INFO] [1529840195.272982324]: Set scanPeriod: 0.1
[ INFO] [1529840195.306128817]: Set VLP-16 scan mapper.
0x1c04540 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x1069d50) ): Attempt to set a screen on a child window.
0x1bfa9d0 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x1069d50) ): Attempt to set a screen on a child window.
0x1c02c00 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x1069d50) ): Attempt to set a screen on a child window.
0x1c06060 void QWindowPrivate::setTopLevelScreen(QScreen*, bool) ( QScreen(0x1069d50) ): Attempt to set a screen on a child window.
[multiScanRegistration-2] process has died [pid 8382, exit code -11, cmd /home/lmt/loam_ws/devel/lib/loam_velodyne/multiScanRegistration /multi_scan_points:=/velodyne_points __name:=multiScanRegistration __log:=/home/lmt/.ros/log/d9401fc2-77a2-11e8-a910-902b3433bbc4/multiScanRegistration-2.log].
log file: /home/lmt/.ros/log/d9401fc2-77a2-11e8-a910-902b3433bbc4/multiScanRegistration-2*.log
And then I put this project in other computer It is successful. I can't find the reason of this failure.Why it is fail?
Did anyone meet this problem? I use loam with HDL64.pacp dataset and can't solve it.
i am working on loam using this tutorial
https://github.com/daobilige-su/loam_velodyne
i successfully downloaded the loam package but when i compile the package it gives me cmake error. I am working with VLP-16 and Kinetic ROS.
here is the error log
ubuntu@ubiquityrobot:$ cd /home/ubuntu/catkin_ws/catkin_ws$ catkin_make
ubuntu@ubiquityrobot:
Base path: /home/ubuntu/catkin_ws
Source space: /home/ubuntu/catkin_ws/src
Build space: /home/ubuntu/catkin_ws/build
Devel space: /home/ubuntu/catkin_ws/devel
Install space: /home/ubuntu/catkin_ws/install
-- Using CATKIN_DEVEL_PREFIX: /home/ubuntu/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/ubuntu/catkin_workspace/devel;/opt/ros/kinetic
-- This workspace overlays: /home/ubuntu/catkin_workspace/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/ubuntu/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.8
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 7 packages in topological order:
-- ~~ - fiducial_follow
-- ~~ - velodyne (metapackage)
-- ~~ - velodyne_msgs
-- ~~ - loam_velodyne
-- ~~ - velodyne_driver
-- ~~ - velodyne_laserscan
-- ~~ - velodyne_pointcloud
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'fiducial_follow'
-- ==> add_subdirectory(demos/fiducial_follow)
-- +++ processing catkin metapackage: 'velodyne'
-- ==> add_subdirectory(velodyne/velodyne)
-- +++ processing catkin package: 'velodyne_msgs'
-- ==> add_subdirectory(velodyne/velodyne_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- velodyne_msgs: 2 messages, 0 services
-- +++ processing catkin package: 'loam_velodyne'
-- ==> add_subdirectory(loam_velodyne)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- thread
-- date_time
-- iostreams
-- serialization
-- chrono
-- atomic
-- regex
-- Checking for module 'libopenni2'
-- No package 'libopenni2' found
-- Could NOT find OpenNI2 (missing: OPENNI2_LIBRARY OPENNI2_INCLUDE_DIRS)
** WARNING ** io features related to openni2 will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
"/usr/lib/arm-linux-gnueabihf/libvtkRenderingPythonTkWidgets.so"
but this file does not exist. Possible reasons include:
-- The imported target "vtk" references the file
"/usr/bin/vtk"
but this file does not exist. Possible reasons include:
-- Checking for module 'libopenni2'
-- No package 'libopenni2' found
-- Could NOT find OpenNI2 (missing: OPENNI2_LIBRARY OPENNI2_INCLUDE_DIRS)
** WARNING ** visualization features related to openni2 will be disabled
-- looking for PCL_COMMON
-- looking for PCL_OCTREE
-- looking for PCL_IO
-- looking for PCL_KDTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_FILTERS
-- looking for PCL_FEATURES
-- looking for PCL_KEYPOINTS
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_OUTOFCORE
-- looking for PCL_SURFACE
-- looking for PCL_TRACKING
-- looking for PCL_REGISTRATION
-- looking for PCL_RECOGNITION
-- looking for PCL_APPS
-- Could NOT find PCL_APPS (missing: PCL_APPS_LIBRARY)
-- looking for PCL_PEOPLE
CMake Error: File /home/ubuntu/catkin_ws/src/loam_velodyne/tests/loam.test.in does not exist.
CMake Error at loam_velodyne/CMakeLists.txt:51 (configure_file):
configure_file Problem configuring file
-- +++ processing catkin package: 'velodyne_driver'
-- ==> add_subdirectory(velodyne/velodyne_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- thread
-- chrono
-- system
-- date_time
-- atomic
-- +++ processing catkin package: 'velodyne_laserscan'
-- ==> add_subdirectory(velodyne/velodyne_laserscan)
-- +++ processing catkin package: 'velodyne_pointcloud'
-- ==> add_subdirectory(velodyne/velodyne_pointcloud)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- signals
-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:304: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
ubuntu@ubiquityrobot:~/catkin_ws$
@dimatura@evenator @laboshinl @facontidavide
I run the loam_velodyne according to the github page.
In first terminal
$ cd ~/catkin_ws/src/
$ git clone https://github.com/laboshinl/loam_velodyne.git
$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release
$ source ~/catkin_ws/devel/setup.bash
In second terminal
$ roslaunch loam_velodyne loam_velodyne.launch
$ rosbag play ~/Downloads/velodyne.bag
and then ,show the follow error:
[laserMapping-3] process has died [pid 29080, exit code -11, cmd /home/yong/catkin_ws/devel/lib/loam_velodyne/laserMapping __name:=laserMapping __log:=/home/yong/.ros/log/caae77aa-ffda-11e7-b7e2-1002b5cc091b/laserMapping-3.log]. log file: /home/yong/.ros/log/caae77aa-ffda-11e7-b7e2-1002b5cc091b/laserMapping-3*.log
I use ubuntu14.04 and PCL 1.8.
I found it caused by this code in LaserMapping.cpp:
matX = matAtA.colPivHouseholderQr().solve(matAtB);
Could you tell me how to solve it.
Hi,
I'm working with an actuated 2D LIDAR, and I was wondering if it's within your plans to integrate the variants of LOAM that work with this type of sensor: loam_back_and_forth and loam_continuous.
If the answer is yes, I would be greatly interested in contributing.
Kind regards,
Yoshua
i am working on loam using this tutorial
https://github.com/daobilige-su/loam_velodyne
i successfully downloaded the loam package but when i compile the package it gives me cmake error. I am working with VLP-16 and Kinetic ROS. Here is the Error log.
ubuntu@ubiquityrobot:$ cd /home/ubuntu/catkin_ws/catkin_ws$ catkin_make
ubuntu@ubiquityrobot:
Base path: /home/ubuntu/catkin_ws
Source space: /home/ubuntu/catkin_ws/src
Build space: /home/ubuntu/catkin_ws/build
Devel space: /home/ubuntu/catkin_ws/devel
Install space: /home/ubuntu/catkin_ws/install
-- Using CATKIN_DEVEL_PREFIX: /home/ubuntu/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/ubuntu/catkin_workspace/devel;/opt/ros/kinetic
-- This workspace overlays: /home/ubuntu/catkin_workspace/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/ubuntu/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.8
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 7 packages in topological order:
-- ~~ - fiducial_follow
-- ~~ - velodyne (metapackage)
-- ~~ - velodyne_msgs
-- ~~ - loam_velodyne
-- ~~ - velodyne_driver
-- ~~ - velodyne_laserscan
-- ~~ - velodyne_pointcloud
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'fiducial_follow'
-- ==> add_subdirectory(demos/fiducial_follow)
-- +++ processing catkin metapackage: 'velodyne'
-- ==> add_subdirectory(velodyne/velodyne)
-- +++ processing catkin package: 'velodyne_msgs'
-- ==> add_subdirectory(velodyne/velodyne_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- velodyne_msgs: 2 messages, 0 services
-- +++ processing catkin package: 'loam_velodyne'
-- ==> add_subdirectory(loam_velodyne)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- system
-- filesystem
-- thread
-- date_time
-- iostreams
-- serialization
-- chrono
-- atomic
-- regex
-- Checking for module 'libopenni2'
-- No package 'libopenni2' found
-- Could NOT find OpenNI2 (missing: OPENNI2_LIBRARY OPENNI2_INCLUDE_DIRS)
** WARNING ** io features related to openni2 will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
"/usr/lib/arm-linux-gnueabihf/libvtkRenderingPythonTkWidgets.so"
but this file does not exist. Possible reasons include:
-- The imported target "vtk" references the file
"/usr/bin/vtk"
but this file does not exist. Possible reasons include:
-- Checking for module 'libopenni2'
-- No package 'libopenni2' found
-- Could NOT find OpenNI2 (missing: OPENNI2_LIBRARY OPENNI2_INCLUDE_DIRS)
** WARNING ** visualization features related to openni2 will be disabled
-- looking for PCL_COMMON
-- looking for PCL_OCTREE
-- looking for PCL_IO
-- looking for PCL_KDTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_FILTERS
-- looking for PCL_FEATURES
-- looking for PCL_KEYPOINTS
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_OUTOFCORE
-- looking for PCL_SURFACE
-- looking for PCL_TRACKING
-- looking for PCL_REGISTRATION
-- looking for PCL_RECOGNITION
-- looking for PCL_APPS
-- Could NOT find PCL_APPS (missing: PCL_APPS_LIBRARY)
-- looking for PCL_PEOPLE
CMake Error: File /home/ubuntu/catkin_ws/src/loam_velodyne/tests/loam.test.in does not exist.
CMake Error at loam_velodyne/CMakeLists.txt:51 (configure_file):
configure_file Problem configuring file
-- +++ processing catkin package: 'velodyne_driver'
-- ==> add_subdirectory(velodyne/velodyne_driver)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- thread
-- chrono
-- system
-- date_time
-- atomic
-- +++ processing catkin package: 'velodyne_laserscan'
-- ==> add_subdirectory(velodyne/velodyne_laserscan)
-- +++ processing catkin package: 'velodyne_pointcloud'
-- ==> add_subdirectory(velodyne/velodyne_pointcloud)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- signals
-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:304: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
ubuntu@ubiquityrobot:~/catkin_ws$
When I try to add an IMU topic it doesn't seem to change the output.
Anyone get this working with an IMU?
Thanks,
Matt
Hi,
I read Dr. Zhang's paper and it says that they had planned to implement loop closure. I was wondering if this package has it implemented.
Thank you,
Hi. Just a simple question.
What if I'd like to use this package with a simulated vlp16 in gazebo?
Or is it just for playback .bag files ?
Thanks !
It is known that V-LOAM is the best on the KITTI dataset. Since it's based on LOAM, it inspires to improve the last. How can we do that? What improvements can be added to this algorithm? What weaknesses does it have?
Hi everyone,
I am quite a newbie in this field, so my question could have a simple answer. So, my question where is transformation from IMU to LIDAR reference system?
Thanks,
Bruno
@laboshinl
I have successfully implemented according to your steps.
But when I connect the VLP-16 Lidar (roslaunch velodyne_pointcloud VLP16_points.launch _ip_address:=192.168.1.201),
Usually happen the following error,
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[scanRegistration-2] process has died [pid 13615, exit code -11, cmd /home/ctwu/ROS_Code/catkin_loam/devel/lib/loam_velodyne/scanRegistration __name:=scanRegistration log:=/home/ctwu/.ros/log/1f7faff2-5d33-11e6-98e2-74d02b61e376/scanRegistration-2.log].
log file: /home/ctwu/.ros/log/1f7faff2-5d33-11e6-98e2-74d02b61e376/scanRegistration-2.log
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(the scanRegistration-2.log can't find in the folder)
started roslaunch server http://lin-drive-tx:36969/
PARAMETERS
NODES
/
laserMapping (loam_velodyne/laserMapping)
laserOdometry (loam_velodyne/laserOdometry)
multiScanRegistration (loam_velodyne/multiScanRegistration)
rviz (rviz/rviz)
transformMaintenance (loam_velodyne/transformMaintenance)
ROS_MASTER_URI=http://localhost:11311
ERROR: cannot launch node of type [loam_velodyne/multiScanRegistration]: can't locate node [multiScanRegistration] 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-5]: started with pid [12604]
please how can I resolve this issue?
I want to know the mapping algorithm principle,can you give me some technical data or books?
Hello! @laboshinl
Thanks for your repository,
I'd build all of your repository and attach my VLP-16 with ros velodyne driver.
And I'd like to make some 3D model with surface like in your readme.
but with velodyne_launch. I can only see some pointclouds from VLP with SLAM.
(also It looses point from faraway, or there are limits for saved pointclouds number?)
Please tell me how to make 3D model with surfaces like you
or just point clouds as file
Thankyou
The code uses the convention of naming members with an _
prefix: _memberName
.
Such names are "are reserved and may not be declared in a program, doing so invokes undefined behavior".
Such members should be renamed to e.g. memberName_
.
Update:
Actually, members starting with _
are technically OK, but are generally frowned upon, because they may lead to erroneously using UB forms:
In C++,
- identifiers starting with an underscore, followed by a capital character
- identifiers having two consecutive underscores anywhere
- identifiers in the global namespace starting with an underscore
are reserved to the implementation.... Rather than trying to remember these rules, many simply do not use identifiers starting with an underscore. That's why the trailing underscore was invented.
Hi,
I am using LOAM to mapping outdoors with a VLP16. The problem is when I use octomap_server package to make the map reconstruction, it seems the combination of point clouds is not matching correctly. Could it be a transformation problem with LOAM? Have you noticed this issue?
Thanks,
Bruno
Hi,
I think that it could be extremely useful to detach LOAM from ROS, such that:
There was substantial work in this direction from users @adrelino and @sebdi, contained in this repo. I'm also currently working on this for my thesis, but it may take some time until I submit a pull request.
What do you think? Would anyone be interested in collaborating for achieving this?
Kind regards,
Yoshua Nava
The README.md file links to a Dropbox page that is not available.
Hello.
I'm trying to build a velodyne driver for https://github.com/ros-drivers/velodyne.git and the following error occurs :
I would like to ask if there is a way to resolve this part.
Thank you
[55 %] Building CXX object velodyne_driversr srcslib_CMakeFelesvelodyne_input.direction.cc.
[57 %] Built-target multI- iSca nRegistration
[59 %] Build target velodyne_laserscan
In file inserted from /home/sangwook/catkin_ws/src/velodyne/velodyne_driver/src/lib/input.cc:34:0:
/ homesangwookcatkin_wssr sr cbelodyne_driverincludeevelotch_drivervelodyne_drivership:37:driversangwooke / input h :
Compilation-terminated
Velodynevelodyne_driversparrylib_CMakeFilesverning_direction.director.composite:62:recipe for target
Make[2]****[velodyne_driversr srikeFliesvelodyne_inpuction.direction.ccc.] Error 1
CMakeFilesMakefile2:5244:recipe for target ' velodynefarodyne_driversriverallib_CMakeFiles_velody'.
Make[1] : *** [velodynevelodyne_driversr srakeFelesvelodyne_inpuction.direction2]
Make[1] : *** Waiting for unfinisheds ....
[62 %] Build target velodyne_puck_decoder
[64 %] Build target velodyne_puck_driver
[64 %] Build target velodyne_msg_generate_messages
Makefile:138 : recise for target ' all ' failed
Make : *** [all] Error 2
Invoking " make - j- l " failed
Hi,
I'm currently trying to improve the implementation of this algorithm. As part of my refactorings, I changed the calculation of the ring start and end indices. They are now calculated by accumulating the sizes of the individual ring clouds. After doing so, I noticed a slight difference in the results and took a closer look again.
I've added
ROS_INFO("Scan count changed to: %d", scanCount);
after line 384 in scanRegistration.cpp to output the scanCount variable each time it changes.
While for some scans, the output matches the expected sequence, namely:
[ INFO] [1511533007.272980959]: Scan count changed to: 0
[ INFO] [1511533007.273194307]: Scan count changed to: 1
[ INFO] [1511533007.273374062]: Scan count changed to: 2
[ INFO] [1511533007.273552746]: Scan count changed to: 3
[ INFO] [1511533007.273726436]: Scan count changed to: 4
[ INFO] [1511533007.273903323]: Scan count changed to: 5
[ INFO] [1511533007.274091778]: Scan count changed to: 6
[ INFO] [1511533007.274272015]: Scan count changed to: 7
[ INFO] [1511533007.274449377]: Scan count changed to: 8
[ INFO] [1511533007.274637479]: Scan count changed to: 9
[ INFO] [1511533007.274820746]: Scan count changed to: 10
[ INFO] [1511533007.275001383]: Scan count changed to: 11
[ INFO] [1511533007.275172558]: Scan count changed to: 12
[ INFO] [1511533007.275348314]: Scan count changed to: 13
[ INFO] [1511533007.275523124]: Scan count changed to: 14
[ INFO] [1511533007.275698830]: Scan count changed to: 15
some other scans show the following output:
[ INFO] [1511533006.468410449]: Scan count changed to: 0
[ INFO] [1511533006.468714465]: Scan count changed to: 1
[ INFO] [1511533006.468884878]: Scan count changed to: 0
[ INFO] [1511533006.468991116]: Scan count changed to: 1
[ INFO] [1511533006.469013792]: Scan count changed to: 2
[ INFO] [1511533006.469197859]: Scan count changed to: 1
[ INFO] [1511533006.469282555]: Scan count changed to: 2
[ INFO] [1511533006.469309297]: Scan count changed to: 3
[ INFO] [1511533006.469491094]: Scan count changed to: 2
[ INFO] [1511533006.469575016]: Scan count changed to: 3
[ INFO] [1511533006.469601585]: Scan count changed to: 4
[ INFO] [1511533006.469782444]: Scan count changed to: 3
[ INFO] [1511533006.469866047]: Scan count changed to: 4
[ INFO] [1511533006.469892284]: Scan count changed to: 5
[ INFO] [1511533006.470089060]: Scan count changed to: 4
[ INFO] [1511533006.470172099]: Scan count changed to: 5
[ INFO] [1511533006.470200482]: Scan count changed to: 6
[ INFO] [1511533006.470382239]: Scan count changed to: 5
[ INFO] [1511533006.470465808]: Scan count changed to: 6
[ INFO] [1511533006.470491802]: Scan count changed to: 7
[ INFO] [1511533006.470676708]: Scan count changed to: 6
[ INFO] [1511533006.470759771]: Scan count changed to: 7
[ INFO] [1511533006.470788122]: Scan count changed to: 8
[ INFO] [1511533006.470968738]: Scan count changed to: 7
[ INFO] [1511533006.471052407]: Scan count changed to: 8
[ INFO] [1511533006.471078689]: Scan count changed to: 9
[ INFO] [1511533006.471260493]: Scan count changed to: 8
[ INFO] [1511533006.471342678]: Scan count changed to: 9
[ INFO] [1511533006.471369029]: Scan count changed to: 10
[ INFO] [1511533006.471548978]: Scan count changed to: 9
[ INFO] [1511533006.471633309]: Scan count changed to: 10
[ INFO] [1511533006.471661731]: Scan count changed to: 11
[ INFO] [1511533006.471837152]: Scan count changed to: 10
[ INFO] [1511533006.471920503]: Scan count changed to: 11
[ INFO] [1511533006.471946920]: Scan count changed to: 12
[ INFO] [1511533006.472128592]: Scan count changed to: 11
[ INFO] [1511533006.472212757]: Scan count changed to: 12
[ INFO] [1511533006.472239363]: Scan count changed to: 13
[ INFO] [1511533006.472416895]: Scan count changed to: 12
[ INFO] [1511533006.472498789]: Scan count changed to: 13
[ INFO] [1511533006.472524533]: Scan count changed to: 14
[ INFO] [1511533006.472704906]: Scan count changed to: 13
[ INFO] [1511533006.472787776]: Scan count changed to: 14
[ INFO] [1511533006.472814264]: Scan count changed to: 15
[ INFO] [1511533006.472992890]: Scan count changed to: 14
[ INFO] [1511533006.473074925]: Scan count changed to: 15
As a result, the calculated scan start and end indices are sometimes not corresponding to the actual scan ring indices in the combined cloud. This even sometimes results in the scenario where the start index of the last ring is grater than its end index (since the end index is set explicitly afterwards).
The problem seems to originate in the calculation of the relative time of a point based on its angle, respectively the determination of the start and end angles. Tests have shown that (for a VLP-16) the scan range per received input cloud is slightly more than 360 degrees. This in combination with other issues in determining the start and end orientation probably produces negative relative time values, causing the point to "hop" to its predecessor ring.
This issue translates over to the lidarOdometry component, as it also uses the intensities of the points. However, I'm not sure yet about its implications there.
After fixing the scan start and end index calculation, the overall result is comparable, but slightly different. I can't tell if it's better or worse, yet.
Hi,
I found array size problem in scanRegistration.cpp.
In the code, 4 arrays has literal value 40000 was defined.
But VLP16's specs are horizontal resolution #0.1-0.4 degee and vertical 16 channels.
So I think max array size needs 3600 x 16 = 57000 at least.
Actually, It is often over 40000 (48000 nearly.), and memory broken with scanRegistration process died.
thanks.
lacho@ubuntu:/catkin_ws$ roslaunch velodyne_pointcloud VLP16_points.launch pcap:="/catkin_ws/data.pcap"
... logging to /home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/roslaunch-ubuntu-52119.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://ubuntu:33811/
PARAMETERS
NODES
/
velodyne_nodelet_manager (nodelet/nodelet)
velodyne_nodelet_manager_cloud (nodelet/nodelet)
velodyne_nodelet_manager_driver (nodelet/nodelet)
auto-starting new master
process[master]: started with pid [52131]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to fec73608-2c2c-11e7-8c13-000c29e7372c
process[rosout-1]: started with pid [52144]
started core service [/rosout]
process[velodyne_nodelet_manager-2]: started with pid [52151]
process[velodyne_nodelet_manager_driver-3]: started with pid [52158]
process[velodyne_nodelet_manager_cloud-4]: started with pid [52163]
[FATAL] [1493395744.252682183]: Error opening Velodyne socket dump file. [FATAL] [1493395744.663492067]: Failed to load nodelet '/velodyne_nodelet_manager_driver
of type velodyne_driver/DriverNodelet
to manager velodyne_nodelet_manager' [velodyne_nodelet_manager-2] process has died [pid 52151, exit code -11, cmd /opt/ros/indigo/lib/nodelet/nodelet manager __name:=velodyne_nodelet_manager __log:=/home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/velodyne_nodelet_manager-2.log]. log file: /home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/velodyne_nodelet_manager-2*.log [velodyne_nodelet_manager_driver-3] process has died [pid 52158, exit code 255, cmd /opt/ros/indigo/lib/nodelet/nodelet load velodyne_driver/DriverNodelet velodyne_nodelet_manager __name:=velodyne_nodelet_manager_driver __log:=/home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/velodyne_nodelet_manager_driver-3.log].** log file:
/home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/velodyne_nodelet_manager_driver-3*.log`
[velodyne_nodelet_manager_cloud-4] process has finished cleanly
log file: /home/pelacho/.ros/log/fec73608-2c2c-11e7-8c13-000c29e7372c/velodyne_nodelet_manager_cloud-4*.log
As also observed by @CansenJIANG @TopGunSnake @kamiyuanyang @nikitaporje the resulting map and position is drifting in Z-direction, which results in a bended map:
I want to build a big outdoor map by using the Loam. But in the rviz, it just show a fixed-size map. Actually all the points cloud still exist in the rviz but it just show the sub map around the car. So how to show the complete map? And further more, how to save the full map into a .PCD file, Thanks.
Hi all, I am trying to implement online 3D SLAM using the VLP-16 LiDAR how to I do this with LOAM without having to use rosbags or pcap files?
Hallow,I'm using LOAM now,it's so great! I have modified code with "modified on linux" and "add velodyne HDL64E support" The procedure has compiled successfully. But when I execute launch there is only one node(transformMaintenance) live.The terminal displays as follows:
[laserOdometry-3] restarting process process[laserOdometry-3]: started with pid [14995] [laserOdometry-3] process has died [pid 14995, exit code -11, cmd /home/rmy/loam64/devel/lib/loam_velodyne/laserOdometry __name:=laserOdometry __log:=/home/rmy/.ros/log/038a2858-612a-11e7-b1f8-002324502a96/laserOdometry-3.log]. log file: /home/rmy/.ros/log/038a2858-612a-11e7-b1f8-002324502a96/laserOdometry-3*.log
I don't know why,can you help me? please
Hi,
I am using this package to estimate the position of a car through a velodyne-16, but the trajectory (and the reconstructed point cloud) drift exponentially upward.
However, the rosbag that I recorded includes synchronized IMU data too, so how can add the imu data to the odometry process ?
Thank you
i am following this tutorial: https://github.com/aswinsarang/loam_velodyne-1
but when i run command catkin_make it give me the error Cmake Error: loam.test.in does not exists and configure file problem configuring file
Hello!
What is the process of loop closure the point cloud?
Do you use external loop closure technique?
The result has small drift from start to end.
Thank you.
I noticed that Loam_velodyne is open loop, i'm wondering if there is a way or any other packages out there to pull from to modify loam to make it closed loop as to better update current state of the robot. I was thinking instead of ROS package to close the loop using FPGA to pull from the sensors at the beam center extraction point on the LIDAR and to pair this with a feed-forward ANN and GA to update current state better. Execution speed would be our LIDAR's clock cycle, so if there is any way to close the loop along with concurrently running ANN and GA using our LIDAR it would be appreciated for some feedback.
We need to test and merge the following forks:
HDL32 https://github.com/smori/loam_velodyne/commit/774d5117ffc7662cd30ef831be9ce82b6985d5df
HDL64 https://github.com/YANG-H/loam_velodyne/commit/ba1d606d2ec62d48be484c28f71d8f29a08b9ab5
[vlp16, hdl32, hdl64] should be added as a param to .launch file
The current version of loam_velodyne has removed the IMU from the algorithm?
Hallo,I'm using LOAM now,it's so great! I have modified code with "modified on linux" and "add velodyne HDL64E support" The procedure has compiled successfully. But when I execute launch there is only one node(transformMaintenance) live.The terminal displays as follows:
[laserOdometry-3] restarting process process[laserOdometry-3]: started with pid [14995] [laserOdometry-3] process has died [pid 14995, exit code -11, cmd /home/rmy/loam64/devel/lib/loam_velodyne/laserOdometry __name:=laserOdometry __log:=/home/rmy/.ros/log/038a2858-612a-11e7-b1f8-002324502a96/laserOdometry-3.log]. log file: /home/rmy/.ros/log/038a2858-612a-11e7-b1f8-002324502a96/laserOdometry-3*.log
I don't know why,can you help me? please
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.