Skip to content

Commit

Permalink
nix
Browse files Browse the repository at this point in the history
  • Loading branch information
nim65s committed Jan 9, 2025
1 parent 7f5ef39 commit 1ef83f7
Show file tree
Hide file tree
Showing 5 changed files with 213 additions and 2 deletions.
10 changes: 9 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ set(${PROJECT_NAME}_sources
src/robot_model_builder.cpp)
ament_auto_add_library(${PROJECT_NAME} ${${PROJECT_NAME}_sources}
${${PROJECT_NAME}_headers})
ament_target_dependencies(${PROJECT_NAME} Eigen3)
target_link_libraries(${PROJECT_NAME} pinocchio::pinocchio)
target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}_parameters)

Expand All @@ -78,14 +77,23 @@ if(BUILD_TESTING)

ament_auto_add_gtest(test_averaging_filter tests/test_averaging_filter.cpp)
target_link_libraries(test_averaging_filter ${PROJECT_NAME})
set_tests_properties(test_averaging_filter PROPERTIES
ENVIRONMENT_MODIFICATION
LD_LIBRARY_PATH=path_list_prepend:${CMAKE_CURRENT_BINARY_DIR})

ament_auto_add_gtest(test_min_jerk tests/test_min_jerk.cpp)
target_link_libraries(test_min_jerk ${PROJECT_NAME})
set_tests_properties(test_min_jerk PROPERTIES
ENVIRONMENT_MODIFICATION
LD_LIBRARY_PATH=path_list_prepend:${CMAKE_CURRENT_BINARY_DIR})

ament_auto_add_gtest(test_robot_model_builder
tests/test_robot_model_builder.cpp)
target_link_libraries(test_robot_model_builder ${PROJECT_NAME}
example-robot-data::example-robot-data)
set_tests_properties(test_robot_model_builder PROPERTIES
ENVIRONMENT_MODIFICATION
LD_LIBRARY_PATH=path_list_prepend:${CMAKE_CURRENT_BINARY_DIR})
endif()

#
Expand Down
69 changes: 69 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
lib,
stdenv,
cmake,
fmt,
python3Packages,
rosPackages,
linear-feedback-controller-msgs
}:
stdenv.mkDerivation {
pname = "linear-feedback-controller";
version = "1.0.2";

src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./cmake
./CMakeLists.txt
./config
./controller_plugins.xml
./include
./launch
./LICENSE
./package.xml
./src
./tests
];
};

nativeBuildInputs = [
cmake
fmt
python3Packages.python
rosPackages.humble.ament-cmake
rosPackages.humble.ament-cmake-auto
rosPackages.humble.ament-lint-auto
rosPackages.humble.eigen3-cmake-module # this is a mistake on humble
rosPackages.humble.generate-parameter-library-py
rosPackages.humble.pluginlib
];

propagatedBuildInputs = [
fmt
linear-feedback-controller-msgs
python3Packages.pinocchio
python3Packages.example-robot-data
rosPackages.humble.control-toolbox
rosPackages.humble.controller-interface
rosPackages.humble.nav-msgs
rosPackages.humble.pal-statistics
rosPackages.humble.parameter-traits
rosPackages.humble.realtime-tools
rosPackages.humble.rclcpp-lifecycle
];

doCheck = true;

# generate_parameter_library_markdown complains that build/doc exists
# ref. /~https://github.com/PickNikRobotics/generate_parameter_library/pull/212
enableParallelBuilding = false;

meta = {
description = "RosControl linear feedback controller with pal base estimator and RosTopics external interface.";
homepage = "/~https://github.com/loco-3d/linear-feedback-controller";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.nim65s ];
platforms = lib.platforms.linux;
};
}
102 changes: 102 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 31 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
description = "RosControl linear feedback controller with pal base estimator and RosTopics external interface.";

inputs = {
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/master";
linear-feedback-controller-msgs = {
url = "github:loco-3d/linear-feedback-controller-msgs/nix";
inputs.nix-ros-overlay.follows = "nix-ros-overlay";
};
};

outputs =
{ linear-feedback-controller-msgs, nix-ros-overlay, self, ... }:
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nix-ros-overlay.inputs.nixpkgs {
inherit system;
overlays = [ nix-ros-overlay.overlays.default ];
};
in
{
packages = {
default = self.packages.${system}.linear-feedback-controller;
linear-feedback-controller = pkgs.callPackage ./default.nix {
inherit (linear-feedback-controller-msgs.packages.${system}) linear-feedback-controller-msgs;
};
};
}
);
}
3 changes: 2 additions & 1 deletion package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
<buildtool_depend>ament_cmake_python</buildtool_depend>

<build_depend>eigen</build_depend>
<buildtool_export_depend>eigen3_cmake_module</buildtool_export_depend>
<build_depend>fmt</build_depend>
<build_depend>parameter_traits</build_depend>
<build_export_depend>eigen</build_export_depend>

<depend>rclcpp</depend>
Expand Down

0 comments on commit 1ef83f7

Please sign in to comment.