2022-12-08 20:49:53 +03:00
|
|
|
{
|
2023-01-24 22:33:29 +03:00
|
|
|
description = "Robossembler Development Environments on Nix";
|
2023-01-10 15:42:12 +03:00
|
|
|
inputs = {
|
2025-01-21 20:40:43 +03:00
|
|
|
nixpkgs.url = "github:nixos/nixpkgs";
|
2024-06-28 09:18:26 +00:00
|
|
|
flake-utils.follows = "ros-overlay/flake-utils";
|
2025-01-22 16:36:06 +03:00
|
|
|
ros-overlay.url = "github:lopsided98/nix-ros-overlay?ref=develop";
|
2024-06-28 09:18:26 +00:00
|
|
|
ros-nixpkgs.follows = "ros-overlay/nixpkgs";
|
|
|
|
gazebo-overlay = {
|
2024-04-15 10:50:21 +03:00
|
|
|
url = "github:movefasta/gazebo-sim-overlay";
|
2024-06-28 09:18:26 +00:00
|
|
|
inputs.flake-utils.follows = "ros-overlay/flake-utils";
|
|
|
|
inputs.nixpkgs.follows = "ros-overlay/nixpkgs";
|
2024-04-15 10:50:21 +03:00
|
|
|
|
|
|
|
# Transitive inputs "not in registry" https://github.com/NixOS/nix/issues/5790
|
2024-06-28 09:18:26 +00:00
|
|
|
# inputs.nixgl.inputs.nixpkgs.follows = "ros-overlay/nixpkgs";
|
|
|
|
# inputs.nixgl.inputs.flake-utils.follows = "ros-overlay/flake-utils";
|
2024-04-15 10:50:21 +03:00
|
|
|
};
|
2023-01-10 15:42:12 +03:00
|
|
|
};
|
|
|
|
|
2024-06-28 09:18:26 +00:00
|
|
|
outputs = { self, nixpkgs, ros-overlay, ros-nixpkgs, gazebo-overlay, flake-utils }:
|
2023-01-10 15:42:12 +03:00
|
|
|
flake-utils.lib.eachDefaultSystem
|
|
|
|
(system:
|
2023-01-10 17:02:05 +03:00
|
|
|
let
|
2024-06-28 09:18:26 +00:00
|
|
|
pkgs = import nixpkgs { inherit system; overlays = [
|
|
|
|
(import ./overlay.nix)
|
|
|
|
gazebo-overlay.overlays.default
|
2023-09-22 12:19:19 +03:00
|
|
|
];
|
2024-12-10 17:13:39 +03:00
|
|
|
config.allowUnfree = true;
|
2023-09-03 21:55:45 +03:00
|
|
|
};
|
2024-06-28 09:18:26 +00:00
|
|
|
ros = import ros-nixpkgs { inherit system; overlays = [
|
|
|
|
ros-overlay.overlays.default
|
|
|
|
(import ./ros)
|
|
|
|
];};
|
2023-01-10 17:02:05 +03:00
|
|
|
in
|
2023-01-10 15:42:12 +03:00
|
|
|
{
|
2023-02-22 13:19:58 +03:00
|
|
|
|
|
|
|
rlib = import ./. {
|
2024-06-28 09:18:26 +00:00
|
|
|
inherit pkgs;
|
2024-12-10 17:13:39 +03:00
|
|
|
inherit (pkgs) lib rbs-workbench cad-gen cg-gen;
|
2023-02-22 13:19:58 +03:00
|
|
|
inherit (pkgs.stdenv) mkDerivation;
|
|
|
|
inherit (pkgs.libsForQt5) wrapQtAppsHook;
|
|
|
|
};
|
|
|
|
|
2023-02-03 13:42:55 +00:00
|
|
|
packages = {
|
2024-12-10 17:13:39 +03:00
|
|
|
inherit (pkgs) cad-gen cg-gen blender cad-gen-docker;
|
2023-02-03 13:42:55 +00:00
|
|
|
};
|
|
|
|
|
2024-06-28 09:18:26 +00:00
|
|
|
inherit ros pkgs;
|
2024-02-08 13:16:09 +00:00
|
|
|
|
2024-06-28 09:18:26 +00:00
|
|
|
devShells = {
|
|
|
|
default =
|
2024-12-10 17:13:39 +03:00
|
|
|
let
|
|
|
|
my-python-packages = p: with p; [
|
|
|
|
unified-planning
|
|
|
|
scipy
|
|
|
|
spatialmath
|
|
|
|
rcg-pipeline
|
|
|
|
rbs-workbench
|
|
|
|
];
|
|
|
|
in
|
|
|
|
pkgs.mkShell {
|
|
|
|
packages = (with pkgs; [ freecad ]) ++ [ (pkgs.python3.withPackages my-python-packages) ];
|
|
|
|
};
|
|
|
|
|
|
|
|
test =
|
|
|
|
let
|
|
|
|
my-python-packages = p: with p; [ scenario ];
|
|
|
|
in
|
|
|
|
pkgs.mkShell {
|
|
|
|
packages = [ (pkgs.python3.withPackages my-python-packages) ];
|
|
|
|
};
|
2023-08-03 21:54:16 +03:00
|
|
|
|
2024-06-28 09:18:26 +00:00
|
|
|
ros = pkgs.mkShell {
|
|
|
|
name = "ROS environment";
|
|
|
|
packages = [
|
2024-12-10 17:13:39 +03:00
|
|
|
pkgs.vcstool
|
2024-06-28 09:18:26 +00:00
|
|
|
ros.colcon
|
2025-01-21 20:40:43 +03:00
|
|
|
pkgs.scenario
|
2024-06-28 09:18:26 +00:00
|
|
|
(with ros.rosPackages.humble; buildEnv {
|
|
|
|
paths = [
|
|
|
|
ros-core
|
|
|
|
rmw-fastrtps-dynamic-cpp
|
2024-12-10 17:13:39 +03:00
|
|
|
rviz2
|
2024-06-28 09:18:26 +00:00
|
|
|
];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
# ROS 2 middleware variants, for Cyclone DDS replace with "rmw_cyclonedds_cpp" and add rmw-cyclonedds-cpp to paths
|
|
|
|
RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
|
2023-03-09 18:57:20 +03:00
|
|
|
};
|
2024-06-28 09:18:26 +00:00
|
|
|
|
2024-12-10 17:13:39 +03:00
|
|
|
all = pkgs.mkShell { packages = with pkgs; [ fstl cad-gen cg-gen ]; };
|
2024-06-28 09:18:26 +00:00
|
|
|
|
|
|
|
ci = pkgs.mkShell { buildInputs = [ pkgs.jq ]; };
|
|
|
|
|
|
|
|
gazebo = gazebo-overlay.devShells.${system}.default;
|
|
|
|
|
|
|
|
perception =
|
|
|
|
let
|
|
|
|
perception-packages = p: with p; [
|
2024-10-16 11:57:23 +03:00
|
|
|
pytorchWithCuda
|
2024-06-28 09:18:26 +00:00
|
|
|
torchvision
|
|
|
|
torchaudio
|
|
|
|
detectron2
|
2024-10-16 11:57:23 +03:00
|
|
|
scipy
|
|
|
|
pyrr
|
2024-10-16 16:17:46 +03:00
|
|
|
pillow
|
|
|
|
numpy
|
|
|
|
opencv4
|
2024-10-16 16:29:44 +03:00
|
|
|
boto3
|
2024-10-16 16:38:42 +03:00
|
|
|
tensorboardx
|
|
|
|
albumentations
|
|
|
|
simplejson
|
2024-12-10 17:13:39 +03:00
|
|
|
|
|
|
|
ultralytics
|
2024-06-28 09:18:26 +00:00
|
|
|
];
|
|
|
|
in
|
|
|
|
pkgs.mkShell {
|
2024-10-16 16:38:42 +03:00
|
|
|
packages = [ pkgs.s3cmd pkgs.libGL ] ++ [ (pkgs.python3.withPackages perception-packages) ];
|
2024-06-28 09:18:26 +00:00
|
|
|
};
|
2024-12-10 17:13:39 +03:00
|
|
|
};
|
2023-01-10 15:42:12 +03:00
|
|
|
}
|
|
|
|
);
|
2023-06-10 11:29:21 +03:00
|
|
|
|
|
|
|
nixConfig = {
|
2024-10-16 12:06:11 +03:00
|
|
|
extra-substituters = [ "https://ros.cachix.org" "https://robossembler.cachix.org" "https://cuda-maintainers.cachix.org" ];
|
2023-06-10 11:29:21 +03:00
|
|
|
extra-trusted-public-keys = [
|
|
|
|
"ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo="
|
|
|
|
"robossembler.cachix.org-1:56jBJHroRQSGpZFkW8XMquuzQTjAF/XTo6MogmBM7SQ="
|
2024-10-16 12:06:11 +03:00
|
|
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
2023-06-10 11:29:21 +03:00
|
|
|
];
|
|
|
|
};
|
2023-02-21 15:31:59 +03:00
|
|
|
}
|