ros-perception / slam_gmapping Goto Github PK
View Code? Open in Web Editor NEWhttp://www.ros.org/wiki/slam_gmapping
http://www.ros.org/wiki/slam_gmapping
Hi,
Thank you for the source code. Recently I was working on something where I needed the 2D coordinates of the bot inside the map. I tried doing it by using the the odom transformation published by gmap but the visualization showed that it was not always correct. Therefore, I used the best particle pose and published it as the PoseStamped message. The pose visualization showed this to be more accurate than the previous one. If it is something that you think will be helpful, I will create a pull request for the same.
the gmapping node assumes a scan that is centered around 0 angle. As an example, a scan message from 0 to 2*pi yields distorted results. A scan from -pi to pi works correctly. I checked this with gazebo.
The node should at least exit with an assertion error when the scan data is not centered around 0 angle. Or, perhaps, convert the scan message to a format usable by the gmapping library.
Even though tests run fine locally, there are errors on the farm:
http://jenkins.ros.org/job/devel-jade-slam_gmapping/ARCH_PARAM=amd64,UBUNTU_PARAM=trusty,label=devel/3/console
The output for each of the three tests is:
32m * RESULT: SUCCESS�[0m
* TESTS: 3
* ERRORS: 0
* FAILURES: 0
rostest log file is in /home/rosbuild/.ros/log/rostest-host05.storm.ros.org-28434.log
Cannot find results, writing failure results to '/home/rosbuild/hudson/workspace/devel-jade-slam_gmapping/ARCH_PARAM/amd64/UBUNTU_PARAM/trusty/label/devel/test_results/repos/gmapping/MISSING-rostest-test_basic_localization_laser_different_beamcount.xml'
-- run_tests.py: execute commands
/opt/ros/jade/share/rostest/cmake/../../../bin/rostest --pkgdir=/tmp/test_repositories/src_repository/slam_gmapping/gmapping --package=gmapping --results-filename test_basic_localization_laser_different_beamcount.xml /tmp/test_repositories/src_repository/slam_gmapping/gmapping/test/basic_localization_laser_different_beamcount.test
-- run_tests.py: verify result "/home/rosbuild/hudson/workspace/devel-jade-slam_gmapping/ARCH_PARAM/amd64/UBUNTU_PARAM/trusty/label/devel/test_results/repos/gmapping/rostest-test_basic_localization_laser_different_beamcount.xml"
@wjwwood , do you have any explanation ? I'm sure it's a bad CMakeLists.txt that makes it not find the test .xml but I cannot figure out. Thx.
I followed the link https://www.ros.org/browse/details.php?distro=kinetic&name=gmapping , which saying there is a kinetic version here, but there is not.
What happened? and what should I do if I'm using ros kinetic?
When I use gmapping for save my map , I can alway see the error in tf,
so I check my tf tree, it's right, but when I run rosrun tf tf_echo /map /base_link
,
there show
Failure at 1558399180.795866256
Exception thrown:Lookup would require extrapolation into the past. Requested time 40.363000000 but the earliest data is at time 1558399175.095931223, when looking up transform from frame [base_link] to frame [map]
so I echo map and base_link and find that map's stamp is:
header:
seq: 0
stamp:
secs: 1558398434
nsecs: 917620709
frame_id: "map"
But my odom and base_link and other link are all transfome to secs, just as follow:
header:
seq: 1865
stamp:
secs: 37
nsecs: 657000000
frame_id: "odom"
child_frame_id: "base_link"
So how can I do , can you give me some advice?
Thank you for your help!
Hi there,
I want to use SLAM _gmapping in rviz to use a hokuyo laser scanner to generate a costmap/occupancy grid but I don't know how to visualize this in rviz. Could you please help with this ?
My output from Debugging level of rqt console says:
My output from RQT console set to DEBUG level for slam gmapping says: [DEBUG] [1440489099.449636147, 33.872000000]: MessageFilter [target=odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser_front, stamp=33.609000) [DEBUG] [1440489099.449683559, 33.872000000]: MessageFilter [target=odom ]: Added message in frame laser_front at time 33.862, count now 5 [DEBUG] [1440489099.494061150, 33.914000000]: MessageFilter [target=odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser_front, stamp=33.663000) [DEBUG] [1440489099.494112745, 33.914000000]: MessageFilter [target=odom ]: Added message in frame laser_front at time 33.905, count now 5
Why is the frame set as laser_front ? My tf tree is attached
In the original gmapping, there is an option to set 'minimumScore'. If the scan matcher scores lower than this, a scan match is regarded to be failed and the filter update will only be based on the odometry. By default, minimumScore is 0. To my knowledge, the scanmatcher will only score 0 if there is nothing at all (an open space). As soon as it sees something small, or only some straight wall that does not give much certainty, scores will become something like 0 to 150. The estimates based on these poor scan matches can make the pose estimate jump around quite a lot. I experienced this when driving a turtlebot (with e.g. kinect as laser, or the popular hokuyo urg 04lx ug01 which only has a range of 6m) in a simulated world in gazebo such as the willowgarage world. It will give serious performance issues in the large open area's. Gmapping will screw up badly.
I would suggest that slam_gmapping is adapted such that 'minimumScore' can be set such as all other parameters (e.g. xmin, lstep, kernelSize, etc). Now I just manually adapted the source of openslam_gmapping to use a custom minimumScore.
Kind regards,
Koen
hi,
I want to launch gmapping by nodelet, but it seems the slam_gmapping_nodelet library is not installed.
install(TARGETS slam_gmapping slam_gmapping_replay
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
Is there any problem with the nodelet compared to the node?
The mutexes used to lock the map structure do nothing, as only temporaries are created that go out of scope immediately after creation. Instead of
boost::mutex::scoped_lock(map_mutex_);
this should be used:
boost::mutex::scoped_lock lock (map_mutex_);
I only noticed this bug when carelessly copying some code from slam_gmapping and then getting crashes. Apparently, the mutexes aren´t that crucial in slam_gmapping though, as this bug has been there from the beginning years ago :)
Please update the urls for test data from pr.willowgarage.com to download.ros.org.
I'm creating a ticket, mainly so we have a record of what is going on here.
We should probably kill master.
Hydro-devel is the catkinized version
Groovy-devel is currently tracking the catkinized version, which is incorrect, and it should be rolled back to the older version pre-catkinization.
Dear developers/users,
Recently I used gmapping packages to perform SLAM (mapping and also localization), but the pose information was generated via /tf2 msg. To compared with other potential packages, I visualized the pose via matlab but the resultant graph was frustrating. Anyone can help? Or how should I able to get PoseStamped data from gmapping. Below is the link for necessary files:
Path plotted (gmapping): https://drive.google.com/open?id=1W3Sc9aVUZFeef0X45R-t8AGAqXkQ4pP5
bag file contains laser scan and /tf: https://drive.google.com/file/d/19zNZB-qjVp0ekyj1X31aNkCwmRXktwor/view?usp=sharing
launch files: https://drive.google.com/open?id=1Dfuy7d-Id2NHfX4LaLDfhIuRkXBkUa6_
bag file contains /tf2 generated by gmapping: https://drive.google.com/open?id=1gXtjN8qTR_DGWuka-3byzuTXSigFgJip
comparison of alternative package: https://drive.google.com/open?id=15FntJ4xu5MvVrATU-9CXk7TvI9C2FkVV
Hey guys,
There is a bug in the groovy-devel
.
In slam_gmapping.cpp
void
SlamGMapping::updateMap(const sensor_msgs::LaserScan& scan)
{
boost::mutex::scoped_lock lock map_lock (map_mutex_);
GMapping::ScanMatcher matcher;
double* laser_angles = new double[scan.ranges.size()];
double theta = angle_min_;
the lock map_lock
should be removed.
Buy the way, I have finished a distribution of gmapping which is parallel, I will put it on github and send a merge request in order to share it .
Good morning,
The documentation claims that: "The maximum range of the sensor. If regions with no obstacles within the range of the sensor should appear as free space in the map, set maxUrange < maximum range of the real sensor <= maxRange."
Unfortunately this does not seem to work for me. I have maxUrange = 3.9, maxRange = 4.0 and I get unknown space instead of free space if there is not obstacles within the range of my laser.
I use ROS kinetic on ubuntu 16. Any help would be much appreciated, thank you very much.
Gmapping gives the tf from map to odom but I need to transform this tf between both frames in a PoseWithCovarianceStamped. How do you think I could do?
"gmapping" also should publish Path of robot followed.
Please release this package for lunar
!
When I use gmapping, I can't send 2D nav goal in rviz , I can move the robot with teleop using keyboard with any problem but I need to send a goal. I do not know if the problem is with th costmap local and global because in rviz appears a warning saying that no map received.But when I use keyboard to move the warning appears also but it moves.
Leading to the error:
[ERROR] [1510694496.932065488]: Skipping XML Document "/opt/ros/kinetic/share/gmapping/nodelet_plugins.xml" which had no Root Element. This likely means the XML is malformed or missing.
At the moment it is possible to use the /map
topic for map data, just like the /dynamic_map
service can be used to get the current map using a service.
The /map_metadata
topic can be used to get the map metadata. However, there is no service which returns the same data. Using the topic requires subscribing, waiting for data and then unsubscribing again.
This is useful in some nodes which depend on gmapping
and require the map dimensions but not the content of the map.
Create a service (maybe /dynamic_map_metadata
) which allows requesting the current map metadata.
If you are willing to accept it, I am willing to provide a Pull Request with this feature.
Pre-catkinization, the stack was slam_gmapping, the package was gmapping.. currently, the upstream repo is now "gmapping" and this stack has become "slam_gmapping" -- this breaks any launch file or docs from previous versions.
gmapping node ignores tf2 static latch transforms. If I code this transform as a tf2 static latch it is ignored but if specified via node input as shown below then the scanner data is transformed correctly. The scanner fame is attached to the camera_link.
<node pkg="tf" type="static_transform_publisher" name="hftf_broadcaster"
args="0 0 .2 0 0 0 1 camera_link hokuyo_frame 100"/>
int main(int argc, char **argv)
{
ros::init(argc, argv, "robot_odometry");
// send static latch transformations
tf2_ros::StaticTransformBroadcaster static_broadcaster;
geometry_msgs::TransformStamped msg;
msg.header.stamp = ros::Time::now();
msg.transform.rotation.x = 0.0;
msg.transform.rotation.y = 0.0;
msg.transform.rotation.z = 0.0;
msg.transform.rotation.w = 1.0;
msg.header.frame_id = "base_link";
msg.transform.translation.x = 0;
msg.transform.translation.y = 0;
msg.transform.translation.z = 0.1;
msg.child_frame_id = "camera_link";
static_broadcaster.sendTransform(msg);
msg.header.frame_id = "camera_link";
msg.transform.translation.x = 0;
msg.transform.translation.y = 0;
msg.transform.translation.z = 0.2;
msg.child_frame_id = "hokuyo_frame";
static_broadcaster.sendTransform(msg);
// msg.header.frame_id = "base_link"; // additional test transform
// msg.transform.translation.x = 0; // but should not be needed as chain is
// msg.transform.translation.y = 0; // hokuyo_frame->camera_link->base_link
// msg.transform.translation.z = 0.2; // transforms are all specified
// msg.child_frame_id = "hokuyo_frame";
// static_broadcaster.sendTransform(msg);
msg.header.frame_id = "camera_link";
msg.transform.translation.x = 0;
msg.transform.translation.y = 0;
msg.transform.translation.z = 0.3;
msg.child_frame_id = "camera_frame";
static_broadcaster.sendTransform(msg);
PublishOdometry sp;
ros::spin();
return 0;
}
Hello
I am using this package with my project.
I met error bellows
Skipping XML Document “/opt/ros/indigo/share/gmapping/nodelet_plugins.xml” which had no Root Element. This likely means the XML is malformed or missing.
After I had manually copied 'nodelet_plugins.xml' file from here, then this error was disappeared.
I don't know root cause exactly, but I guess something is missed on CMakeLists.xml.
Thanks.
There is an option to set the maximum range of the lidar but there seems to be no minimum range. This would be useful when the lidar is mounted on a robot and is obstructed by parts of the robot. Can this be achieved somehow without preprocessing the lidar scans?
Hi,
I get this error running cppcheck in gmapping.
/home/dani/svn/stacks/pal_navigation_slam/pal_gmapping/build/gmapping_export/grid/map.h:193: style: Suspicious expression. Boolean result is used in bitwise operation. The operator '!'and the comparison operators have higher precedence than bitwise operators. It is recommended that the expression is clarified with parentheses. [cppcheck: clarifyCondition]
/home/dani/svn/stacks/pal_navigation_slam/pal_gmapping/build/gmapping_export/grid/map.h:206: style: Suspicious expression. Boolean result is used in bitwise operation. The operator '!'and the comparison operators have higher precedence than bitwise operators. It is recommended that the expression is clarified with parentheses. [cppcheck: clarifyCondition]
Effectively, running the code below produces this, which does not much sense, unless the flags are not bit flags, in which case imho it does not make much sense to use binary operator &
0: Outside. not inside. Allocated.
1: Outside. inside. Allocated.
2: Outside. inside. Allocated.
3: Outside. inside. Allocated.
If the checks are changed to " if (! (s&Outside))" it makes a bit more sense, but not for Outside values.
0: not Outside. not inside. not Allocated.
1: not Outside. inside. not Allocated.
2: not Outside. not inside. Allocated.
3: not Outside. inside. Allocated.
thanks
#include <iostream>
int main(int argc, char *argv[])
{
enum AccessibilityState{Outside=0x0, Inside=0x1, Allocated=0x2};
int state[] = { Outside, Inside, Allocated, Inside|Allocated};
for (int i=0; i < sizeof(state) /sizeof(state[0]); i++)
{
int s = state[i];
std::cout << s << ": ";
if (! s&Outside)
std::cout << "not Outside. ";
else
std::cout << "Outside. ";
if (! s&Inside)
std::cout << "not inside. ";
else
std::cout << "inside. ";
if (! s&Allocated)
std::cout << "not Allocated. ";
else
std::cout << "Allocated. ";
std::cout << std::endl;
}
Kinetic; and git clone slam_gmapping from Github
I used rslidar-16, so I first used pointcloud_to_laserscan package to get type:Layerscan, and I did use hector_mapping (tutorial.launch) and It was no problem. (so the tf_tree doesn't have any problem and scan topic have their message.) But when I run slam_gmapping_pr2.launch.(I review the odom_frame:odom & base_frame:base_link & scan_topic:scan) Comes error and ROS just dead.
[ INFO] [1568901622.179507147]: Laser is mounted upwards. -maxUrange 20 -maxUrange 25 -sigma 0.05 -kernelSize 1 -lstep 0.05 -lobsGain 3 -astep 0.05 -srr 0.01 -srt 0.02 -str 0.01 -stt 0.02 -linearUpdate 0.5 -angularUpdate 0.436 -resampleThreshold 0.5 -xmin -25 -xmax 25 -ymin -25 -ymax 25 -delta 0.05 -particles 80
It's all good now, but after that, here is the error message:
[gmapping-5] process has died [pid 7754, exit code -11, cmd /home/kin/kintest_ws/devel/lib/gmapping/slam_gmapping scan:=scan __name:=gmapping __log:=/home/kin/.ros/log/3abd2c26-dae0-11e9-ae02-f44d306f9cfc/gmapping-5.log]. log file: /home/kin/.ros/log/3abd2c26-dae0-11e9-ae02-f44d306f9cfc/gmapping-5*.log
I encountered this error when used the command: rosrun gmapping slam_gmapping scan:=base_scan.
And,the map-server will be stoped simutaneously.
what is the problem?thank you very much!
I'm using a cheap 2D lidar with poor ambient light resistance to map an outdoor environment. This means I get small artifacts near the robots that show up in the map ie a stray set of sparse points that look like small islands with the 2d costmap enabled. I'd like to filter these points out so they don't interfere with the robot's navigation. I've thought of some ways to do this (ie by point density in moving window, or by removing points with distant nearest neighbours, testing only points within a certain radius of the robot since that's where they always show up). Where in the code is best to add this functionality?
gmapping spams the console with lots of unnecessary "Registering Scans:Done" and "Laser Pose= 1.9015 1.58619 1.4151" messages. These should be removed, or sent to the standard ros logging streams. As is, as far as I can tell, they're printed directly to std::cerr
in gridfastslam/gridslamprocessor.hxx
(not in this repository). Redirecting stderr is not a good workaround; I do want to see real errors.
I implemented Gmapping algorithm for a featureless tunnel/pipe environment. Since LiDar/camera are not that effective in these environments, stable odometry is the prime data that can be used in such situations. Is there any way to give more weight to odometry than the LiDar when the robot is moving in a straight path and the switch the weights i.e. give more weight to LiDAR data when taking turns since turnings are like a feature for the LiDAR.
ROS Melodic is building from source , https://github.com/ros-perception/slam_gmapping, https://github.com/ros-perception/openslam_gmapping. I can run the launch successfully, but generate maps slowly or not updated, how can i do? Thanks!
why tf::TransformBroadcaster* tfB_ did not release int function SlamGMapping::~SlamGMapping()
Hello,
I am attempting to get gmapping to work using 2 laser scanners. Unfortunately, it is not going well. Would it be possible to get gmapping updated so that it can use multiple laser range finders? Any hints on how I can get this to work?
Thanks
Hi
I'm trying to recompile the gmapping node with the debug options in order to perform some analysis with valgrind but I need to compile all the code in debug mode.
I've tried with set(ROS_BUILD_TYPE Debug) but it does not work..
does anyone have an idea?
Augusto
I was looking for this package on ROS Melodic. What are the plans for releasing it?
When I catkin_make, it can't catkin_make this slam_gmapping. My ros distro is indigo, is it is the reason for the problem. Below is the screenshot-
-- Using these message generators: gencpp;genlisp;genpy
CMake Error at /home/yan/catkin_ws/devel/share/openslam_gmapping/cmake/openslam_gmappingConfig.cmake:106 (message):
Project 'openslam_gmapping' specifies
'/home/yan/catkin_ws/src/openslam_gmapping/include' as an include dir,
which is not found. It does neither exist as an absolute directory nor in
'/home/yan/catkin_ws/src/openslam_gmapping//home/yan/catkin_ws/src/openslam_gmapping/include'.
Ask the maintainer 'Vincent Rabaud [email protected]' to fix it.
Call Stack (most recent call first):
/opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
slam_gmapping/gmapping/CMakeLists.txt:4 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/yan/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/yan/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed
The wiki claims the license for this package is CC-BY-NC-SA 4.0, but there is no information in the repository to confirm or deny that. This should be made clear in the README or a LICENSE for this repo.
If the license really is CC-BY-NC, that license doesn't meet the Open Source Definition or the Free Software Definition, which raises some concerns.
On the first day, using gmapping, I create a corridor map and save it via map_saver.
On the second day, I need to load the map into the gmapping and continue creating the map in the unexplored rooms.
If I upload a map to gmapping using map_saver, it will simply be erased.
How to save a map from gmapping so that it can be loaded back into it and continue research in unknown areas?
Hi, when I use the slam_gmapping_replay node, I get messages like this (a few of these per second):
[ WARN] [1472656696.029278429]: Dropping old scan: Lookup would require extrapolation into the future. Requested time 1467913048.867926076 but the latest data is at time 1467913048.867113403, when looking up transform from frame [pioneer/odom] to frame [pioneer/laser]
This doesn't happen when playing back with rosbag and running slam_gmapping. Does that suggest that slam_gmapping_replay isn't perfectly emulating running gmapping in real time? Or running gmapping in realtime drops scans in the same way, just doesn't emit that message? In that case, perhaps a similar message should be added to the realtime mode.
The code which does that was introduced in 06b5d60 and 052ad10 by @vrabaud, do you perhaps know what's going on?
Hi!
I am trying to use the gmapping SLAM functionalities to map the surroundings of my robot and for that I am using a Hokuyo lidar URG-04LX on a Beaglebone Black A5C with Ubuntu 18.04 installed and ROS Melodic. I know that many of the packages are not out yet for ROS Melodic but I tried many SLAM options but none of them seem to work with it. I was hoping gmapping would do the do but I am stuck at installing the package.
When I try to build from source with a catkin_make (after having cloned the git folder into my catkin workspace src folder), it crashes at 76% due to slam_gmapping_nodelet:
[ 56%] Building CXX object openslam_gmapping/gridfastslam/CMakeFiles/gridfastslam.dir/gridslamprocessor_tree.cpp.o
In file included from /usr/include/c++/7/vector:69:0,
from /home/beagle/catkin_test/src/openslam_gmapping/include/gmapping/utils/stat.h:4,
from /home/beagle/catkin_test/src/openslam_gmapping/gridfastslam/gridslamprocessor_tree.cpp:9:
/usr/include/c++/7/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {double}; _Tp = double; _Alloc = std::allocator]’:
/usr/include/c++/7/bits/vector.tcc:105:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<double*, std::vector >’ changed in GCC 7.1
_M_realloc_insert(end(), std::forward<_Args>(__args)...);
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {double}; _Tp = double; _Alloc = std::allocator]’:
/usr/include/c++/7/bits/vector.tcc:394:7: note: parameter passing for argument of type ‘std::vector::iterator {aka __gnu_cxx::__normal_iterator<double*, std::vector >}’ changed in GCC 7.1
vector<_Tp, _Alloc>::
^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/deque:63:0,
from /home/beagle/catkin_test/src/openslam_gmapping/gridfastslam/gridslamprocessor_tree.cpp:2:
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = double*; _ForwardIterator = double*; _Allocator = std::allocator]’:
/usr/include/c++/7/bits/stl_uninitialized.h:312:69: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__last), __result, __alloc);
^
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*; _Tp = double]’:
/usr/include/c++/7/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:289:63: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::uninitialized_copy(__first, __last, __result); }
^
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/7/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
uninitialized_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:134:41: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninit_copy(__first, __last, __result);
^
/usr/include/c++/7/bits/stl_uninitialized.h: In static member function ‘static _ForwardIterator std::__uninitialized_copy::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/7/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninit_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:101:53: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::copy(__first, __last, __result); }
^
In file included from /usr/include/c++/7/bits/char_traits.h:39:0,
from /usr/include/c++/7/string:40,
from /home/beagle/catkin_test/src/openslam_gmapping/gridfastslam/gridslamprocessor_tree.cpp:1:
/usr/include/c++/7/bits/stl_algobase.h: In function ‘_OI std::copy(_II, _II, _OI) [with _II = std::move_iterator<double*>; _OI = double*]’:
/usr/include/c++/7/bits/stl_algobase.h:446:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
copy(_II __first, _II __last, _OI __result)
^~~~
/usr/include/c++/7/bits/stl_algobase.h:446:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0,
from /usr/include/c++/7/bits/char_traits.h:39,
from /usr/include/c++/7/string:40,
from /home/beagle/catkin_test/src/openslam_gmapping/gridfastslam/gridslamprocessor_tree.cpp:1:
/usr/include/c++/7/bits/stl_iterator.h: In function ‘decltype (std::__miter_base(__it.base())) std::__miter_base(std::move_iterator<_IteratorL>) [with _Iterator = double*]’:
/usr/include/c++/7/bits/stl_iterator.h:1241:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__miter_base(move_iterator<_Iterator> __it)
^~~~~~~~~~~~
[ 60%] Building CXX object openslam_gmapping/gridfastslam/CMakeFiles/gridfastslam.dir/motionmodel.cpp.o
[ 64%] Linking CXX shared library /home/beagle/catkin_test/devel/lib/libgridfastslam.so
[ 64%] Built target gridfastslam
Scanning dependencies of target sensor_odometry
[ 64%] Building CXX object openslam_gmapping/sensor/sensor_odometry/CMakeFiles/sensor_odometry.dir/odometryreading.cpp.o
[ 68%] Building CXX object openslam_gmapping/sensor/sensor_odometry/CMakeFiles/sensor_odometry.dir/odometrysensor.cpp.o
[ 72%] Linking CXX shared library /home/beagle/catkin_test/devel/lib/libsensor_odometry.so
[ 72%] Built target sensor_odometry
Scanning dependencies of target slam_gmapping_nodelet
[ 76%] Building CXX object slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/src/slam_gmapping.cpp.o
In file included from /usr/include/boost/bind/bind.hpp:2172:0,
from /usr/include/boost/bind.hpp:22,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_mf_cc.hpp: In function ‘boost::_bi::bind_t<R, boost::_mfi::mf1<R, T, A1>, typename boost::bi::list_av_2<A1, A2>::type> boost::bind(R (T::)(B1), A1, A2) [with R = void; T = SlamGMapping; B1 = double; A1 = SlamGMapping; A2 = double]’:
/usr/include/boost/bind/bind_mf_cc.hpp:69:64: note: parameter passing for argument of type ‘F {aka boost::mfi::mf1<void, SlamGMapping, double>}’ changed in GCC 7.1
return bi::bind_t<R, F, list_type>(F(f), list_type(a1, a2));
^
In file included from /usr/include/boost/bind.hpp:22:0,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind.hpp: In constructor ‘boost::bi::bind_t<R, F, L>::bind_t(F, const L&) [with R = void; F = boost::mfi::mf1<void, SlamGMapping, double>; L = boost::bi::list2<boost::bi::value<SlamGMapping*>, boost::bi::value >]’:
/usr/include/boost/bind/bind.hpp:1287:5: note: parameter passing for argument of type ‘boost::mfi::mf1<void, SlamGMapping, double>’ changed in GCC 7.1
bind_t( F f, L const & l ): f( f ), l( l ) {}
^~~~~~
/usr/include/boost/bind/bind_cc.hpp: In function ‘boost::bi::bind_t<R, R ()(B1), typename boost::_bi::list_av_1::type> boost::bind(R ()(B1), A1) [with R = ros::SerializedMessage; B1 = const std_msgs::Float64<std::allocator >&; A1 = boost::reference_wrapper<const std_msgs::Float64<std::allocator > >]’:
/usr/include/boost/bind/bind_cc.hpp:26:5: note: parameter passing for argument of type ‘boost::reference_wrapper<const std_msgs::Float64<std::allocator > >’ changed in GCC 7.1
BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
^
In file included from /usr/include/boost/bind/bind.hpp:2126:0,
from /usr/include/boost/bind.hpp:22,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_cc.hpp:30:58: note: parameter passing for argument of type ‘boost::reference_wrapper<const std_msgs::Float64<std::allocator > >’ changed in GCC 7.1
return bi::bind_t<R, F, list_type> (f, list_type(a1));
^
In file included from /usr/include/boost/bind.hpp:22:0,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_cc.hpp: In function ‘boost::bi::bind_t<R, R ()(B1), typename boost::_bi::list_av_1::type> boost::bind(R ()(B1), A1) [with R = ros::SerializedMessage; B1 = const nav_msgs::OccupancyGrid<std::allocator >&; A1 = boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >]’:
/usr/include/boost/bind/bind_cc.hpp:26:5: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >’ changed in GCC 7.1
BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
^
In file included from /usr/include/boost/bind/bind.hpp:2126:0,
from /usr/include/boost/bind.hpp:22,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_cc.hpp:30:58: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >’ changed in GCC 7.1
return bi::bind_t<R, F, list_type> (f, list_type(a1));
^
In file included from /usr/include/boost/bind.hpp:22:0,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_cc.hpp: In function ‘boost::bi::bind_t<R, R ()(B1), typename boost::_bi::list_av_1::type> boost::bind(R ()(B1), A1) [with R = ros::SerializedMessage; B1 = const nav_msgs::MapMetaData<std::allocator >&; A1 = boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >]’:
/usr/include/boost/bind/bind_cc.hpp:26:5: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >’ changed in GCC 7.1
BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1)
^
In file included from /usr/include/boost/bind/bind.hpp:2126:0,
from /usr/include/boost/bind.hpp:22,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind_cc.hpp:30:58: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >’ changed in GCC 7.1
return _bi::bind_t<R, F, list_type> (f, list_type(a1));
^
In file included from /usr/include/c++/7/vector:63:0,
from /usr/include/boost/math/special_functions/math_fwd.hpp:26,
from /usr/include/boost/math/special_functions/round.hpp:15,
from /opt/ros/melodic/include/ros/time.h:58,
from /opt/ros/melodic/include/ros/ros.h:38,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = double*; _ForwardIterator = double*; _Allocator = std::allocator]’:
/usr/include/c++/7/bits/stl_uninitialized.h:312:69: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(last), result, alloc);
^
In file included from /usr/include/boost/bind.hpp:22:0,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/bind.hpp: In constructor ‘boost::bi::list1::list1(A1) [with A1 = boost::reference_wrapper<const std_msgs::Float64<std::allocator > >]’:
/usr/include/boost/bind/bind.hpp:231:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const std_msgs::Float64<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^~~~~
/usr/include/boost/bind/bind.hpp:231:44: note: parameter passing for argument of type ‘boost::reference_wrapper<const std_msgs::Float64<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^
/usr/include/boost/bind/bind.hpp: In constructor ‘boost::bi::list1::list1(A1) [with A1 = boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >]’:
/usr/include/boost/bind/bind.hpp:231:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^~~~~
/usr/include/boost/bind/bind.hpp:231:44: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^
/usr/include/boost/bind/bind.hpp: In constructor ‘boost::bi::list1::list1(A1) [with A1 = boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >]’:
/usr/include/boost/bind/bind.hpp:231:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^~~~~
/usr/include/boost/bind/bind.hpp:231:44: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >’ changed in GCC 7.1
explicit list1( A1 a1 ): base_type( a1 ) {}
^
In file included from /usr/include/c++/7/vector:63:0,
from /usr/include/boost/math/special_functions/math_fwd.hpp:26,
from /usr/include/boost/math/special_functions/round.hpp:15,
from /opt/ros/melodic/include/ros/time.h:58,
from /opt/ros/melodic/include/ros/ros.h:38,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*; _Tp = double]’:
/usr/include/c++/7/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:289:63: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::uninitialized_copy(__first, last, result); }
^
In file included from /usr/include/boost/bind/bind.hpp:47:0,
from /usr/include/boost/bind.hpp:22,
from /opt/ros/melodic/include/ros/publisher.h:35,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/boost/bind/storage.hpp: In constructor ‘boost::bi::storage1::storage1(A1) [with A1 = boost::reference_wrapper<const std_msgs::Float64<std::allocator > >]’:
/usr/include/boost/bind/storage.hpp:42:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const std_msgs::Float64<std::allocator > >’ changed in GCC 7.1
explicit storage1( A1 a1 ): a1( a1 ) {}
^~~~~~~~
/usr/include/boost/bind/storage.hpp: In constructor ‘boost::bi::storage1::storage1(A1) [with A1 = boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >]’:
/usr/include/boost/bind/storage.hpp:42:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::OccupancyGrid<std::allocator > >’ changed in GCC 7.1
/usr/include/boost/bind/storage.hpp: In constructor ‘boost::bi::storage1::storage1(A1) [with A1 = boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >]’:
/usr/include/boost/bind/storage.hpp:42:14: note: parameter passing for argument of type ‘boost::reference_wrapper<const nav_msgs::MapMetaData<std::allocator > >’ changed in GCC 7.1
In file included from /usr/include/c++/7/vector:63:0,
from /usr/include/boost/math/special_functions/math_fwd.hpp:26,
from /usr/include/boost/math/special_functions/round.hpp:15,
from /opt/ros/melodic/include/ros/time.h:58,
from /opt/ros/melodic/include/ros/ros.h:38,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.h:19,
from /home/beagle/catkin_test/src/slam_gmapping/gmapping/src/slam_gmapping.cpp:108:
/usr/include/c++/7/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/7/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
uninitialized_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:134:41: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninit_copy(__first, __last, __result);
^
/usr/include/c++/7/bits/stl_uninitialized.h: In static member function ‘static _ForwardIterator std::__uninitialized_copy::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/7/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninit_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/7/bits/stl_uninitialized.h:101:53: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::copy(__first, __last, __result); }
^
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-7/README.Bugs for instructions.
slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/build.make:62: recipe for target 'slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/src/slam_gmapping.cpp.o' failed
make[2]: *** [slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/src/slam_gmapping.cpp.o] Error 4
CMakeFiles/Makefile2:4462: recipe for target 'slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/all' failed
make[1]: *** [slam_gmapping/gmapping/CMakeFiles/slam_gmapping_nodelet.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j1 -l1" failed
If anyone has a clue of why the building is failing or if you encountered the same issue and found a solution, I'll be glad to hear from you.
Thanks for any help given!
My LiDAR is pepperl_fuchs_r2000, if set samples_per_scan more than 1800 it will cause this issue.
Is it possible to modified parameters to avoid this error?
slam_gmapping: /root/catkin_ws/src/openslam_gmapping/scanmatcher/scanmatcher.cpp:563: void GMapping::ScanMatcher::setLaserParameters(unsigned int, double*, const OrientedPoint&): Assertion `beams<LASER_MAXBEAMS' failed.
It appears gmapping has not be re-released since ros-infrastructure/bloom#277, needs to be debinc'd (its REALLY slow... hilariously slow in fact). This probably also applies to the underlying library.
Hi there,
I'm using ros Indigo and using data from a rosbag. I want to modify the code of gmapping to get the robot pose. I change the names of the proyect that i downloaded from github in order to have the GMapping that came whit ros runing. When I run the comand:
$ rosrun gmapping slam_gmapping _odom_frame:=odom_combined scan:=base_scan
and have clean my catkin workspace every works fine, but if the proyects are compiled i get the following error:
$ rosrun gmapping slam_gmapping _odom_frame:=odom_combined scan:=base_scan
[ INFO] [1438996213.376038533]: Laser is mounted upwards.
-maxUrange 59.99 -maxUrange 59.99 -sigma 0.05 -kernelSize 1 -lstep 0.05 -lobsGain 3 -astep 0.05
-srr 0.1 -srt 0.2 -str 0.1 -stt 0.2
-linearUpdate 1 -angularUpdate 0.5 -resampleThreshold 0.5
-xmin -100 -xmax 100 -ymin -100 -ymax 100 -delta 0.05 -particles 30
/opt/ros/indigo/lib/gmapping/slam_gmapping: symbol lookup error: /opt/ros/indigo/lib/gmapping/slam_gmapping: undefined symbol: _ZN8GMapping14sampleGaussianEdm
i have no idea what that is.
edit: i belive the problem is whit openslam_gmapping, should i post it over there?
I am struggling to understand why .inf values from the laser scan are not used to mark the space as free space until the max range.
The attached image illustrates the issue. Why are do the v-shapes appear instead of a circunference around the robot that extends until the max range of the laser?
Hi,
I am using gmapping in ros indigo for the first time (using Hokuyo URG-04LX-UG01 laser scanner and wheel encoders), but I am having problems setting the map size.
I am trying to create a 10x10 map with a resolution of 0.05. I run the gmapping node using this node description in the launch file:
<launch>
<node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
<param name="map_update_interval" value="2.0"/>
<param name="maxUrange" value="5.0"/>
<param name="xmin" value="-5.0"/>
<param name="ymin" value="-5.0"/>
<param name="xmax" value="5.0"/>
<param name="ymax" value="5.0"/>
<param name="delta" value="0.05"/>
<param name="maxRange" value="6.0"/>
</node>
</launch>
When the gmapping node launches, at first the parameters seem to initialise correctly.
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.10
* /slam_gmapping/delta: 0.05
* /slam_gmapping/map_update_interval: 2.0
* /slam_gmapping/maxRange: 6.0
* /slam_gmapping/maxUrange: 5.0
* /slam_gmapping/xmax: 5.0
* /slam_gmapping/xmin: -5.0
* /slam_gmapping/ymax: 5.0
* /slam_gmapping/ymin: -5.0
NODES
/
slam_gmapping (gmapping/slam_gmapping)
However, when I check the map metadata using rostopic echo, I get a map of size 5120x14592. The resolution is correct. I have noticed that each time I launch the gmapping node, the size of the map changes but it is never 10x10 as I intended. The same size problems are reflected when I view the map in rviz.
map_load_time:
secs: 0
nsecs: 0
resolution: 0.0500000007451
width: 5120
height: 14592
origin:
position:
x: -5.0
y: -5.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
I believe I have seen this issue posted on ros forums before, however I have not been able to find a solution. Any help would be appreciated.
Thanks.
My ROS is indigo, so I can't catkin_make successfully. Does it have branch of indigo?
Looks like the change introduced in #26 makes gmapping on Turtlebot2 unusable on both sim and the real robot (multiple people reported). What's the best solution for that?
Related #33
Hi,
I am using ROS kinetic on ubuntu 16 and have installed the binaries for openslam and slam_gmapping using the command
sudo apt-get install ros-kinetic-slam-gmapping
and sudo apt-get install ros-kinetic-openslam-gmapping
.
However, whenever I am trying to use the gmapping node with ROS, it always throws the following error
process[gmapping-2]: started with pid [23549] /opt/ros/kinetic/lib/gmapping/slam_gmapping: symbol lookup error: /opt/ros/kinetic/lib/gmapping/slam_gmapping: undefined symbol: _ZN8GMapping14sampleGaussianEdj [gmapping-2] process has died [pid 23549, exit code 127, cmd /opt/ros/kinetic/lib/gmapping/slam_gmapping __name:=gmapping __log:=/home/arav/.ros/log/f518ac08-ff53-11e8-a0af-a0d3c148ec01/gmapping-2.log]. log file: /home/arav/.ros/log/f518ac08-ff53-11e8-a0af-a0d3c148ec01/gmapping-2*.log
I am unable to figure out how do I solve this problem. My environment variables are properly defined in the bashrc.
Thanks
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.