Merge branch '8-rbs-framework-env' into 'master'
Создать окружение для Robossembler Framework Closes #8 See merge request robossembler/nix-robossembler-overlay!2
This commit is contained in:
commit
c57cd0e0b5
9 changed files with 268 additions and 30 deletions
5
.envrc
Normal file
5
.envrc
Normal file
|
@ -0,0 +1,5 @@
|
|||
if ! has nix_direnv_version || ! nix_direnv_version 2.3.0; then
|
||||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc" "sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8="
|
||||
fi
|
||||
use flake
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1 +1,3 @@
|
|||
result
|
||||
result
|
||||
*-profile*
|
||||
.direnv
|
||||
|
|
30
flake.lock
generated
30
flake.lock
generated
|
@ -5,11 +5,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -23,11 +23,11 @@
|
|||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"lastModified": 1685518550,
|
||||
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -38,11 +38,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1685043182,
|
||||
"narHash": "sha256-eL1j47UUPVRI8itz/4EUah9cVtZtuII6m/jSE+mBn7A=",
|
||||
"lastModified": 1690924695,
|
||||
"narHash": "sha256-1yshNzds/qJztMoJk0Sa2xhKwSLaOAuepR6ABWbrgRU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba5d0dc56bddf881ca7bb62266351a9692a8d157",
|
||||
"rev": "7282565b1ca9ba7b293b899411e70167f4a7c1ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -54,11 +54,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681059042,
|
||||
"narHash": "sha256-f6HH1U/+YbM7vjnOOydPJt/Ia7Rn+ApCOryFNb3eGbk=",
|
||||
"lastModified": 1687112859,
|
||||
"narHash": "sha256-oJhMiKnJeb47gTxyyIgAJf+aWC4IbVmG3wgL3ZVJ0Eg=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "28aa66a5d7d196573aed06968b2e37ab98875511",
|
||||
"rev": "f68a0d0fd7539d93c7454989f71fd1c824f3b46f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -81,11 +81,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1684512309,
|
||||
"narHash": "sha256-tIfBfgVqYWJycuTMo03NH4TS29f9FGCfz1ubYKJyD2s=",
|
||||
"lastModified": 1690347395,
|
||||
"narHash": "sha256-FUAvjcpVyDMZ2zCqUrpGlLtRZlF3PqW2alpyi82bMa8=",
|
||||
"owner": "lopsided98",
|
||||
"repo": "nix-ros-overlay",
|
||||
"rev": "24dbaec76c6e9caf2a22ffd63ffd8b15667bd7e5",
|
||||
"rev": "3205dadcff4e1fbc779ce3962bafcf3e9f3e931b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
52
flake.nix
52
flake.nix
|
@ -10,9 +10,16 @@
|
|||
flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs = nixpkgs.legacyPackages.${system}.extend overlay;
|
||||
ros = ros-flake.legacyPackages.${system};
|
||||
|
||||
overlay = final: prev: {
|
||||
# -- PLACEHOLDER for overlay
|
||||
# freecad = prev.freecad.overrideAttrs
|
||||
# (old: { cmakeFlags = old.cmakeFlags ++ [ "-DBUILD_GUI=OFF" ]; });
|
||||
# cmakeFlag -BUILD_GUI=OFF for build without gui
|
||||
};
|
||||
|
||||
# overrided packages and attributes for nix-ros-overlay
|
||||
humble-overrided = ros.humble.overrideScope (final: prev: {
|
||||
# remove after update github:lopsided98/nixpkgs/nix-ros for https://github.com/NixOS/nixpkgs/pull/224099
|
||||
|
@ -28,17 +35,21 @@
|
|||
});
|
||||
|
||||
# robossembler custom packages; defined here for share between devShells and packages
|
||||
blender = pkgs.callPackage ./pkgs/misc/blender { };
|
||||
blender = pkgs.callPackage ./pkgs/misc/blender
|
||||
{ inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL; };
|
||||
bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { };
|
||||
pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { };
|
||||
mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { };
|
||||
darknet = pkgs.callPackage ./pkgs/misc/darknet { };
|
||||
fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { };
|
||||
open3d = pkgs.callPackage ./open3d.nix { };
|
||||
open3d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/open3d { };
|
||||
unified-planning = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/unified-planning { };
|
||||
blenderproc = pkgs.python3Packages.callPackage ./blenderproc.nix { };
|
||||
test-script = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/test-script { };
|
||||
webdataset = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/webdataset { };
|
||||
ansitable = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/ansitable { };
|
||||
megapose6d = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/megapose6d { webdataset = webdataset; };
|
||||
spatialmath = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/spatialmath { ansitable = ansitable; };
|
||||
slic3r = pkgs.callPackage ./pkgs/misc/slic3r { };
|
||||
in
|
||||
{
|
||||
|
@ -52,7 +63,7 @@
|
|||
};
|
||||
|
||||
packages = {
|
||||
inherit mayo blender bpy pysdf fstl darknet unified-planning slic3r megapose6d;
|
||||
inherit mayo blender bpy pysdf fstl darknet unified-planning slic3r megapose6d test-script;
|
||||
gazebo = ros.humble.gazebo;
|
||||
};
|
||||
|
||||
|
@ -90,21 +101,42 @@
|
|||
image-transport
|
||||
cv-bridge
|
||||
example-interfaces
|
||||
]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat ]) ++ [ megapose6d ];
|
||||
]) ++ (with pkgs; [ nlohmann_json glog lua5_3_compat ]);
|
||||
RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp";
|
||||
};
|
||||
|
||||
devShells.all = pkgs.mkShell {
|
||||
packages = [ mayo blender bpy pysdf fstl darknet slic3r ];
|
||||
};
|
||||
devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf pkgs.freecad blender ]; };
|
||||
devShells.up =
|
||||
|
||||
devShells.default =
|
||||
let
|
||||
my-python-packages = p: with p; [ unified-planning ];
|
||||
in
|
||||
my-python-packages = p: with p; [
|
||||
bpy
|
||||
pysdf
|
||||
unified-planning
|
||||
pybullet
|
||||
scipy
|
||||
spatialmath
|
||||
];
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = [ (pkgs.python3.withPackages my-python-packages) ];
|
||||
packages = [ (pkgs.python3.withPackages my-python-packages) pkgs.freecad mayo ];
|
||||
buildInputs = [ ];
|
||||
|
||||
# Run when the shell is started up
|
||||
shellHook = ''
|
||||
${pkgs.python3}/bin/python --version
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = [ "https://ros.cachix.org" "https://robossembler.cachix.org" ];
|
||||
extra-trusted-public-keys = [
|
||||
"ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo="
|
||||
"robossembler.cachix.org-1:56jBJHroRQSGpZFkW8XMquuzQTjAF/XTo6MogmBM7SQ="
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
33
pkgs/development/python-modules/ansitable/default.nix
Normal file
33
pkgs/development/python-modules/ansitable/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, colored
|
||||
, numpy
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ansitable";
|
||||
version = "0.9.7";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "petercorke";
|
||||
repo = "ansitable";
|
||||
rev = version;
|
||||
hash = "sha256-LRSdnHLcmQfwSpxnd3JjaLzpECWWnzi8aWLanu9qRUI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
colored
|
||||
numpy
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "ansitable" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Quick, easy and pretty display of tabular data or matrices, with optional ANSI color and borders";
|
||||
homepage = "https://github.com/petercorke/ansitable";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
71
pkgs/development/python-modules/open3d/default.nix
Normal file
71
pkgs/development/python-modules/open3d/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{ stdenv, lib, buildPythonPackage, fetchPypi, scipy, scikitlearn, numpy
|
||||
, matplotlib, ipywidgets, plyfile, pandas, pyyaml, tqdm, tree, unzip, zip
|
||||
, autoPatchelfHook, pytorchWithCuda, libtensorflow-bin, libusb, cudaPackages
|
||||
, libGL }:
|
||||
|
||||
let
|
||||
addict = buildPythonPackage {
|
||||
pname = "addict";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "addict";
|
||||
version = "2.4.0";
|
||||
sha256 = "1574sicy5ydx9pvva3lbx8qp56z9jbdwbj26aqgjhyh61q723cmk";
|
||||
};
|
||||
};
|
||||
|
||||
in buildPythonPackage {
|
||||
pname = "open3d";
|
||||
version = "0.12.0";
|
||||
format = "wheel";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "open3d";
|
||||
version = "0.12.0";
|
||||
format = "wheel";
|
||||
python = "cp37";
|
||||
abi = "cp37m";
|
||||
platform = "manylinux2014_x86_64";
|
||||
sha256 = "11ysnk2wni4ffg5gipi5yx0i7qa2p11rfaqgwzlp6f1z4fgfsiac";
|
||||
};
|
||||
|
||||
# sklearn dependency does not exist ofc... Why can't people
|
||||
# package their shit normally. This tilts me so much.
|
||||
patchPhase = ''
|
||||
${unzip}/bin/unzip ./dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl -d tmp
|
||||
rm ./dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl
|
||||
sed -i 's/sklearn/scikit-learn/g' tmp/open3d-0.12.0.dist-info/METADATA
|
||||
cd tmp
|
||||
${zip}/bin/zip -0 -r ../dist/open3d-0.12.0-cp37-cp37m-manylinux2014_x86_64.whl ./*
|
||||
cd ../
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# so deps
|
||||
stdenv.cc.cc.lib
|
||||
libusb.out
|
||||
pytorchWithCuda
|
||||
libtensorflow-bin
|
||||
cudaPackages.cudatoolkit_10_1.lib
|
||||
libGL
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
# py deps
|
||||
ipywidgets
|
||||
tqdm
|
||||
pyyaml
|
||||
pandas
|
||||
plyfile
|
||||
scipy
|
||||
scikitlearn
|
||||
numpy
|
||||
addict
|
||||
matplotlib
|
||||
];
|
||||
}
|
71
pkgs/development/python-modules/spatialmath/default.nix
Normal file
71
pkgs/development/python-modules/spatialmath/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, setuptools
|
||||
, ansitable
|
||||
, matplotlib
|
||||
, numpy
|
||||
, scipy
|
||||
, typing-extensions
|
||||
, coverage
|
||||
, flake8
|
||||
, pytest
|
||||
, pytest-timeout
|
||||
, pytest-xvfb
|
||||
, sympy
|
||||
, sphinx
|
||||
, sphinx-autodoc-typehints
|
||||
, sphinx-rtd-theme
|
||||
, sphinxcontrib-jsmath
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "spatialmath";
|
||||
version = "unstable-2023-06-07";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "petercorke";
|
||||
repo = "spatialmath-python";
|
||||
rev = "0a7761dcd563e91eb55e75d8f0b2a93198762315";
|
||||
hash = "sha256-kawe9yHX7T+Bvy7BfuKbotEjlnpynQAooBsynGJSfjo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
ansitable
|
||||
matplotlib
|
||||
numpy
|
||||
scipy
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = {
|
||||
dev = [
|
||||
coverage
|
||||
flake8
|
||||
pytest
|
||||
pytest-timeout
|
||||
pytest-xvfb
|
||||
sympy
|
||||
];
|
||||
docs = [
|
||||
sphinx
|
||||
sphinx-autodoc-typehints
|
||||
sphinx-rtd-theme
|
||||
sphinxcontrib-jsmath
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "spatialmath" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Create, manipulate and convert representations of position and orientation in 2D or 3D using Python";
|
||||
homepage = "https://github.com/petercorke/spatialmath-python";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
25
pkgs/development/python-modules/test-script/default.nix
Normal file
25
pkgs/development/python-modules/test-script/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ writers, python3Packages }:
|
||||
writers.writePython3Bin "test-script" { libraries = []; } ''
|
||||
import sys
|
||||
import os
|
||||
|
||||
|
||||
def my_function():
|
||||
arg = sys.argv[1]
|
||||
number = int(arg)
|
||||
if (number == 1):
|
||||
os.makedirs('13')
|
||||
if (number == 2):
|
||||
raise Exception("error")
|
||||
if (number == 3):
|
||||
print(200)
|
||||
print(200)
|
||||
print(200)
|
||||
print(200)
|
||||
print(200)
|
||||
print(200)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
my_function()
|
||||
''
|
|
@ -1,7 +1,6 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, fetchPypi
|
||||
, clingo
|
||||
}:
|
||||
let
|
||||
|
@ -10,9 +9,9 @@ let
|
|||
antlr472-python3-runtime = buildPythonPackage rec {
|
||||
pname = "antlr4-python3-runtime";
|
||||
version = "v4.7.2";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-Fozc7I+5FS6EqHym/SYbPVTI9jWPQqs7gTsUpxk7tQs=";
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://files.pythonhosted.org/packages/29/14/8ac135ec7cc9db3f768e2d032776718c6b23f74e63543f0974b4873500b2/antlr4-python3-runtime-4.7.2.tar.gz";
|
||||
sha256 = "0m7axw4fys10da5bwpz39nkdji15z8jka3w11m5dx0ym0lag0qvh";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Runtime for ANTLR";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue