-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ros-noetic-teb-local-planner does not build #266
Comments
Hi! There seems to be at least two problems. First, Second, even if the dependency is added manually to the .nix files, Unfortunately, I won't have time for it in the upcoming days. |
@wentasah could you give me a hint on how this should look like? |
Usually the diff --git a/distros/noetic/teb-local-planner/default.nix b/distros/noetic/teb-local-planner/default.nix
index e61d2dc3a..37c1711b3 100644
--- a/distros/noetic/teb-local-planner/default.nix
+++ b/distros/noetic/teb-local-planner/default.nix
@@ -4,3 +4,3 @@
-{ lib, buildRosPackage, fetchurl, base-local-planner, catkin, cmake-modules, costmap-2d, costmap-converter, dynamic-reconfigure, geometry-msgs, interactive-markers, libg2o, mbf-costmap-core, mbf-msgs, message-generation, message-runtime, nav-core, nav-msgs, pluginlib, roscpp, std-msgs, tf2, tf2-eigen, tf2-geometry-msgs, tf2-ros, visualization-msgs }:
+{ lib, buildRosPackage, fetchurl, base-local-planner, catkin, cmake-modules, costmap-2d, costmap-converter, dynamic-reconfigure, geometry-msgs, interactive-markers, libg2o, mbf-costmap-core, mbf-msgs, message-generation, message-runtime, nav-core, nav-msgs, pluginlib, roscpp, std-msgs, tf2, tf2-eigen, tf2-geometry-msgs, tf2-ros, visualization-msgs, suitesparse }:
buildRosPackage {
@@ -16,5 +16,8 @@ buildRosPackage {
buildType = "catkin";
- buildInputs = [ catkin cmake-modules message-generation tf2-eigen tf2-geometry-msgs ];
+ buildInputs = [ catkin cmake-modules message-generation tf2-eigen tf2-geometry-msgs suitesparse ];
propagatedBuildInputs = [ base-local-planner costmap-2d costmap-converter dynamic-reconfigure geometry-msgs interactive-markers libg2o mbf-costmap-core mbf-msgs message-runtime nav-core nav-msgs pluginlib roscpp std-msgs tf2 tf2-ros visualization-msgs ];
nativeBuildInputs = [ catkin ];
+ cmakeFlags = [
+ "-DCMAKE_INCLUDE_PATH=${suitesparse}/lib"
+ ];
If you do this, you end up with another problem:
g2o is available, as can be seen from found headers, but two if its several libraries are missing. |
The above problem can be solved by adding diff --git a/distros/noetic/libg2o/default.nix b/distros/noetic/libg2o/default.nix
index 03ab711b1..8ff4b572d 100644
--- a/distros/noetic/libg2o/default.nix
+++ b/distros/noetic/libg2o/default.nix
@@ -4,3 +4,3 @@
-{ lib, buildRosPackage, fetchurl, boost, catkin, cmake, eigen, libGL, libGLU, suitesparse }:
+{ lib, buildRosPackage, fetchurl, boost, catkin, cmake, eigen, libGL, libGLU, suitesparse, openblas }:
buildRosPackage {
@@ -17,3 +17,3 @@ buildRosPackage {
buildInputs = [ cmake ];
- propagatedBuildInputs = [ boost catkin eigen libGL libGLU suitesparse ];
+ propagatedBuildInputs = [ boost catkin eigen libGL libGLU suitesparse openblas ];
nativeBuildInputs = [ cmake ];
diff --git a/distros/noetic/teb-local-planner/default.nix b/distros/noetic/teb-local-planner/default.nix
index e61d2dc3a..37c1711b3 100644
--- a/distros/noetic/teb-local-planner/default.nix
+++ b/distros/noetic/teb-local-planner/default.nix
@@ -4,3 +4,3 @@
-{ lib, buildRosPackage, fetchurl, base-local-planner, catkin, cmake-modules, costmap-2d, costmap-converter, dynamic-reconfigure, geometry-msgs, interactive-markers, libg2o, mbf-costmap-core, mbf-msgs, message-generation, message-runtime, nav-core, nav-msgs, pluginlib, roscpp, std-msgs, tf2, tf2-eigen, tf2-geometry-msgs, tf2-ros, visualization-msgs }:
+{ lib, buildRosPackage, fetchurl, base-local-planner, catkin, cmake-modules, costmap-2d, costmap-converter, dynamic-reconfigure, geometry-msgs, interactive-markers, libg2o, mbf-costmap-core, mbf-msgs, message-generation, message-runtime, nav-core, nav-msgs, pluginlib, roscpp, std-msgs, tf2, tf2-eigen, tf2-geometry-msgs, tf2-ros, visualization-msgs, suitesparse }:
buildRosPackage {
@@ -16,5 +16,8 @@ buildRosPackage {
buildType = "catkin";
- buildInputs = [ catkin cmake-modules message-generation tf2-eigen tf2-geometry-msgs ];
+ buildInputs = [ catkin cmake-modules message-generation tf2-eigen tf2-geometry-msgs suitesparse ];
propagatedBuildInputs = [ base-local-planner costmap-2d costmap-converter dynamic-reconfigure geometry-msgs interactive-markers libg2o mbf-costmap-core mbf-msgs message-runtime nav-core nav-msgs pluginlib roscpp std-msgs tf2 tf2-ros visualization-msgs ];
nativeBuildInputs = [ catkin ];
+ cmakeFlags = [
+ "-DCMAKE_INCLUDE_PATH=${suitesparse}/lib"
+ ]; Then it compiles, but the final link fails with:
|
nice thanks. For that problem I already have a patch because I had the same problem on arch. diff --color -Naur teb_local_planner-release-release-noetic-teb_local_planner/include/teb_local_planner/h_signature.h teb_local_planner-release-release-noetic-teb_local_planner_new/include/teb_local_planner/h_signature.h
--- A/include/teb_local_planner/h_signature.h 2020-05-29 18:12:46.000000000 +0200
+++ B/include/teb_local_planner/h_signature.h 2023-01-20 19:56:56.259209108 +0100
@@ -51,6 +51,7 @@
#include <functional>
#include <vector>
#include <iterator>
+#include <boost/math/special_functions/sign.hpp>
namespace teb_local_planner
|
It now compiles and everything seems to work fine. I am running a Simulation and the simulated robot uses teb as local planner. Pathplanning works and the interaction with move_base also works. Huge thanks @wentasah |
Can you file an issue upstream at https://github.com/rst-tu-dortmund/teb_local_planner |
Hello. I am currently trying to convert my Archlinux ros noetic setup into the nix world. Everything works fine but I don't get the teb-local-planner to work. On Arch everything works fine.
When I build the teb-local-planner it crashes with the following error:
As far as I know Suitesparse is a dependency of g2o, which gets build with the ros-noetic-libg2o package, which itself is already a dependency of teb-local-planner.
You can reproduce my setup with the config given in my fork of this package.
The text was updated successfully, but these errors were encountered: