ros-gbp / cartographer_ros-release Goto Github PK
View Code? Open in Web Editor NEWRelease repository for cartographer_ros (https://github.com/googlecartographer/cartographer_ros)
Release repository for cartographer_ros (https://github.com/googlecartographer/cartographer_ros)
The deb package ros-melodic-cartographer-ros does not depend on a specific version of ros-melodic-cartographer, but it will only run with the same major version.
This is also the case for the packages ros-melodic-cartographer-ros-msgs and ros-melodic-cartographer-rviz.
(See control file in http://repositories.ros.org/ubuntu/testing/pool/main/r/ros-melodic-cartographer-ros/ros-melodic-cartographer-ros_1.0.0-0bionic.debian.tar.xz)
I am not sure if version dependencies are commonly specified in ROS packages.
Of course, sudo apt-get upgrade
will update all these packages to the latest version, and it will just work.
We installed the ros-melodic-cartographer-ros package from the ros-shadow-fixed repository and it seems none of the binaries can be run as they crash with an "Illegal instruction" error.
Reproduced on two systems:
uname -a
Linux lenovo-Y50 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
and
uname -a
Linux ubuntu 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC
2018 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
Observation: file produces different signatures for the cartographer and the other ROS melodic binaries
file /opt/ros/melodic/bin/cartographer_occupancy_grid_node
/opt/ros/melodic/bin/cartographer_occupancy_grid_node: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=b46d61360a0b88eda46f3dd4e9526899e769f18c, stripped
file /opt/ros/melodic/bin/rviz
/opt/ros/melodic/bin/rviz: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=586128baac0a81db175b2968490a8c9bc8538944, stripped
Starting program: /opt/ros/melodic/lib/cartographer_ros/cartographer_node -configuration_directory /opt/ros/melodic/share/cartographer_ros/configuration_files -configuration_basename backpack_2d.lua
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe9dc0700 (LWP 18715)]
[New Thread 0x7fffe95bf700 (LWP 18716)]
[New Thread 0x7fffe8dbe700 (LWP 18717)]
[New Thread 0x7fffe3fff700 (LWP 18718)]
Thread 1 "cartographer_no" received signal SIGILL, Illegal instruction.
0x0000555555666598 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) ()
(gdb) bt
#0 0x0000555555666598 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) ()
#1 0x00007ffff5b315a1 in ros::start() () from /opt/ros/melodic/lib/libroscpp.so
#2 0x000055555564e167 in main ()
Starting program: /opt/ros/melodic/lib/cartographer_ros/cartographer_rosbag_validate -bag_filename /home/gaschler/Downloads/b2-2016-04-05-14-44-52.bag
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
cartographer_ros::(anonymous namespace)::LaserScanToPointCloudWithIntensities<sensor_msgs::MultiEchoLaserScan_<std::allocator<void> > > (msg=...)
at ./cartographer_ros/msg_conversion.cc:104
104 ./cartographer_ros/msg_conversion.cc: No such file or directory.
(gdb) bt
#0 cartographer_ros::(anonymous namespace)::LaserScanToPointCloudWithIntensities<sensor_msgs::MultiEchoLaserScan_<std::allocator<void> > > (msg=...)
at ./cartographer_ros/msg_conversion.cc:104
#1 0x0000555555588a7d in cartographer_ros::ToPointCloudWithIntensities (msg=...) at ./cartographer_ros/msg_conversion.cc:181
#2 0x000055555556e94f in cartographer_ros::(anonymous namespace)::RangeDataChecker::ReadRangeMessage<sensor_msgs::MultiEchoLaserScan_<std::allocator<void> > > (
to=<synthetic pointer>, from=<synthetic pointer>, range_checksum=0x7fffffffd460, message=...) at ./cartographer_ros/rosbag_validate_main.cc:218
#3 cartographer_ros::(anonymous namespace)::RangeDataChecker::CheckMessage<sensor_msgs::MultiEchoLaserScan_<std::allocator<void> > > (message=..., this=0x7fffffffd370)
at ./cartographer_ros/rosbag_validate_main.cc:155
#4 cartographer_ros::(anonymous namespace)::Run (bag_filename=..., dump_timing=<optimized out>) at ./cartographer_ros/rosbag_validate_main.cc:275
#5 0x000055555556c7b2 in main (argc=<optimized out>, argv=<optimized out>) at ./cartographer_ros/rosbag_validate_main.cc:423
Looks like the last release with the Gmock CMake patch fixed the CMake issue. It successfully built on ubuntu xenial for lunar:
00:09:42.012 The following tests FAILED:
00:09:42.012 1 - _ctest_cartographer_ros_gtest_time_conversion_test (Failed)
00:09:42.012 2 - _ctest_cartographer_ros_gtest_configuration_files_test (Failed)
00:09:42.012 3 - _ctest_cartographer_ros_gtest_msg_conversion_test (Failed)
00:09:42.012 4 - _ctest_cartographer_ros_gtest_occupancy_grid_test (Failed)
If fails to link on Debian, I think we're hitting ros-perception/perception_pcl#139. We'll likely need to patch CMake and package.xml to fix it (either the ugly way by injecting new depndency (https://github.com/ros-planning/navigation/pull/578/files), or by removing the targets causing the issues if we don't use them (https://github.com/ros-perception/perception_pcl/pull/151/files))
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.