Giter VIP home page Giter VIP logo

scan_tools's Introduction

Laser scan tools for ROS

Overview

Laser scan processing tools. The meta-package contains:

  • laser_ortho_projector: calculates orthogonal projections of LaserScan messages

  • laser_scan_matcher: an incremental laser scan matcher, using Andrea Censi's Canonical Scan Matcher implementation. It downloads and installs Andrea Censi's Canonical Scan Matcher [1] locally.

  • laser_scan_sparsifier: takes in a LaserScan message and sparsifies it

  • laser_scan_splitter: takes in a LaserScan message and splits it into a number of other LaserScan messages

  • ncd_parser: reads in .alog data files from the New College Dataset [2] and broadcasts scan and odometry messages to ROS.

  • scan_to_cloud_converter: converts LaserScan to PointCloud messages.

Installing

Prerequisite

From binary (RECOMMENDED)

apt-get install ros-%ROS_DISTRO%-scan-tools

apt-get install ros-indigo-scan-tools        (Indigo)

From source

Following is an example with ROS Indigo.

  1. Create a catkin workspace and navigate to its source directory (e.g. ~/catkin_ws/src).

  2. In your Catkin workspace, download source and build with the following commands.

cd ~/catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/ccny-ros-pkg/scan_tools/indigo/.rosinstall
rosdep install --from-paths src --ignore-src --rosdistro indigo -r -y
catkin_make                (or any build commands available in ROS, e.g. `catkin build`)
source devel/setup.bash

More info

http://wiki.ros.org/scan_tools

References

[1] A. Censi, "An ICP variant using a point-to-line metric" Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2008

[2] M. Smith, I. Baldwin, W. Churchill, R. Paul, and P. Newman, The new college vision and laser data set, International Journal for Robotics Research (IJRR), vol. 28, no. 5, pp. 595599, May 2009.

scan_tools's People

Contributors

130s avatar ccny-ros-pkg avatar corot avatar daxtens avatar idryanov avatar k-okada avatar kartikmohta avatar miguelsdc avatar mikaelarguedas avatar tappan-at-git avatar

Stargazers

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

Watchers

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

scan_tools's Issues

Linking Bug

A linker called libutils-gold seems to cause the package not to compile. I have found one other report of this occuring

Error in scan matching

I got this error message

:err: 	: before trimming, only 47 correspondences.
:err: icp: ICP failed for some reason.

I don't know what causes it.

I want to install it from source for Noetic

I can install it from binary but I have to see the code and change somethings. When I install from source I receive an error:


/home/enis/catkin_ws/src/scan_tools-ros1/laser_scan_matcher/src/laser_scan_matcher.cpp: In member function ‘void scan_tools::LaserScanMatcher::processScan(laser_data*&, const ros::Time&)’:
/home/enis/catkin_ws/src/scan_tools-ros1/laser_scan_matcher/src/laser_scan_matcher.cpp:525:40: error: ‘f2b_kf_’ was not declared in this scope
  525 |       auto rotation = getLaserRotation(f2b_kf_);
      |                                        ^~~~~~~
Scanning dependencies of target laser_scan_splitter_nodelet
/home/enis/catkin_ws/src/scan_tools-ros1/laser_scan_matcher/src/laser_scan_matcher.cpp: In member function ‘Eigen::Matrix2f scan_tools::LaserScanMatcher::getLaserRotation(const tf::Transform&) const’:
/home/enis/catkin_ws/src/scan_tools-ros1/laser_scan_matcher/src/laser_scan_matcher.cpp:862:46: error: ‘laser_to_base_’ was not declared in this scope; did you mean ‘laser_from_base_’?
  862 |   tf::Transform laser_in_fixed = odom_pose * laser_to_base_;

Invoking "make -j8 -l8" failed

You have any idea how can i fix my problem?

[Maintenance]: Maintainer in need

Problem

I joined the maintenance of scan_tools repo when I was an active user and the maintainers back then seemed to be busy. Unfortunately I no longer am the user. AFAICT, other then-maintainers have not been active (checking in @ubuntuslave). So I'd call this repo is nearly unmaintained (I just made first releases into newer ROS distro #67 (comment), where I claim as unmaintained).

Discussion

Unless the current maintainers can be back active, I'd suggest calling for maintainership.

If no maintainer shows up, one thing to continue making the software alive is to register "Orphaned packages". With that, at least someone will continue making releases (review PRs, bugfix are not guaranteed IIUC).

package 'openni-dev' not found

In fact, I have installed libopenni-dev and libopenni2-dev, but it always said "package openni-dev not found".

my ros version: indigo

scan matcher flag to prevent pose/tf publishing on pose jumps?

I'm using laser scan matcher combined with odometry using robot_localization. In general works ok, but sometimes it does pose jumps without showing any error. This is different from issue #20: I don't experience that errors anymore. But jumps are by definition erroneous, as visual odometry must be continuous. So I propose to add a couple of parameters, for example min_jump_dist and min_jump_angle and ignore any pose update bigger than those values. Or alternatively, set a very big covariance proportional to the jump.

They can default to 0, meaning disable the feature.

What do you think? Make sense the idea?

[laser_scan_matcher] ROS Buildfarm build failure "fatal: unable to access 'https://github.com/AndreaCensi/csm.git/': Problem with the SSL CA cert"

Reported at #29 (comment).

Jenkins build fails http://jenkins.ros.org/job/ros-indigo-laser-scan-matcher_binarydeb_trusty_amd64/5/console when it tries to download csm from other github repo.

make -f CMakeFiles/Makefile2 all
make[3]: Entering directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
make -f CMakeFiles/csm_src.dir/build.make CMakeFiles/csm_src.dir/depend
make[4]: Entering directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
cd /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450 /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450 /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/CMakeFiles/csm_src.dir/DependInfo.cmake --color=
Scanning dependencies of target csm_src
make[4]: Leaving directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
make -f CMakeFiles/csm_src.dir/build.make CMakeFiles/csm_src.dir/build
make[4]: Entering directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
/usr/bin/cmake -E cmake_progress_report /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/CMakeFiles 3
[  9%] Creating directories for 'csm_src'
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/src
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/src
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/tmp
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/stamp
/usr/bin/cmake -E make_directory /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/src
/usr/bin/cmake -E touch /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/stamp/csm_src-mkdir
/usr/bin/cmake -E cmake_progress_report /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/CMakeFiles 4
[ 18%] Performing download step (git clone) for 'csm_src'
cd /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm && /usr/bin/cmake -P /tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu/csm/tmp/csm_src-gitclone.cmake
Cloning into 'src'...
fatal: unable to access 'https://github.com/AndreaCensi/csm.git/': Problem with the SSL CA cert (path? access rights?)
Cloning into 'src'...
fatal: unable to access 'https://github.com/AndreaCensi/csm.git/': Problem with the SSL CA cert (path? access rights?)
Cloning into 'src'...
fatal: unable to access 'https://github.com/AndreaCensi/csm.git/': Problem with the SSL CA cert (path? access rights?)
-- Had to git clone more than once:
          3 times.
CMake Error at tmp/csm_src-gitclone.cmake:40 (message):
  Failed to clone repository: 'https://github.com/AndreaCensi/csm.git'


make[4]: *** [csm/stamp/csm_src-download] Error 1
make[4]: Leaving directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
make[3]: *** [CMakeFiles/csm_src.dir/all] Error 2
make[3]: Leaving directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450/obj-x86_64-linux-gnu'
dh_auto_build: make -j1 returned exit code 2
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/tmp/buildd/ros-indigo-laser-scan-matcher-0.2.1-0trusty-20151019-0450'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
E: Failed autobuilding of package
W: no hooks of type C found -- ignoring
I: unmounting /var/cache/pbuilder/ccache filesystem
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
I: cleaning the build env 
I: removing directory /var/cache/pbuilder/build//21067 and its subdirectories
Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
Build step 'Execute shell' marked build as failure
Build step 'Groovy Postbuild' marked build as failure
Build step 'Groovy Postbuild' marked build as failure
Description set: 
Sending e-mails to: [email protected] [email protected] [email protected]
Finished: FAILURE

World Frame doesnt exist

I am trying to use your package with intel data set. It works fine with demo.bag file but when I use it with intel's data it keeps on saying that the world frame doesnt exist. Can you please provide some hints as to how to solve this problem.

laser_scan_matcher subscribing to wrong message type: nav_msgs/Odometry/

Hello,
I am trying to use laser scan matcher for scan-based localization, on ROS Indigo.
However, when laser_scan_matcher starts, I get an error;
[ERROR] [1521390276.090566633]: Client [/laser_scan_matcher_node] wants topic /map to have datatype/md5sum [nav_msgs/Odometry/cd5e73d190d741a2f92e81eda573aca7], but our version has [nav_msgs/OccupancyGrid/3381f2d731d4076ec5c71b0759edbe4e]. Dropping connection.

It seems that laser_scan_matcher is trying to subscribe to /map topic but with wrong message type: nav_msgs/Odometry, instead of what the system is publishing: nav_msgs/OccupancyGrid which actually contains map data. These are two entirely different definitions.

How do I correct this? Due to this, I have no map < odom transform in my tf tree and I get the error:
[ WARN] [1521390281.116509155]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: . canTransform returned after 0.101214 timeout was 0.1.

Thanks

How to force scan matcher to match all points

In the case shown in the image below, I couldn't find a way to make the scan matcher give me a correct relative pose between the two scans (Reference scan shown in red here, lidar scan from the robot shown in yellow). What I think happens is that there are so many coplanar points corresponding to the walls on the left and right of the robot that they lead icp to ignore the few points portruding (points that are very relevant to estimating the x offset). The relative offset in y direction is always precise, but in x direction, as long as both scans have an offset of 10cm or more, the scan matcher fails. I tried tweaking some parameters to no avail. Any hints?

What I am trying to achieve is using the laser scan matcher class in order to estimate the robot pose relative to a reference pose based on the lidar scan observed on that reference pose. Vanilla ICP might be enough for this but I couldn't find a better implementation than laser_scan_matcher that is already integrated in the ROS framework.

forceicp

[Opinion] [laser_scan_matcher] Variable name is misleading

I'm trying to understand the code. But I see it might confused someone in the future.

// get the predicted offset of the scan base pose from the last scan base pose
tf::Transform pred_last_base_offset = getPrediction(time);
// calculate the predicted scan base pose by applying the predicted offset to the last scan base pose
tf::Transform pred_base_in_fixed = last_base_in_fixed_ * pred_last_base_offset;
// calculate the offset between the keyframe base pose and predicted scan base pose
tf::Transform pred_keyframe_base_offset = keyframe_base_in_fixed_.inverse() * pred_base_in_fixed;
// convert the predicted offset from the keyframe base frame to be in the keyframe laser frame
tf::Transform pred_keyframe_laser_offset = laser_from_base_ * pred_keyframe_base_offset * base_from_laser_ ;

On line 470, I think it should be
tf::Transform pred_keyframe_laser_offset = base_from_laser_ * pred_keyframe_base_offset * laser_from_base_;
instead.

base_from_laser_ should mean to the "transformation from laser frame to base frame"

But on line 774,

tf_listener_.lookupTransform (base_frame_, frame_id, ros::Time(0), base_from_laser);

I think the output of lookupTransform method doesn't provide the right meaning of base_from_laser_.

Should we switch the name
base_from_laser_ -> laser_from_base_,
laser_from_base_ -> base_from_laser_
in everyplace in this file?

Error in scan matching

Hi,

I have a robot application and I was testing this package for Laser Odometry and stumbled with this problem error running the node, I have briefly looked into the code but I was not able to understand the cause of the error.

:err: Valid: 27/1083 invalid: 1056. [ WARN] [1524149236.189355990, 17446.189000000]: Error in scan matching

So, my software configuration is as follows: I have a node publishing the laser scanner of to other lasers to a frame_id (the laser frame) with a transform (tf) to the base_link, and my base frame is the odom (instead of the world). I have also the map (that is used and published by the AMCL Package).

TFs:
map -> odom
odom -> base_link
base_link -> laser

The laser scanner is being published in the scan topic.

Anyone have an idea why this happens, I would appreciate any help regarding this,
In the mean time I will continue searching for possible solution.

Thanks in advance,

License declaration is missing

The license declaration of the project is missing either in a form of a single LICENSE file or in a Reuse compatible way. Declaration of the license makes the code more easy to consume and contribute to. Currently only the ROS page of the project mentions BSD and LGPLv3, without specifying the variant of BSD and some of the source files contain BSD-3-Clause license headers.

CSM Fails to compile in Fuerte branch

Hi, trying to compile csm in fuerte we bumped into the following error, is there a way to fix it? Thanks!

[ rosmake ] All 28 linessm: 64.3 sec ]                                                     [ 1 Active 40/42 Complete ]
{-------------------------------------------------------------------------------
  mkdir -p build
  if [ ! -f csm-git-23703a998fff57250322.tar.gz.md5sum ]; then echo "Error: Couldn't find md5sum file csm-git-23703a998fff57250322.tar.gz.md5sum" && false; fi
  `rospack find rosbuild`/bin/download_checkmd5.py https://code.ros.org/svn/release/download/thirdparty/csm-git-23703a998fff57250322.tar.gz build/csm-git-23703a998fff57250322.tar.gz `awk {'print $1'} csm-git-23703a998fff57250322.tar.gz.md5sum`
  [rosbuild] Downloading https://code.ros.org/svn/release/download/thirdparty/csm-git-23703a998fff57250322.tar.gz to build/csm-git-23703a998fff57250322.tar.gz...Traceback (most recent call last):
    File "/opt/ros/fuerte/share/ros/core/rosbuild/bin/download_checkmd5.py", line 56, in <module>
      sys.exit(main())
    File "/opt/ros/fuerte/share/ros/core/rosbuild/bin/download_checkmd5.py", line 28, in main
      urllib.urlretrieve(uri, dest)
    File "/usr/lib/python2.7/urllib.py", line 93, in urlretrieve
      return _urlopener.retrieve(url, filename, reporthook, data)
    File "/usr/lib/python2.7/urllib.py", line 239, in retrieve
      fp = self.open(url, data)
    File "/usr/lib/python2.7/urllib.py", line 207, in open
      return getattr(self, name)(url)
    File "/usr/lib/python2.7/urllib.py", line 436, in open_https
      h.endheaders(data)
    File "/usr/lib/python2.7/httplib.py", line 954, in endheaders
      self._send_output(message_body)
    File "/usr/lib/python2.7/httplib.py", line 814, in _send_output
      self.send(msg)
    File "/usr/lib/python2.7/httplib.py", line 776, in send
      self.connect()
    File "/usr/lib/python2.7/httplib.py", line 1157, in connect
      self.timeout, self.source_address)
    File "/usr/lib/python2.7/socket.py", line 571, in create_connection
      raise err
  IOError: [Errno socket error] [Errno 110] Connection timed out
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package csm written to:
[ rosmake ]    /home/mmorta/.ros/rosmake/rosmake_output-20140303-174108/csm/build_output.log
[rosmake-0] Finished <<< csm [FAIL] [ 64.33 seconds ]

plan for releasing deb package

Hi,

I would these packages are super useful, do you have any plan to release these package as deb files? so we can use them just install via apt-get

laser_scan_matcher.cpp

hi,I do not understand why got the "
// account for the change since the last kf, in the fixed frame
pr_ch = pr_ch * (f2b_ * f2b_kf_.inverse());
// the predicted change of the laser's position, in the laser frame
tf::Transform pr_ch_l;
pr_ch_l = laser_to_base_ * f2b_.inverse() * pr_ch * f2b_ * base_to_laser_ ;" in the laser_scan_matcher.cpp.
Can someone explain it to me?
thanks!

Can't build laser_scan_matcher for melodic

Hi! I've been trying to build the package from source for melodic but can't seem to get it right.
Running catkin build laser_scan_matcher I see that csm builds OK (there are some warnings but it goes through) but I get an error from the laser_scan_matcher:

Starting  >>> laser_scan_matcher                  
_______________________________________________________________________________________________________________
Errors     << laser_scan_matcher:cmake /home/mat/.../ros_ws/rr_dev/logs/laser_scan_matcher/build.cmake.000.log
CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal)
  CMakeLists.txt:21 (pkg_check_modules)

The CmakeLists.txt the code is pointing to is: pkg_check_modules(csm REQUIRED csm)

Running rospack find csm returns the correct path.

Is there anything obvious I'm missing?

Laser Ortho Projector

Hi,

I realize the code requires the use of either an imu or a geometry_msgs/pose. I do not have an imu. May I know how to get the pose of my 2D RPLidar A2 sensor? The pose and use_pose is not documented anywhere in the package summary, so I have no idea how to make this node work properly as it is not providing the base_ortho tf transformation.

Thanks!

Using laser_scan_matcher to accomplish Extrinsic Calibration for 2 2D Laser Scans

Greetings!
Since extrinsic calibration is so painstaking to handle, but also happen needed to be re executed, if robot might hit the wall, get transported , etc. so,
I'm thinking of possible workaround to implement ICP based Extrinsic Calibration tool, which solves this tf:

front_lidar ----> base_frame <---- rear_lidar

For laser_scan_matcher, this task looks doable, the only thing is to calculate a transform to base_frame. Is it possible to implement?

I hope to get some clue, suggestions also would be appreciated.

Scan matcher: rely on odometry/velocity when ICP fails

Hi, I use scan the matcher and I have sometimes errors like the following, mostly when the robot spins in place:

        : before trimming, only 25 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886431.088875179, 47.800000000]: Error in scan matching
        : before trimming, only 15 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886431.489196577, 48.200000000]: Error in scan matching
        : before trimming, only 13 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886431.691738139, 48.400000000]: Error in scan matching
        : before trimming, only 13 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886431.789825903, 48.500000000]: Error in scan matching
        : before trimming, only 19 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886431.999484123, 48.700000000]: Error in scan matching
        : before trimming, only 10 correspondences.
icp: ICP failed for some reason. 
[ WARN] [1429886432.293471482, 49.000000000]: Error in scan matching

The effect is that the scan matcher pose jumps weirdly until the errors finish (last around 2 or 3 seconds) and then is not anymore attached to the robot. So I propose to changes:

  • Rely on odometry or velocity inputs (if available) to update the pose when ICP fails
  • Provide a "reset" service to restore the estimated pose to a given one (probably the current robot pose estimated by odom+localization)

Remove master branch

To avoid confusion like #37

(I can't execute it since I don't have admin access for this repository.)

several changes make this not working

I've found that, someone checkout current version of scan_tools,
laser_ortho_projector does not work.
I think current version of laser_ortho_projector subscribes pose instead of imu.
Can you explain why?

Using laser_scan_matcher to find transforms between 2 robots with lidar.

Hi,

I was wondering if I could use the CSM to estimate the transform between two robots, both equipped with Lidar, scanning their surroundings (and each other). The starting positions will be unknown.

I guess I would have to adjust the laser_scan_matcher_node to accept two /scan topics, use the CSM to match both scans and get a transform.

I'd like hear your opinion on this.

laser_scan_matcher demo contains old vcg filed not compatible with rviz hydro

scan_tools/laser_scan_matcher/demo has old vcg files. Demo will not run in hydro.
command

roslaunch laser_scan_matcher demo.launch

log snippet:

ERROR: the config file '/home/adminuser/catkin_ws/src/scan_tools/laser_scan_matcher/demo/demo.vcg' is a .vcg file, which is the old rviz config format.
       New config files have a .rviz extension and use YAML formatting.  The format changed
       between Fuerte and Groovy.  There is not (yet) an automated conversion program.
process[base_link_to_laser-3]: started with pid [5730]
[rviz-1] process has died [pid 5713, exit code 1, cmd /opt/ros/hydro/lib/rviz/rviz -d /home/adminuser/catkin_ws/src/scan_tools/laser_scan_matcher/demo/demo.vcg __name:=rviz __log:=/home/adminuser/.ros/log/5c71c560-8bf5-11e3-875b-080027fec6e0/rviz-1.log].
log file: /home/adminuser/.ros/log/5c71c560-8bf5-11e3-875b-080027fec6e0/rviz-1*.log

minor documentation note

There is a parameter (~use_vel) that is mentioned in the parameters section, but the corresponding topic is not mentioned in the topics section. I had to look at the code to determine the type of the vel message.

Cannot build newer versions that don't compile CSM

Some time around commit d214d70, the function to automatically compile CSM was removed.

Both myself and two other coworkers have tried to compile CSM and link it to this library with no success. I'm not sure what I'm doing wrong, but it was a big pain to try. Ultimately, I switched to the above commit, where CSM is automatically downloaded and compiled, and everything magically worked.

Given that this library depends on CSM, I wonder if it would be worthwhile to put that functionality back, maybe with a command line switch? Alternatively, some suggestions on a known method for compiling and linking with CSM in the documentation would be helpful.

[Suggestion] indigo branch

Given that this package depends on some libraries that their release conditions tend to vary per Ubuntu and ROS distro (e.g. pcl), I suggest setting a default branch that couples with ROS distros.

  • For now, ROS Indigo should be good
  • Since there already branches exist for older distros (fuerte, hydro), naming it as indigo
    • We can release from indigo branch into both Indigo and Jade until any issue comes up

@ubuntuslave If this sounds fine can you create a new branch and set it as a repository default?

ROS2 port

@130s

I'm working on a ROS2 port of the laser_scan_matcher package that I would like to get pulled into this repo, if possible, and setup for releasing:

In addition to porting to ROS2, this version also:

  • fixes covariance calculation to capture the correct values and rotate them correctly into the odom frame
  • adds optional covariance augmentation based on detecting if there is a degenerate axis in the match, such as down a featureless hallway
  • removes velocity inputs and replaces them with a tf subscription for pose prediction. It's assumed that a proper state estimator like robot_localization can be used to convert velocities into a predicted pose.
  • enables dynamic reconfiguration for most parameters

Related:

Laser Scan Matcher Compatibility

Hello, I am trying to use the laser scan matcher in Kinetic - Ubuntu 16.04. However, the laser scan matcher node is not running. I believe it is compatibility issue, can you please verify?
Thanks.

csm_all.h file not found

There is a continous missing of files starting from csm_all.h. After downloading the csm_all.h file next error of missing another gsl related or csm related file...More than 30 files are missing I downloaded and added but there is no use. I got Debug.h file missing after json-c/json.h file is added as it was missing.

Laser scan matcher demo

I'm using ROS noetic on Ubuntu 20.04. After trying installing from binary and source, I tried running the demo. However, the laser scans don't seem to appear on rviz even though data is being published on the /scan topic. Maybe it has to do with these warnings?
[ WARN] [1643756842.717890740, 1282836372.062793756]: Invalid argument "/laser" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
[ WARN] [1643756842.726900821, 1282836372.073038758]: Could not get initial transform from base to laser frame, Lookup would require extrapolation 0.080653429s into the past. Requested time 1282836371.072047472 but the earliest data is at time 1282836371.152700901, when looking up transform from frame [laser] to frame [base_link]
[ WARN] [1643756842.727017528, 1282836372.073038758]: Skipping scan

Any help on this would be great! Thanks.

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.