AutonomyLab / create_robot

ROS driver for iRobot Create 1 and 2.
http://www.autonomylab.org/create_autonomy
BSD 3-Clause "New" or "Revised" License
198 stars 164 forks source link

ca_driver failing during catkin build #58

Open chaosbuster opened 5 years ago

chaosbuster commented 5 years ago

The build for the source is failing on the ca_driver. Followed the steps for the Install and Compile sections with the exception that I'm running kinetic.

I am running on a Pi 3 Model B (ARMv71) with Ubuntu 16.04.5 LTS. I have ensured that I have an updated ros-kinetic and Ubuntu 16.04 distribution. I have sourced kinetic and the catkin workspace.

Here's the results when I run catkin build:

ubuntu@rrover32g:~/rrover$ catkin build
--------------------------------------------------------
Profile:                     default
Extending:          [cached] /opt/ros/kinetic
Workspace:                   /home/ubuntu/rrover
--------------------------------------------------------
Source Space:       [exists] /home/ubuntu/rrover/src
Log Space:          [exists] /home/ubuntu/rrover/logs
Build Space:        [exists] /home/ubuntu/rrover/build
Devel Space:        [exists] /home/ubuntu/rrover/devel
Install Space:      [unused] /home/ubuntu/rrover/install
DESTDIR:            [unused] None
--------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
--------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
--------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
--------------------------------------------------------
Workspace configuration appears valid.
--------------------------------------------------------
[build] Found '5' packages in 0.0 seconds.                                                                      
[build] Package table is up to date.                                                                            
Starting  >>> ca_description                                                                                    
Starting  >>> ca_msgs                                                                                           
Starting  >>> ca_tools                                                                                          
Finished  <<< ca_description                [ 1.2 seconds ]                                                     
Finished  <<< ca_tools                      [ 0.8 seconds ]                                                     
Finished  <<< ca_msgs                       [ 1.9 seconds ]                                                     
Starting  >>> ca_driver                                                                                         
________________________________________________________________________________________________________________
Errors     << ca_driver:make /home/ubuntu/rrover/logs/ca_driver/build.make.001.log                              
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `tf::quaternionTFToMsg(tf::Quaternion const&, geometry_msgs::Quaternion_<std::allocator<void> >&)':
create_driver.cpp:(.text+0xec): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::CreateDriver(ros::NodeHandle&)':
create_driver.cpp:(.text+0x418): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
create_driver.cpp:(.text+0x45a): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
create_driver.cpp:(.text+0x45e): undefined reference to `ros::this_node::getName()'
create_driver.cpp:(.text+0x5f4): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
create_driver.cpp:(.text+0xc2e): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0xd34): undefined reference to `ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)'
create_driver.cpp:(.text+0xdaa): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0xe8a): undefined reference to `ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)'
create_driver.cpp:(.text+0xf5c): undefined reference to `create::Create::connect(std::string const&, int const&)'
create_driver.cpp:(.text+0xfca): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0x10ca): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0x11de): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0x2980): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::~CreateDriver()':
create_driver.cpp:(.text+0x3510): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o:create_driver.cpp:(.text+0x3c14): more undefined references to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)' follow
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::defineSongCallback(boost::shared_ptr<ca_msgs::DefineSong_<std::allocator<void> > const> const&)':
create_driver.cpp:(.text+0x4390): undefined reference to `ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::playSongCallback(boost::shared_ptr<ca_msgs::PlaySong_<std::allocator<void> > const> const&)':
create_driver.cpp:(.text+0x445a): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0x452a): undefined reference to `ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::publishMode()':
create_driver.cpp:(.text+0x5dea): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `CreateDriver::spin()':
create_driver.cpp:(.text+0x612e): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `main':
create_driver.cpp:(.text+0x625c): undefined reference to `ros::init(int&, char**, std::string const&, unsigned int)'
create_driver.cpp:(.text+0x629a): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
create_driver.cpp:(.text+0x63c0): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text+0x64a4): undefined reference to `ros::console::print(ros::console::FilterBase*, void*, ros::console::levels::Level, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> > const&, char const*, int, char const*)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `diagnostic_updater::Updater::force_update()':
create_driver.cpp:(.text._ZN18diagnostic_updater7Updater12force_updateEv[_ZN18diagnostic_updater7Updater12force_updateEv]+0x1b4): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZN18diagnostic_updater7Updater12force_updateEv[_ZN18diagnostic_updater7Updater12force_updateEv]+0x328): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `diagnostic_updater::Updater::update_diagnostic_period()':
create_driver.cpp:(.text._ZN18diagnostic_updater7Updater24update_diagnostic_periodEv[_ZN18diagnostic_updater7Updater24update_diagnostic_periodEv]+0x48): undefined reference to `ros::NodeHandle::getParamCached(std::string const&, double&) const'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `void ros::Publisher::publish<diagnostic_msgs::DiagnosticArray_<std::allocator<void> > >(diagnostic_msgs::DiagnosticArray_<std::allocator<void> > const&) const':
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x7a): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x186): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x27a): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x390): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x49c): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o:create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN15diagnostic_msgs16DiagnosticArray_ISaIvEEEEEvRKT_]+0x5a8): more undefined references to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)' follow
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `bool ros::NodeHandle::param<std::string>(std::string const&, std::string&, std::string const&) const':
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramISsEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramISsEEbRKSsRT_RKS4_]+0x12): undefined reference to `ros::NodeHandle::hasParam(std::string const&) const'
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramISsEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramISsEEbRKSsRT_RKS4_]+0x22): undefined reference to `ros::NodeHandle::getParam(std::string const&, std::string&) const'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `bool ros::NodeHandle::param<double>(std::string const&, double&, double const&) const':
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIdEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIdEEbRKSsRT_RKS4_]+0x12): undefined reference to `ros::NodeHandle::hasParam(std::string const&) const'
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIdEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIdEEbRKSsRT_RKS4_]+0x22): undefined reference to `ros::NodeHandle::getParam(std::string const&, double&) const'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `bool ros::NodeHandle::param<bool>(std::string const&, bool&, bool const&) const':
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIbEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIbEEbRKSsRT_RKS4_]+0x12): undefined reference to `ros::NodeHandle::hasParam(std::string const&) const'
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIbEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIbEEbRKSsRT_RKS4_]+0x22): undefined reference to `ros::NodeHandle::getParam(std::string const&, bool&) const'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `bool ros::NodeHandle::param<int>(std::string const&, int&, int const&) const':
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIiEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIiEEbRKSsRT_RKS4_]+0x12): undefined reference to `ros::NodeHandle::hasParam(std::string const&) const'
create_driver.cpp:(.text._ZNK3ros10NodeHandle5paramIiEEbRKSsRT_RKS4_[_ZNK3ros10NodeHandle5paramIiEEbRKSsRT_RKS4_]+0x22): undefined reference to `ros::NodeHandle::getParam(std::string const&, int&) const'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o: In function `void ros::Publisher::publish<nav_msgs::Odometry_<std::allocator<void> > >(nav_msgs::Odometry_<std::allocator<void> > const&) const':
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x7a): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x186): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x27a): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x390): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x49c): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
CMakeFiles/ca_driver.dir/src/create_driver.cpp.o:create_driver.cpp:(.text._ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_[_ZNK3ros9Publisher7publishIN8nav_msgs9Odometry_ISaIvEEEEEvRKT_]+0x5a8): more undefined references to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)' follow
collect2: error: ld returned 1 exit status
make[2]: *** [/home/ubuntu/rrover/devel/.private/ca_driver/lib/ca_driver/ca_driver] Error 1
make[1]: *** [CMakeFiles/ca_driver.dir/all] Error 2
make: *** [all] Error 2
cd /home/ubuntu/rrover/build/ca_driver; catkin build --get-env ca_driver | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
................................................................................................................
Failed     << ca_driver:make                [ Exited with code 2 ]                                              
Failed    <<< ca_driver                     [ 7.3 seconds ]                                                     
[build] Summary: 3 of 4 packages succeeded.                                                                     
[build]   Ignored:   1 packages were skipped or are blacklisted.                                                
[build]   Warnings:  None.                                                                                      
[build]   Abandoned: None.                                                                                      
[build]   Failed:    1 packages failed.                                                                         
[build] Runtime: 10.2 seconds total.         
jacobperron commented 3 years ago

Which version of the driver were you trying to compile? I suggest checking out the kinetic branch.