utexas-bwi / eband_local_planner

ROS Local planner based on the eband approach. Based on the original implementation by Christian Connette and Bhaskara Marathi. This local planner has been adapted primarily for differential drive robots, but still supports the original holonomic drive controls.
http://wiki.ros.org/eband_local_planner
105 stars 83 forks source link

Official Kinetic support? #21

Closed nstiurca closed 7 years ago

nstiurca commented 8 years ago

Hi,

I'm wondering if you have any plans for official ROS Kinetic support (ie, binaries). I was able to compile this code from source with absolutely 0 problems under Ubuntu 16.04 + ROS Kinetic.

Thanks.

piyushk commented 8 years ago

@nstiurca We plan on figuring out Kinetic binaries for all our packages over the next few months. Pull requests will be appreciated.

jack-oquin commented 7 years ago

xref: utexas-bwi/segbot#77

jack-oquin commented 7 years ago

I'll probably work on this soon.

jack-oquin commented 7 years ago

I'm finally working on this again.

It builds with Kinetic on Xenial, but with some annoying warnings:

Warnings   << eband_local_planner:cmake /home/joq/ros/ws/logs/eband_local_planner/build.cmake.000.log                                                                          
CMake Warning at /opt/ros/kinetic/share/cmake_modules/cmake/Modules/FindEigen.cmake:62 (message):
  The FindEigen.cmake Module in the cmake_modules package is deprecated.

  Please use the FindEigen3.cmake Module provided with Eigen.  Change
  instances of find_package(Eigen) to find_package(Eigen3).  Check the
  FindEigen3.cmake Module for the resulting CMake variable names.

Call Stack (most recent call first):
  CMakeLists.txt:20 (find_package)

cd /home/joq/ros/ws/build/eband_local_planner; catkin build --get-env eband_local_planner | catkin env -si  /usr/bin/cmake /home/joq/ros/ws/src/eband_local_planner --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/joq/ros/ws/devel -DCMAKE_INSTALL_PREFIX=/home/joq/ros/ws/install; cd -
...............................................................................................................................................................................
_______________________________________________________________________________________________________________________________________________________________________________
Warnings   << eband_local_planner:make /home/joq/ros/ws/logs/eband_local_planner/build.make.000.log                                                                            
In file included from /opt/ros/kinetic/include/ros/ros.h:40:0,
                 from /home/joq/ros/ws/src/eband_local_planner/include/eband_local_planner/eband_trajectory_controller.h:41,
                 from /home/joq/ros/ws/src/eband_local_planner/src/eband_trajectory_controller.cpp:38:
/home/joq/ros/ws/src/eband_local_planner/src/eband_trajectory_controller.cpp: In member function ‘bool eband_local_planner::EBandTrajectoryCtrl::getTwistDifferentialDrive(geometry_msgs::Twist&, bool&)’:
/opt/ros/kinetic/include/ros/console.h:346:176: warning: too many arguments for format [-Wformat-extra-args]
     ::ros::console::print(filter, __rosconsole_define_location__loc.logger_, __rosconsole_define_location__loc.level_, __FILE__, __LINE__, __ROSCONSOLE_FUNCTION__, __VA_ARGS__)
                                                                                                                                                                                ^
/opt/ros/kinetic/include/ros/console.h:349:5: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER’
     ROSCONSOLE_PRINT_AT_LOCATION_WITH_FILTER(0, __VA_ARGS__)
     ^
/opt/ros/kinetic/include/ros/console.h:379:7: note: in expansion of macro ‘ROSCONSOLE_PRINT_AT_LOCATION’
       ROSCONSOLE_PRINT_AT_LOCATION(__VA_ARGS__); \
       ^
/opt/ros/kinetic/include/ros/console.h:561:35: note: in expansion of macro ‘ROS_LOG_COND’
 #define ROS_LOG(level, name, ...) ROS_LOG_COND(true, level, name, __VA_ARGS__)
                                   ^
/opt/ros/kinetic/include/rosconsole/macros_generated.h:58:24: note: in expansion of macro ‘ROS_LOG’
 #define ROS_DEBUG(...) ROS_LOG(::ros::console::levels::Debug, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)
                        ^
/home/joq/ros/ws/src/eband_local_planner/src/eband_trajectory_controller.cpp:309:9: note: in expansion of macro ‘ROS_DEBUG’
         ROS_DEBUG("Performing in place rotation for start (diff): %f", bubble_diff.angular.z, robot_cmd.angular.z);
         ^
cd /home/joq/ros/ws/build/eband_local_planner; catkin build --get-env eband_local_planner | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
jack-oquin commented 7 years ago

With commit 2f683a3, it compiles cleanly on Kinetic, but fails on Indigo, which apparently needs to use Eigen and not Eigen3.

piyushk commented 7 years ago

Thanks a lot for working on this Jack! I'm going to be on vacation for a couple of weeks in a few days, but I can help you with this once I get back.

jack-oquin commented 7 years ago

Commit 65035f3 makes it conditional. That works on Indigo, but throws a warning.

I figure that's better than forking a separate indigo_devel branch. Hopefully, we won't need to release on Indigo again, so it won't matter.

jack-oquin commented 7 years ago

Should I make a new Kinetic release for this?

piyushk commented 7 years ago

That sounds good to me. Yes! Please go ahead and make the release.

jack-oquin commented 7 years ago

Released with 0.3.1 today.