1
0
Fork 0
mirror of https://github.com/lopsided98/nix-ros-overlay.git synced 2025-07-14 14:10:37 +03:00
ROS overlay for the Nix package manager
Find a file
Ben Wolsieffer 524bafb408 melodic: apriltag: remove patch
It didn't apply cleanly and upstream has added a workaround until the real fix
gets released.
2020-09-29 01:09:44 -04:00
.github superflore: make PR against staging 2020-09-15 01:26:46 -04:00
distros melodic: apriltag: remove patch 2020-09-29 01:09:44 -04:00
examples Update turtlebot3-gazebo example to melodic. 2020-04-17 14:52:39 -04:00
lib Improve overlay lib functions some more. 2020-08-02 15:05:33 -04:00
modules nixos: allow passing params to nodes 2020-09-14 14:46:37 -04:00
pkgs gazebo: fix patch source urls 2020-09-29 01:02:42 -04:00
.gitignore Fix rviz. 2019-04-06 16:26:04 -04:00
default.nix Automatically use my nixpkgs fork by default. 2020-01-13 12:07:13 -05:00
flake.lock flake: update nixpkgs 2020-09-29 00:55:59 -04:00
flake.nix flake: add nixosModule 2020-09-22 14:09:50 -04:00
overlay.nix Improve overlay lib functions some more. 2020-08-02 15:05:33 -04:00
README.md Update turtlebot3-gazebo example to melodic. 2020-04-17 14:52:39 -04:00
release.nix Add GitHub action. 2019-12-07 17:07:25 -05:00

ROS overlay for the Nix package manager

Easily install the Robot Operating System (ROS) on any Linux distribution

Want to use ROS, but don't want to run Ubuntu? This project uses the power of Nix make to it possible to develop and run ROS packages in the same way on any Linux machine.

Nix is a distro agnostic package manager that uses a purely functional programming language to reliably and reproducibly build software. These qualities have the potential to make it one of the easiest ways to run ROS on any machine, no matter the operating system.

This overlay is still experimental, so you may encounter some issues. Feel free to file a bug.

Setup

  1. Install Nix: https://nixos.org/nix/download.html
  2. (Optional) configure Nix to use ROS Cachix binary cache
  3. Try one of the examples

Examples

Turtlebot 3 simulation in Gazebo:

nix-shell \
  -I nix-ros-overlay=https://github.com/lopsided98/nix-ros-overlay/archive/master.tar.gz \
  --option extra-substituters 'https://ros.cachix.org' \
  --option trusted-public-keys 'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=' \
  '<nix-ros-overlay/examples/turtlebot3-gazebo.nix>'
# If not on NixOS, nixGL (https://github.com/guibou/nixGL) is needed for OpenGL support
roslaunch turtlebot3_gazebo turtlebot3_world.launch
# Spawn a new nix-shell in a new terminal and then:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Current status

What works:

  1. More than 1700 packages successfully built for ROS Kinetic
  2. Fully functional ROS development environment using nix-shell
  3. Automated generation of Nix package definitions using standard ROS tools (superflore)

What still needs to be done:

  1. Upstream changes to nixpkgs and ROS tools
  2. Test on more Linux distributions
  3. aarch64 binary cache
  4. macOS support

Configure Binary Cache

Prebuilt ROS packages are hosted on Cachix and built using GitHub Actions on public infrastructure.

To use this binary cache, either run cachix use ros or manually set the following options in nix.conf:

substituters = https://cache.nixos.org https://ros.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=