ros-planning / navigation_experimental

Experimental navigation techniques for ROS robots.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sbpl_lattice_planner does not compile in hydro

meyerj opened this issue · comments

Due to major changes in the costmap_2d API introduced with hydro (see http://www.ros.org/wiki/hydro/Migration#Navigation_-_Costmap2D) the sbpl_lattice_planner and probably also other packages from navigation_experimental do not compile:

/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp: In member function ‘virtual void sbpl_lattice_planner::SBPLLatticePlanner::initialize(std::string, costmap_2d::Costmap2DROS*)’:
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:114:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearRobotFootprint’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:115:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:132:101: error: ‘class costmap_2d::Costmap2D’ has no member named ‘getCircumscribedCost’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:148:47: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsX’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:149:47: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsY’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:154:62: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getResolution’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:166:44: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsX’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:167:46: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsY’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp: In member function ‘virtual bool sbpl_lattice_planner::SBPLLatticePlanner::makePlan(const PoseStamped&, const PoseStamped&, std::vector<geometry_msgs::PoseStamped_<std::allocator<void> > >&)’:
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:237:17: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearRobotFootprint’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:240:17: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:372:44: warning: ‘void tf::Quaternion::setEulerZYX(const tfScalar&, const tfScalar&, const tfScalar&)’ is deprecated (declared at /opt/ros/hydro/include/tf/LinearMath/Quaternion.h:114) [-Wdeprecated-declarations]
make[3]: *** [CMakeFiles/sbpl_lattice_planner.dir/src/sbpl_lattice_planner.cpp.o] Error 1
make[3]: Leaving directory `/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/build'
make[2]: *** [CMakeFiles/sbpl_lattice_planner.dir/all] Error 2
make[2]: Leaving directory `/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/hector/hydro/stacks/external/navigation_experimental/sbpl_lattice_planner/build'
make: *** [all] Error 2

Are there any plans to update the hydro-devel branch in near future or should the navigation_experimental stack be considered as deprecated?

The necessary fixes shouldn't be too terribly difficult. Maybe this is a good time for sbpl_lattice_planner to be moved out into its own repo and released separately? Do the rest of the packages in navigation_experimental still compile?

I tried to find matching method calls in the new costmap_2d API, but some do not exist any more (e.g. clearRobotFootprint).

Here is the full output of catkin_make -k for the whole repository:

-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /home/johannes/ros/hydro/navigation_experimental/devel
-- Using CMAKE_PREFIX_PATH: /opt/uxvcos/hydro/devel;/opt/ros/hydro
-- This workspace overlays: /opt/uxvcos/hydro/devel;/opt/ros/hydro
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
-- Using Debian Python package layout
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/johannes/ros/hydro/navigation_experimental/build/test_results
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.71
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 9 packages in topological order:
-- ~~  - assisted_teleop
-- ~~  - eband_local_planner
-- ~~  - goal_passer
-- ~~  - navigation_experimental
-- ~~  - pose_base_controller
-- ~~  - pose_follower
-- ~~  - sbpl_lattice_planner
-- ~~  - sbpl_recovery
-- ~~  - twist_recovery
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'assisted_teleop'
-- ==> add_subdirectory(navigation_experimental/assisted_teleop)
-- checking for module 'eigen3'
--   found eigen3, version 3.0.5
-- Found Eigen: /usr/include/eigen3 
-- Eigen found (include: /usr/include/eigen3)
Assisted telop catkin_LIBRARY_DIRS: /opt/ros/hydro/lib
-- +++ processing catkin package: 'eband_local_planner'
-- ==> add_subdirectory(navigation_experimental/eband_local_planner)
-- +++ processing catkin package: 'goal_passer'
-- ==> add_subdirectory(navigation_experimental/goal_passer)
-- +++ processing catkin package: 'navigation_experimental'
-- ==> add_subdirectory(navigation_experimental/navigation_experimental)
-- +++ processing catkin package: 'pose_base_controller'
-- ==> add_subdirectory(navigation_experimental/pose_base_controller)
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
-- +++ processing catkin package: 'pose_follower'
-- ==> add_subdirectory(navigation_experimental/pose_follower)
-- +++ processing catkin package: 'sbpl_lattice_planner'
-- ==> add_subdirectory(navigation_experimental/sbpl_lattice_planner)
-- checking for module 'sbpl'
--   found sbpl, version 
-- sbpl_lattice_planner: 1 messages, 0 services
-- +++ processing catkin package: 'sbpl_recovery'
-- ==> add_subdirectory(navigation_experimental/sbpl_recovery)
-- +++ processing catkin package: 'twist_recovery'
-- ==> add_subdirectory(navigation_experimental/twist_recovery)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/johannes/ros/hydro/navigation_experimental/build
Scanning dependencies of target laser_scan_filters
[  8%] Building CXX object navigation_experimental/assisted_teleop/CMakeFiles/laser_scan_filters.dir/src/laser_scan_filters.cpp.o
Scanning dependencies of target assisted_teleop
[ 16%] Building CXX object navigation_experimental/assisted_teleop/CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o
Linking CXX shared library /home/johannes/ros/hydro/navigation_experimental/devel/lib/liblaser_scan_filters.so
[ 16%] Built target laser_scan_filters
Scanning dependencies of target goal_passer
[ 25%] Building CXX object navigation_experimental/goal_passer/CMakeFiles/goal_passer.dir/src/goal_passer.cpp.o
Linking CXX shared library /home/johannes/ros/hydro/navigation_experimental/devel/lib/libgoal_passer.so
[ 25%] Built target goal_passer
Scanning dependencies of target pose_base_controller
[ 33%] Building CXX object navigation_experimental/pose_base_controller/CMakeFiles/pose_base_controller.dir/src/pose_base_controller.cpp.o
Linking CXX executable /home/johannes/ros/hydro/navigation_experimental/devel/lib/assisted_teleop/assisted_teleop
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::AssistedTeleop()':
assisted_teleop.cpp:(.text+0x48f): undefined reference to `base_local_planner::TrajectoryPlannerROS::TrajectoryPlannerROS()'
assisted_teleop.cpp:(.text+0x892): undefined reference to `base_local_planner::TrajectoryPlannerROS::initialize(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, tf::TransformListener*, costmap_2d::Costmap2DROS*)'
assisted_teleop.cpp:(.text+0xe7c): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::~AssistedTeleop()':
assisted_teleop.cpp:(.text+0xf56): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
assisted_teleop.cpp:(.text+0xfe7): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::controlLoop()':
assisted_teleop.cpp:(.text+0x1242): undefined reference to `base_local_planner::TrajectoryPlannerROS::checkTrajectory(double, double, double, bool)'
assisted_teleop.cpp:(.text+0x158f): undefined reference to `base_local_planner::TrajectoryPlannerROS::checkTrajectory(double, double, double, bool)'
collect2: ld returned 1 exit status
make[2]: *** [/home/johannes/ros/hydro/navigation_experimental/devel/lib/assisted_teleop/assisted_teleop] Error 1
make[2]: Target `navigation_experimental/assisted_teleop/CMakeFiles/assisted_teleop.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/assisted_teleop/CMakeFiles/assisted_teleop.dir/all] Error 2
Scanning dependencies of target pose_follower
[ 41%] Building CXX object navigation_experimental/pose_follower/CMakeFiles/pose_follower.dir/src/pose_follower.cpp.o
Linking CXX executable /home/johannes/ros/hydro/navigation_experimental/devel/lib/pose_base_controller/pose_base_controller
[ 41%] Built target pose_base_controller
Scanning dependencies of target sbpl_lattice_planner
[ 50%] Building CXX object navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/src/sbpl_lattice_planner.cpp.o
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:41:58: fatal error: sbpl_lattice_planner/SBPLLatticePlannerStats.h: No such file or directory
compilation terminated.
make[2]: *** [navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/src/sbpl_lattice_planner.cpp.o] Error 1
make[2]: Target `navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/all] Error 2
Scanning dependencies of target geometry_msgs_generate_messages_lisp
[ 50%] Built target geometry_msgs_generate_messages_lisp
Scanning dependencies of target geometry_msgs_generate_messages_py
[ 50%] Built target geometry_msgs_generate_messages_py
Scanning dependencies of target geometry_msgs_generate_messages_cpp
[ 50%] Built target geometry_msgs_generate_messages_cpp
Scanning dependencies of target sbpl_recovery
[ 58%] Building CXX object navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/src/sbpl_recovery.cpp.o
Linking CXX shared library /home/johannes/ros/hydro/navigation_experimental/devel/lib/libpose_follower.so
[ 58%] Built target pose_follower
Scanning dependencies of target twist_recovery
[ 66%] Building CXX object navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/src/twist_recovery.cpp.o
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp: In member function ‘void sbpl_recovery::SBPLRecovery::planCB(const ConstPtr&)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:102:21: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp: In member function ‘virtual void sbpl_recovery::SBPLRecovery::runBehavior()’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:224:24: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearNonLethalWindow’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:225:23: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearNonLethalWindow’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘virtual void twist_recovery::TwistRecovery::initialize(std::string, tf::TransformListener*, costmap_2d::Costmap2DROS*, costmap_2d::Costmap2DROS*)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:72:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘double twist_recovery::TwistRecovery::normalizedPoseCost(const Pose2D&) const’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:129:87: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getInscribedRadius’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:130:64: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCircumscribedRadius’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘virtual void twist_recovery::TwistRecovery::runBehavior()’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:198:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
make[2]: *** [navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/src/sbpl_recovery.cpp.o] Error 1
make[2]: Target `navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/all] Error 2
Scanning dependencies of target sbpl_lattice_planner_generate_messages_lisp
[ 75%] Generating Lisp code from sbpl_lattice_planner/SBPLLatticePlannerStats.msg
make[2]: *** [navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/src/twist_recovery.cpp.o] Error 1
make[2]: Target `navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/all] Error 2
Scanning dependencies of target sbpl_lattice_planner_generate_messages_py
[ 83%] Generating Python from MSG sbpl_lattice_planner/SBPLLatticePlannerStats
[ 83%] Built target sbpl_lattice_planner_generate_messages_lisp
Scanning dependencies of target sbpl_lattice_planner_generate_messages_cpp
[ 91%] Generating C++ code from sbpl_lattice_planner/SBPLLatticePlannerStats.msg
[100%] Generating Python msg __init__.py for sbpl_lattice_planner
[100%] Built target sbpl_lattice_planner_generate_messages_py
[100%] Built target sbpl_lattice_planner_generate_messages_cpp
Scanning dependencies of target sbpl_lattice_planner_generate_messages
[100%] Built target sbpl_lattice_planner_generate_messages
make[1]: Target `all' not remade because of errors.
make: *** [all] Error 2
make: Target `default_target' not remade because of errors.
Base path: /home/johannes/ros/hydro/navigation_experimental
Source space: /home/johannes/ros/hydro/navigation_experimental/src
Build space: /home/johannes/ros/hydro/navigation_experimental/build
Devel space: /home/johannes/ros/hydro/navigation_experimental/devel
Install space: /home/johannes/ros/hydro/navigation_experimental/install
####
#### Running command: "cmake /home/johannes/ros/hydro/navigation_experimental/src -DCATKIN_DEVEL_PREFIX=/home/johannes/ros/hydro/navigation_experimental/devel -DCMAKE_INSTALL_PREFIX=/home/johannes/ros/hydro/navigation_experimental/install" in "/home/johannes/ros/hydro/navigation_experimental/build"
####
####
#### Running command: "make -k -j2" in "/home/johannes/ros/hydro/navigation_experimental/build"
####
Invoking "make" failed

The first error in sbpl_lattice_planner can be resolved by adding a dependency of the sbpl_lattice_planner target to sbpl_lattice_planner_gencpp as documented here:

add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_gencpp)

With that additional line in the CMakeLists.txt file the build output is the following:

[  8%] Built target laser_scan_filters
Linking CXX executable /home/johannes/ros/hydro/navigation_experimental/devel/lib/assisted_teleop/assisted_teleop
[ 16%] Built target goal_passer
[ 25%] Built target pose_base_controller
[ 33%] Built target pose_follower
[ 41%] Building CXX object navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/src/sbpl_lattice_planner.cpp.o
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::AssistedTeleop()':
assisted_teleop.cpp:(.text+0x48f): undefined reference to `base_local_planner::TrajectoryPlannerROS::TrajectoryPlannerROS()'
assisted_teleop.cpp:(.text+0x892): undefined reference to `base_local_planner::TrajectoryPlannerROS::initialize(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, tf::TransformListener*, costmap_2d::Costmap2DROS*)'
assisted_teleop.cpp:(.text+0xe7c): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::~AssistedTeleop()':
assisted_teleop.cpp:(.text+0xf56): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
assisted_teleop.cpp:(.text+0xfe7): undefined reference to `base_local_planner::TrajectoryPlannerROS::~TrajectoryPlannerROS()'
CMakeFiles/assisted_teleop.dir/src/assisted_teleop.cpp.o: In function `assisted_teleop::AssistedTeleop::controlLoop()':
assisted_teleop.cpp:(.text+0x1242): undefined reference to `base_local_planner::TrajectoryPlannerROS::checkTrajectory(double, double, double, bool)'
assisted_teleop.cpp:(.text+0x158f): undefined reference to `base_local_planner::TrajectoryPlannerROS::checkTrajectory(double, double, double, bool)'
collect2: ld returned 1 exit status
make[2]: *** [/home/johannes/ros/hydro/navigation_experimental/devel/lib/assisted_teleop/assisted_teleop] Error 1
make[2]: Target `navigation_experimental/assisted_teleop/CMakeFiles/assisted_teleop.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/assisted_teleop/CMakeFiles/assisted_teleop.dir/all] Error 2
[ 41%] Built target geometry_msgs_generate_messages_lisp
[ 41%] Built target geometry_msgs_generate_messages_py
[ 41%] Built target geometry_msgs_generate_messages_cpp
[ 50%] Building CXX object navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/src/sbpl_recovery.cpp.o
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp: In member function ‘virtual void sbpl_lattice_planner::SBPLLatticePlanner::initialize(std::string, costmap_2d::Costmap2DROS*)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:114:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearRobotFootprint’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:115:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:132:101: error: ‘class costmap_2d::Costmap2D’ has no member named ‘getCircumscribedCost’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:148:47: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsX’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:149:47: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsY’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:154:62: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getResolution’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:166:44: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsX’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:167:46: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getSizeInCellsY’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp: In member function ‘virtual bool sbpl_lattice_planner::SBPLLatticePlanner::makePlan(const PoseStamped&, const PoseStamped&, std::vector<geometry_msgs::PoseStamped_<std::allocator<void> > >&)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:237:17: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearRobotFootprint’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:240:17: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_lattice_planner/src/sbpl_lattice_planner.cpp:372:44: warning: ‘void tf::Quaternion::setEulerZYX(const tfScalar&, const tfScalar&, const tfScalar&)’ is deprecated (declared at /opt/ros/hydro/include/tf/LinearMath/Quaternion.h:114) [-Wdeprecated-declarations]
make[2]: *** [navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/src/sbpl_lattice_planner.cpp.o] Error 1
make[2]: Target `navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/sbpl_lattice_planner/CMakeFiles/sbpl_lattice_planner.dir/all] Error 2
[ 58%] Building CXX object navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/src/twist_recovery.cpp.o
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp: In member function ‘void sbpl_recovery::SBPLRecovery::planCB(const ConstPtr&)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:102:21: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp: In member function ‘virtual void sbpl_recovery::SBPLRecovery::runBehavior()’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:224:24: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearNonLethalWindow’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/sbpl_recovery/src/sbpl_recovery.cpp:225:23: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘clearNonLethalWindow’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘virtual void twist_recovery::TwistRecovery::initialize(std::string, tf::TransformListener*, costmap_2d::Costmap2DROS*, costmap_2d::Costmap2DROS*)’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:72:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘double twist_recovery::TwistRecovery::normalizedPoseCost(const Pose2D&) const’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:129:87: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getInscribedRadius’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:130:64: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCircumscribedRadius’
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp: In member function ‘virtual void twist_recovery::TwistRecovery::runBehavior()’:
/home/johannes/ros/hydro/navigation_experimental/src/navigation_experimental/twist_recovery/src/twist_recovery.cpp:198:19: error: ‘class costmap_2d::Costmap2DROS’ has no member named ‘getCostmapCopy’
make[2]: *** [navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/src/sbpl_recovery.cpp.o] Error 1
make[2]: Target `navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/sbpl_recovery/CMakeFiles/sbpl_recovery.dir/all] Error 2
[ 66%] Built target sbpl_lattice_planner_generate_messages_lisp
[ 83%] Built target sbpl_lattice_planner_generate_messages_py
[ 91%] Built target sbpl_lattice_planner_generate_messages_cpp
[ 91%] Built target sbpl_lattice_planner_generate_messages
make[2]: *** [navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/src/twist_recovery.cpp.o] Error 1
make[2]: Target `navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/build' not remade because of errors.
make[1]: *** [navigation_experimental/twist_recovery/CMakeFiles/twist_recovery.dir/all] Error 2
make[1]: Target `all' not remade because of errors.
make: *** [all] Error 2
make: Target `default_target' not remade because of errors.
Base path: /home/johannes/ros/hydro/navigation_experimental
Source space: /home/johannes/ros/hydro/navigation_experimental/src
Build space: /home/johannes/ros/hydro/navigation_experimental/build
Devel space: /home/johannes/ros/hydro/navigation_experimental/devel
Install space: /home/johannes/ros/hydro/navigation_experimental/install
####
#### Running command: "make cmake_check_build_system" in "/home/johannes/ros/hydro/navigation_experimental/build"
####
####
#### Running command: "make -k -j2" in "/home/johannes/ros/hydro/navigation_experimental/build"
####
Invoking "make" failed

So to summarize, the packages

  • assisted_teleop
  • sbpl_lattice_planner
  • sbpl_recovery and
  • twist_recovery

would need some patching for hydro.

The linker error for the assisted_teleop library can be resolved by adding the trajectory_planner_ros library to the target_link_libraries() call explicitly as it is not exported in package base_local_planner any more for some reason (see CMakeLists.txt#56).

I'm looking into this now.

The design for Costmap2DROS went through several changes and ended up closer to where it started than we expected. Therefore it will likely be pretty easy to add these functions back in to make the navigation_experimental stuff compile. I do believe that getCostmapCopy() would become deprecated, as the new way is to use getCostmap() which just returns a pointer to the Costmap2D.

The "copy" aspect of getCostmapCopy() was somewhat misleading, for the record. It copied all the metadata of the Costmap2D, but did not copy the actual grid of cost values. That was just a pointer to the grid data which got copied.

I forked the repo and created some patches for the hydro-devel branch here:
meyerj/navigation_experimental@ros-planning:hydro-devel...hydro-devel

At least the sbpl_lattice_planner compiles successfully with this version. I still cannot plan with the current version as my costmap seems to be always empty (no occupied cells).

I am still not sure if the getCostmapCopy() calls have to be replaced by assignments or if the Costmap2D object can simply be accessed directly via the getCostmap() call. Do I have to deal with locking in some way?

Do we still need clearRobotFootprint() or is the footprint handled by the new footprint layer?

You should access the costmap directly using the getCostmap() call. The
locking is done in MoveBase [1], although Hersh and I have discussed how
this is not necessarily the most intuitive way to do this.

clearRobotFootprint is handled by the footprint layer, and in fact, was
never needed.

[1]
https://github.com/ros-planning/navigation/blob/hydro-devel/move_base/src/move_base.cpp#L467

On Mon, Aug 26, 2013 at 1:09 PM, Johannes Meyer notifications@github.comwrote:

I forked the repo and created some patches for the hydro-devel branch here:

meyerj/navigation_experimental@ros-planning:hydro-devel...hydro-devel

At least the sbpl_lattice_planner compiles successfully with this version.
I still cannot plan with the current version as my costmap seems to be
always empty (no occupied cells).

I am still not sure if the getCostmapCopy() calls have to be replaced by
assignments or if the Costmap2D object can simply be accessed directly via
the getCostmap() call. Do I have to deal with locking in some way?

Do we still need clearRobotFootprint() or is the footprint handled by the
new footprint layer?


Reply to this email directly or view it on GitHubhttps://github.com//issues/5#issuecomment-23282637
.

Okay, I updated my fork based on your comment (comparison).

The only question that remains is if there is an equivalent to cost_map_.getCircumscribedCost() in sbpl_lattice_planner.cpp:132?

Should I create a pull request once my version is working or are there plans to separate the stack to individual repositories as suggested by @jonbinney?

By the way, shouldn't the lock in https://github.com/ros-planning/navigation/blob/hydro-devel/move_base/src/move_base.cpp#L467 be acquired after the check if planner_costmap_ros_ is NULL?

Right now, there's not an equivalent of getCircumscribedCost since there isn't necessarily an inflation layer. My inclination is to search through the layers to see if there is one, and then query that particular layer. However, that seems a little cludgy.

I have no opinion on what repo it sits in.

And yes, that lock probably should be after the Null check.

Okay, I updated again and added the "search through the layers" solution to get the circumscribed cost as suggested by @DLu. Here is my fork.

I also added a separate repo with only the sbpl_lattice_planner and with the same patches here, which we are using successfully with hydro in our working group in Darmstadt.

@meyerj your fork builds successfully, but when I launch the move_base_sbpl_fake_localization_2.5cm.launch, it complains about not finding nav_view.

According to the ROS wiki, nav_view seems to have been replaced by RVIZ altogether.

@y22ma You're right, the launch files in sbpl_lattice_planner are pretty outdated. We setup our own launch files for move_base and sbpl_lattice_planner, which works fine. It seems that nav_view has already been removed from the navigation stack since ROS diamondback in 2011.

@meyerj Did you make the changes for the relevant cost_map functions to your forked repo. I pulled the code and I am still getting errors in regards to the cost_map functions (i.e., related to calls in the sbpl_recovery.cpp file).

@epsilonorion I only updated the sbpl_lattice_planner package in my fork. twist_recovery and sbpl_recovery still has compile errors. I am using the current version of sbpl_lattice_planner in ROS hydro and it seems to work fine now after a bug with static maps in costmap_2d has been fixed (ros-planning/navigation#120). If you don't need the other packages, just add a CATKIN_IGNORE marker file or delete them manually from your working copy for now.

As the packages in this repository are more or less independent from each other, I would vote for split it up in per-package repositories and release separately as suggested in this thread. I already did that for sbpl_lattice_planner in my fork at https://github.com/meyerj/sbpl_lattice_planner.

Does somebody know which of the other packages are still actively used?

@meyerj @epsilonorion I have followed all your conversation and able to execute sbpl_lattice_planner example provided in the fork. However, after I tried to calculate path by calling SBPLLatticPlanner::makePlan(....) function to my code then I keep on getting the following linker error:
Linking CXX executable ../bin/frontier_exploration_server

/../.../navigation_experimental/sbpl_lattice_planner/lib/libsbpl_lattice_planner.so:
undefined reference to `typeinfo for costmap_2d::InflationLayer'

I tried everything I know to resolve this problem and now wonder if you guys can throw some light on it or can guide me to resolve this issue. Thanks.

Hello,
I want to use the lattice planner (with ros hydro) and downloaded it from https://github.com/meyerj/sbpl_lattice_planner
I copied it into my catkin_workspace/src -> did catkin_make
Now I want to start the node via launch file:

and get the following error
ERROR: cannot launch node of type [sbpl_lattice_planner/sbpl_lattice_planner]: can't locate node [sbpl_lattice_planner] in package [sbpl_lattice_planner]

What have I done wrong!?

I have another question, can I also use the lattice planner without movebase, and if yes! How can I send the planner a request with the start and goal pose!?

Thanks for your answers, best regards Matthias

Just have seen that my launch file entry isn't there! Do I also need to install sbpl to be able to use sbpl_lattice_planner!?

ERROR: cannot launch node of type [sbpl_lattice_planner/sbpl_lattice_planner]: can't locate node [sbpl_lattice_planner] in package [sbpl_lattice_planner]

@moejoegoe This problem usually occurs when you haven't sourced the setup.bash file from devel folder in the workspace. Try that once. Might solve your problem.

@meyerj, I have tried the @ricardo-samaniego's fork of your repo updated to work on indigo and it works fine. Do you want me to PR the modified indigo-devel branch into your repo?