erdalpekel / panda_simulation

This repository contains a sample ROS package that launches the FRANKA EMIKA Panda robot in the Gazebo simulation environment.
MIT License
140 stars 48 forks source link

"catkin_make" vs "catkin build" (& warnings during building) #11

Closed Wurmi1010 closed 4 years ago

Wurmi1010 commented 4 years ago

Hi @erdalpekel,

I tested creating a workspace with "catkin build" instead of "catkin_make". And it works fine. Is there any reason you use "catkin_make"?

I encountered 1 warnings I didn't see when building with "catkin_make":

Starting  >>> franka_hw                                                        
_______________________________________________________________________________
Warnings   << panda_simulation:cmake /home/chansch/catkin_ws/logs/panda_simulation/build.cmake.000.log
jsoncpp
CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message):
  catkin_package() DEPENDS on 'system_lib' but neither
  'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined.
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
  CMakeLists.txt:41 (catkin_package)

This warning I encountered with both building commands:

_______________________________________________________________________________
Warnings   << panda_simulation:make /home/chansch/catkin_ws/logs/panda_simulation/build.make.000.log
In file included from /opt/ros/melodic/include/ros/ros.h:40:0,
                 from /opt/ros/melodic/include/urdf/model.h:50,
                 from /opt/ros/melodic/include/moveit/robot_model/robot_model.h:43,
                 from /opt/ros/melodic/include/moveit/robot_state/robot_state.h:41,
                 from /opt/ros/melodic/include/moveit/move_group_interface/move_group_interface.h:43,
                 from /home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:2:
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp: In function ‘int main(int, char**)’:
/opt/ros/melodic/include/ros/console.h:348:176: warning: format ‘%s’ expects argument of type ‘char*’, but argument 8 has type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ [-Wformat=]
     ::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
                                                                                                                                                                                ^
/opt/ros/melodic/include/ros/console.h:351:5: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
     ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(NULL, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/melodic/include/ros/console.h:387:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
       ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/ros/melodic/include/ros/console.h:572:35: note: in expansion of macro ‘ROS_LOG_COND’
 #define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, __VA_ARGS__)
                                   ^~~~~~~~~~~~
/opt/ros/melodic/include/rosconsole/macros_generated.h:110:23: note: in expansion of macro ‘ROS_LOG’
 #define ROS_INFO(...) ROS_LOG(::ros::console::levels::Info, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)
                       ^~~~~~~
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:88:7: note: in expansion of macro ‘ROS_INFO’
       ROS_INFO("Creating %s collision objects directory.", path);
       ^
/home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:127:74: warning: passing ‘const _frame_id_type {aka const std::__cxx11::basic_string<char>}’ as ‘this’ argument discards qualifiers [-fpermissive]
       collision_object.header.frame_id = move_group_arm.getPlanningFrame();
                                                                          ^
In file included from /usr/include/c++/7/string:52:0,
                 from /usr/include/jsoncpp/json/config.h:9,
                 from /usr/include/jsoncpp/json/autolink.h:9,
                 from /usr/include/jsoncpp/json/json.h:9,
                 from /home/chansch/catkin_ws/src/panda_simulation/src/robot_control_node.cpp:1:
/usr/include/c++/7/bits/basic_string.h:654:7: note:   in call to ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
       operator=(const basic_string& __str)
       ^~~~~~~~

Are these warnings normal?

Best regards, Christian

PS: And one more thing. The command line auto completion for roslaunch doesn't work anymore. I don't know why. Maybe because I got the new version, since you did the last update? This isn't as important, just wanted to know if you're having the same issues.

erdalpekel commented 4 years ago

Hi @Wurmi1010

I have two issues with catkin as opposed to catkin_make

  1. It is significantly slower
  2. It does not generate a unified compile_commands.json file in the build folder which is important for code-completion etc. during development

Erdal

Wurmi1010 commented 4 years ago

Okay thanks, I was just curious.

Christian