Files
rover-ros2/flake.nix
2026-02-23 01:38:10 -06:00

101 lines
2.8 KiB
Nix

{
description = "Development environment for ASTRA Anchor";
inputs = {
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop";
nixpkgs.follows = "nix-ros-overlay/nixpkgs";
astra-msgs.url =
"github:SHC-ASTRA/astra_msgs/2a90e7712424d8f44093334f7a359696d9398216";
};
outputs =
{ self, nix-ros-overlay, nixpkgs, astra-msgs }:
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ nix-ros-overlay.overlays.default ];
};
astra_msgs_pkgs = astra-msgs.packages.${system};
rosDistro = "humble";
in
{
devShells.default = pkgs.mkShell {
name = "ASTRA Anchor";
packages = with pkgs; [
colcon
astra_msgs_pkgs.astra-msgs
(pkgs.rosPackages.${rosDistro}.python3.withPackages (p: with p; [
pyserial
pygame
scipy
crccheck
black
]))
(with rosPackages.${rosDistro};
buildEnv {
paths = [
ros-core
rqt-graph
ros2cli
ros2run
ros2bag
rviz2
xacro
ament-cmake-core
python-cmake-module
diff-drive-controller
parameter-traits
generate-parameter-library
joint-state-publisher-gui
robot-state-publisher
ros2-control
controller-manager
control-msgs
control-toolbox
moveit-core
moveit-planners
moveit-common
moveit-msgs
moveit-ros-planning
moveit-ros-planning-interface
moveit-ros-visualization
moveit-configs-utils
moveit-ros-move-group
moveit-servo
moveit-simple-controller-manager
topic-based-ros2-control
pilz-industrial-motion-planner
pick-ik
ompl
joy
ros2-controllers
chomp-motion-planner
];
})
];
env = {
ASTRAMSGS = "${astra-msgs.outPath}";
};
shellHook = ''
export DISPLAY=''${DISPLAY:-:0}
export QT_X11_NO_MITSHM=1
'';
};
}
);
nixConfig = {
extra-substituters = [ "https://ros.cachix.org" ];
extra-trusted-public-keys =
[ "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=" ];
};
}