├── .gitignore ├── .travis.yaml ├── LICENSE ├── README.md ├── TravisCI └── travis.sh ├── azmq.rb ├── camodocal.rb ├── cisst.rb ├── cisstnetlib.rb ├── cmake-basis.rb ├── cppmt.rb ├── eigen-qld.rb ├── eigen3topython.rb ├── grl.rb ├── kinectv2calibrationcapture.rb ├── libfreenect2pclgrabber.rb ├── libnabo.rb ├── libpointmatcher.rb ├── linuxbrew-standalone.sh ├── linuxbrew.sh ├── pangolin.rb ├── rbdl.rb ├── rbdyn.rb ├── robone.rb ├── robonetracker.rb ├── robonetracker.sh ├── sawconstraintcontroller.rb ├── sch-core.rb ├── spacevecalg.rb ├── tasks.rb ├── trtk.rb └── ur_modern_driver.rb /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | *.obj 6 | 7 | # Precompiled Headers 8 | *.gch 9 | *.pch 10 | 11 | # Compiled Dynamic libraries 12 | *.so 13 | *.dylib 14 | *.dll 15 | 16 | # Fortran module files 17 | *.mod 18 | 19 | # Compiled Static libraries 20 | *.lai 21 | *.la 22 | *.a 23 | *.lib 24 | 25 | # Executables 26 | *.exe 27 | *.out 28 | *.app 29 | -------------------------------------------------------------------------------- /.travis.yaml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | install: 3 | - jdk_switcher use oraclejdk7 4 | # Warning: Setting DYLD_* vars can break dynamic linking. 5 | - unset DYLD_LIBRARY_PATH 6 | # Warning: You have a non-Homebrew 'pkg-config' in your PATH 7 | - sudo rm -f /usr/bin/pkg-config 8 | # Warning: "config" scripts exist outside your system or Homebrew directories. 9 | - sudo rm -f /usr/local/clang-3.4/bin/llvm-config 10 | 11 | # Install gcc-4.9 system wide[Default is gcc-4.6] 12 | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y > /dev/null 13 | - sudo apt-get update -qq > /dev/null 14 | - sudo apt-get install -y libyajl-dev libxml2-dev libxqilla-dev > /dev/null 15 | - sudo apt-get install -y libstdc++-4.9-dev > /dev/null 16 | - sudo apt-get install -y g++-4.9 gfortran-4.9 > /dev/null 17 | - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 90 > /dev/null 18 | - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 90 > /dev/null 19 | - sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.9 90 > /dev/null 20 | 21 | # Install linuxbrew essentials 22 | - sudo apt-get install -y build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev > /dev/null 23 | 24 | # Install BLAS, LAPACK 25 | - sudo apt-get install -y libblas-dev liblapack-dev > /dev/null 26 | # Install openmpi 27 | - sudo apt-get install openmpi-bin > /dev/null 28 | 29 | - cd .. 30 | - git clone https://github.com/Homebrew/linuxbrew.git 31 | - PATH=$PWD/linuxbrew/bin:$PATH 32 | - LD_LIBRARY_PATH=$PWD/linuxbrew/lib:$LD_LIBRARY_PATH 33 | 34 | # Symlink gcc, gfortran 35 | - ln -s $(which gcc) $PWD/linuxbrew/bin/gcc-$(gcc -dumpversion |cut -d. -f1,2) 36 | - ln -s $(which g++) $PWD/linuxbrew/bin/g++-$(g++ -dumpversion |cut -d. -f1,2) 37 | - ln -s $(which gfortran) $PWD/linuxbrew/bin/gfortran-$(gfortran -dumpversion |cut -d. -f1,2) 38 | 39 | # Install pkg-config[See: https://github.com/Homebrew/homebrew-science/pull/1664#issuecomment-69259072] 40 | - brew install pkg-config 41 | 42 | - mkdir -p linuxbrew/Library/Taps/homebrew 43 | 44 | # Tap homebrew/python 45 | - brew tap homebrew/python 46 | 47 | - mv homebrew-science linuxbrew/Library/Taps/homebrew/ 48 | - cd linuxbrew/Library/Taps/homebrew/homebrew-science 49 | - brew tap --repair 50 | 51 | # Incorrect file permissions: chmod 644 52 | - chmod 644 *.rb 53 | script: 54 | - bash travisCI/travis.sh 55 | notifications: 56 | email: false -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Andrew Hundt 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # homebrew-robotics 2 | 3 | [Homebrew](https://brew.sh) formulae to automatically install tools for use in the fields of Robotics, Machine Learning, and Computer Vision. 4 | 5 | ## OS X Quick Setup 6 | 7 | ```bash 8 | # install homebrew package manager 9 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 10 | # install caskroom application manager 11 | brew install caskroom/cask/brew-cask 12 | # tap homebrew-science package repository 13 | brew tap homebrew/science 14 | # tap ahundt-robotics repository 15 | brew tap ahundt/robotics 16 | ``` 17 | 18 | The basic setup is done! You may want to install some useful applications as well: 19 | 20 | ``` 21 | # caskroom is for installing full applications 22 | brew install caskroom 23 | # NVIDIA CUDA 24 | brew install Caskroom/cask/cuda 25 | # Coppelia robotics' vrep robot simulator 26 | brew install Caskroom/cask/vrep 27 | ``` 28 | 29 | 30 | ### Libraries to install once set up: 31 | 32 | #### [grl](https://github.com/ahundt/grl/) generic robotics library 33 | 34 | grl implements control of the kuka iiwa arm and integrates hand eye calibration with [vrep](http://www.coppeliarobotics.com/index.html) 35 | 36 | brew install grl 37 | 38 | #### [cisst](https://github.com/jhu-cisst/cisst) is the JHU computer integrated surgery library 39 | 40 | brew install cisst 41 | 42 | #### [camodocal](https://github.com/hengli/camodocal) multiple camera calibration library 43 | 44 | camodocal is a well written library with calibration of cameras and hand eye calibration. 45 | 46 | brew install camodocal 47 | 48 | 49 | ## Step by Step Setup for OS X and Linux 50 | 51 | 1. Setup brew for OS X or Linux 52 | - [Homebrew OS X setup instructions](http://brew.sh/) or paste `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` into the terminal 53 | - [Linuxbrew setup instructions](http://linuxbrew.sh/), or paste `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/linuxbrew/go/install)"` into the terminal 54 | 2. Linux only - add linuxbrew to your `~/.bashrc` or ~/.zshrc: 55 | export PKG_CONFIG_PATH="/usr/bin/pkg-config:$HOME/.linuxbrew/bin/pkg-config" 56 | export PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig:$HOME/.linuxbrew/lib/pkgconfig" 57 | export PATH="$HOME/.linuxbrew/bin:$PATH" 58 | export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" 59 | export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH" 60 | 3. Check that it is setup correctly `brew help` should output the homebrew help. 61 | 4. OS X only - install [Homebrew Cask](http://caskroom.io/) `brew install caskroom/cask/brew-cask` 62 | 5. Run `brew tap homebrew/science`, [homebrew-science](http://brew.sh/homebrew-science/) contains many scientific libraries, such as OpenCV and pcl 63 | 6. Run `brew tap ahundt/robotics` to load this set of package formulas. 64 | 7. Install the libraries you want to use, for example `brew install cisst` or `brew install grl`. 65 | 8. Done! 66 | 67 | Note that on linux you may want to use `brew install libname --env=inherit`, so it uses your native environment variable configuration. 68 | 69 | Specific Situations 70 | ------------------- 71 | 72 | 73 | ##### Linux or OS X quick robonetracker first setup 74 | 75 | [robonetracker](https://github.com/ahundt/robonetracker ) is a private github repository at JHU, make sure 76 | you have access before running this script. Also, [make sure you have an ssh key configured](https://help.github.com/articles/error-permission-denied-publickey/), 77 | if you don't you'll have to finish manually! 78 | 79 | First go through the step by step setup above. 80 | 81 | Run this command to perform setup: 82 | 83 | bash <(curl -fsSL https://raw.githubusercontent.com/ahundt/homebrew-robotics/master/robonetracker.sh) 84 | 85 | If you don't have access to robonetracker, run the script above for the initial setup, then you can access the open source subset of the functionality via the robone repository. 86 | 87 | brew install robone 88 | brew link --overwrite robone 89 | 90 | Once your repository is installed, you need to install V-REP. On OS X you run: 91 | 92 | brew install cackroom/cask/brew-cask 93 | brew cask install vrep 94 | 95 | On other platforms [download and install V-REP from the website](http://www.coppeliarobotics.com/downloads.html). 96 | 97 | Once everything is installed you need to create symlinks in the same folder as the V-REP executable so it can find the plugins. 98 | 99 | Find and open `SymbolicLinksRoboneSimulation.sh`. When using robone run `brew info robone` which will print the install directory, then it will be in `share/data`. With robonetracker it will be in `/path/to/robonetracker/modules/robone/data/SymbolicLinksRoboneSimulation.sh` 100 | 101 | You will need to edit `SymbolicLinksRoboneSimulation.sh` so that all the paths are correct for your OS configuration, you will probably have to modify every variable and extension setting to be appropriate for your system. This script puts symlinks to all the relevant libraries into the directory where the vrep executable is, so you need to read the script and update the paths so they will be correctly linked into the V-REP folder. 102 | 103 | - `LIBDIR` - the directory relative to the installation parent level directory in which libraries are installed. Examples are /lib/Debug with Xcode and /lib with make builds. 104 | - `LIBEXT` - the extension of the plugins. `.dylib` on OS X, `.so` on Linux. 105 | - `TRACKERDIR` - path to robonetracker repository or if everything is installed it should be `/usr/local/`. 106 | - `BUILDDIR` - directory where the build was created relative to TRACKERDIR. Often `/build` for `robonetracker/build`. 107 | - `VREPDIR` - path to the directory where the vrep executable is. Note that on OS X vrep.app is a folder, and the vrep executable is in `vrep.app/Contents/MacOS`. This script will likely need some modification for non-robonetracker use cases. 108 | 109 | After making the modifications run `./SymbolicLinksRoboneSimulation.sh`. Check the vrep directory with `ls -alh` and verify that every symlink from the vrep folder goes to a real file. Repair paths as necessary, though some may not be available depending on your configuration. 110 | 111 | Open V-REP, `File>Open>path/to/RoboneSimulation.ttt` (In the same directory as `SymbolicLinksRoboneSimulation.sh`). This should open the demo simulation. If you hit play and see it start running that means you are now all set up! Congratulations! 112 | 113 | 114 | ##### Standalone linuxbrew installation 115 | 116 | The default installation of linuxbrew uses dependencies provided by the OS. A consistent environment across linux versions is achivable with [standalone linuxbrew](https://github.com/Homebrew/linuxbrew/wiki/Standalone-Installation) or paste `bash <(curl -fsSL https://raw.githubusercontent.com/ahundt/homebrew-robotics/master/linuxbrew-standalone.sh)`. 117 | 118 | However, there are currently some bugs and complexities in using this version because every component is compiled from source, so the versions loaded and interaction of these libraries is completely separate from the underlying OS. 119 | 120 | ##### Using vmware fusion and vagrant (not working yet) 121 | Running and testing these scripts on Ubuntu from an OS X machine with VMWare Fusion. 122 | 123 | First install VMWare Fusion and follow all the initial setup steps above, including Homebrew Cask. 124 | 125 | 126 | ```bash 127 | brew install Caskroom/cask/vagrant 128 | vagrant plugin install vagrant-vmware-fusion 129 | vagrant box add ubuntu https://oss-binaries.phusionpassenger.com/vagrant/boxes/latest/ubuntu-14.04-amd64-vmwarefusion.box 130 | mkdir ~/source/vagrant 131 | cd ~/source/vagrant 132 | vagrant init ubuntu 133 | 134 | ``` 135 | 136 | 137 | ##### Using the latest source with debugging enabled 138 | 139 | Below is an example of installing the latest cisstnetlib devel branch with debugging symbols enabled. 140 | 141 | ```bash 142 | brew install --HEAD --cc=clang --build-from-source --with-debug -vd cisstnetlib 143 | ``` 144 | 145 | 146 | ##### Some useful applications that can be installed on OS X: 147 | 148 | ``` 149 | # caskroom is for installing full applications 150 | brew install caskroom 151 | # NVIDIA CUDA 152 | brew install Caskroom/cask/cuda 153 | # Coppelia robotics' vrep robot simulator 154 | brew install Caskroom/cask/vrep 155 | # VMWare fusion (requires license) 156 | brew install Caskroom/cask/vmware-fusion 157 | # Vagrant (command line control of VMs), requires license with VMWare, free with virualbox 158 | brew install Caskroom/cask/vagrant 159 | ``` -------------------------------------------------------------------------------- /TravisCI/travis.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Credits: http://stackoverflow.com/a/26082445/756986 3 | set -e 4 | 5 | export PING_SLEEP=60s 6 | export WORKDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 7 | export BUILD_OUTPUT=$WORKDIR/build.out 8 | 9 | touch $BUILD_OUTPUT 10 | 11 | dump_output() { 12 | echo "############# Dependency build log(last 3Mb) start #############" 13 | tail --bytes=3072 $BUILD_OUTPUT 14 | echo "############# Dependency build log end #############" 15 | } 16 | error_handler() { 17 | echo ERROR: An error was encountered with the build. 18 | dump_output 19 | exit 1 20 | } 21 | # If an error occurs, run our error handler to output a tail of the build 22 | trap 'error_handler' ERR 23 | 24 | # Set up a repeating loop to send some output to Travis. 25 | 26 | bash -c "while true; do echo \$(date) - building ...; sleep $PING_SLEEP; done" & 27 | PING_LOOP_PID=$! 28 | 29 | if [ "$TRAVIS_PULL_REQUEST" == "false" ] 30 | then 31 | export changed_files=`git diff-tree --no-commit-id --name-only -r $TRAVIS_COMMIT | grep .rb ` 32 | else 33 | git fetch origin pull/${TRAVIS_PULL_REQUEST}/head:travis-pr-${TRAVIS_PULL_REQUEST} 34 | git checkout travis-pr-${TRAVIS_PULL_REQUEST} 35 | echo "commit: $TRAVIS_COMMIT" 36 | echo "log: $(git log -1)" 37 | export changed_files=`git diff-tree --no-commit-id --name-only HEAD^ HEAD | grep .rb` 38 | fi 39 | echo $changed_files 40 | if [ -z "$changed_files" ] 41 | then 42 | echo "Nothing to test" 43 | kill $PING_LOOP_PID 44 | exit 0 45 | fi 46 | 47 | for file in $changed_files 48 | do 49 | # Dump output of building dependencies to log file 50 | brew reinstall $(brew deps $file) >> $BUILD_OUTPUT 2>&1 51 | # Explicitly print the verbose output of test-bot 52 | brew test-bot $file -v 53 | done 54 | 55 | # The build was successful dump the output 56 | dump_output 57 | 58 | # nicely terminate the ping output loop 59 | kill $PING_LOOP_PID -------------------------------------------------------------------------------- /azmq.rb: -------------------------------------------------------------------------------- 1 | class Azmq < Formula 2 | desc "C++ language binding library integrating ZeroMQ with Boost Asio" 3 | homepage "https://github.com/zeromq/azmq" 4 | url "https://github.com/zeromq/azmq.git", :branch => "master" 5 | head "https://github.com/zeromq/azmq.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | depends_on "zeromq" 11 | 12 | def install 13 | cmake_args = std_cmake_args + %W[ 14 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 15 | ] 16 | 17 | system "cmake", ".", *cmake_args 18 | system "make", "install" 19 | end 20 | 21 | test do 22 | system "false" 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /camodocal.rb: -------------------------------------------------------------------------------- 1 | # Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md 2 | # /usr/local/Library/Contributions/example-formula.rb 3 | # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! 4 | 5 | class Camodocal < Formula 6 | desc "CamOdoCal: Automatic Intrinsic and Extrinsic Calibration of a Rig with Multiple Generic Cameras and Odometry" 7 | homepage "https://github.com/hengli/camodocal" 8 | url "https://github.com/hengli/camodocal.git", :branch => "master" 9 | head "https://github.com/hengli/camodocal.git", :branch => "devel" 10 | version "1.0.1" 11 | #sha256 "" 12 | 13 | depends_on "cmake" => :build 14 | depends_on "openblas" => :recommended 15 | depends_on "suite-sparse" => :required 16 | depends_on "eigen" => :required 17 | depends_on "metis" => :recommended 18 | depends_on "ceres-solver" => :recommended 19 | depends_on "gflags" => :recommended 20 | depends_on "glog" => :recommended 21 | depends_on "openblas" => :recommended 22 | depends_on "opencv3" => :recommended 23 | depends_on "opencv" => :optional 24 | 25 | def install 26 | # ENV.deparallelize # if your formula fails when building in parallel 27 | cmake_args = std_cmake_args + %W[ 28 | -DSUITESPARSE_DIR=#{Formula["suite-sparse"].prefix} 29 | ] 30 | 31 | if build.with? "opencv3" 32 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv3"].prefix}" 33 | elsif build.with? "opencv" 34 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv"].prefix}" 35 | end 36 | 37 | system "cmake", ".", *cmake_args 38 | system "make", "install" # if this fails, try separate make/make install steps 39 | end 40 | 41 | test do 42 | # `test do` will create, run in and delete a temporary directory. 43 | # 44 | # This test will fail and we won't accept that! It's enough to just replace 45 | # "false" with the main program this formula installs, but it'd be nice if you 46 | # were more thorough. Run the test with `brew test azmq`. Options passed 47 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 48 | # 49 | # The installed folder is not in the path, so use the entire path to any 50 | # executables being tested: `system "#{bin}/program", "do", "something"`. 51 | system "false" 52 | end 53 | end 54 | -------------------------------------------------------------------------------- /cisst.rb: -------------------------------------------------------------------------------- 1 | # Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md 2 | # /usr/local/Library/Contributions/example-formula.rb 3 | # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! 4 | 5 | class Cisst < Formula 6 | desc "cisst combines robotics, stereo vision, intraoperative imaging, and related infrastructure" 7 | homepage "https://github.com/jhu-cisst/cisst" 8 | url "https://github.com/jhu-cisst/cisst.git", :tag => "1.0.5" 9 | head "https://github.com/jhu-cisst/cisst.git", :branch => "devel" 10 | version "1.0.5" 11 | #sha256 "" 12 | 13 | option "with-debug","build library with debug symbols enabled" 14 | depends_on "cmake" => :build 15 | depends_on "cisstnetlib" => :recommended 16 | depends_on "libxml2" => :recommended 17 | depends_on "opencv" => :optional 18 | depends_on "qt" => :optional 19 | depends_on "qt5" => :optional 20 | depends_on "fltk" => :optional 21 | 22 | def install 23 | # ENV.deparallelize # if your formula fails when building in parallel 24 | cmake_args = std_cmake_args + %W[ 25 | -DCISST_BUILD_EXAMPLES=OFF 26 | -DCISST_BUILD_SHARED_LIBS=OFF 27 | -DCISST_BUILD_TESTS=OFF 28 | -DCISST_HAS_CISSTNETLIB=ON 29 | -DCISST_HAS_IOS=OFF 30 | -DCISST_HAS_JSON=OFF 31 | -DCISST_HAS_QT4=OFF 32 | -DCISST_MTS_HAS_ICE=OFF 33 | -DCISST_USE_EXTERNAL=OFF 34 | -DCISST_XML_LIB=LibXml2 35 | -DCISST_cisst3DUserInterface=OFF 36 | -DCISST_cisstCommon=ON 37 | -DCISST_cisstCommonXML=ON 38 | -DCISST_cisstInteractive=OFF 39 | -DCISST_cisstMultiTask=ON 40 | -DCISST_cisstNumerical=ON 41 | -DCISST_cisstOSAbstraction=ON 42 | -DCISST_cisstParameterTypes=ON 43 | -DCISST_cisstRobot=ON 44 | -DCISST_cisstStereoVision=OFF 45 | -DCISST_cisstVector=ON 46 | -DFORCE_CISSTNETLIB_CONFIG=ON 47 | -DCisstNetlib_DIR=#{Formula["cisstnetlib"].opt_prefix}/cmake 48 | ] 49 | 50 | if build.with? "debug" 51 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 52 | else 53 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 54 | end 55 | 56 | system "cmake", ".", *cmake_args 57 | system "make", "install" # if this fails, try separate make/make install steps 58 | end 59 | 60 | test do 61 | # `test do` will create, run in and delete a temporary directory. 62 | # 63 | # This test will fail and we won't accept that! It's enough to just replace 64 | # "false" with the main program this formula installs, but it'd be nice if you 65 | # were more thorough. Run the test with `brew test azmq`. Options passed 66 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 67 | # 68 | # The installed folder is not in the path, so use the entire path to any 69 | # executables being tested: `system "#{bin}/program", "do", "something"`. 70 | system "false" 71 | end 72 | end 73 | -------------------------------------------------------------------------------- /cisstnetlib.rb: -------------------------------------------------------------------------------- 1 | # Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md 2 | # /usr/local/Library/Contributions/example-formula.rb 3 | # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! 4 | 5 | class Cisstnetlib < Formula 6 | desc "cisstNetlib wraps numerical routines found on http://www.netlib.org" 7 | homepage "https://github.com/jhu-cisst/cisstNetlib" 8 | url "https://github.com/jhu-cisst/cisstNetlib.git", :branch => "master" 9 | head "https://github.com/jhu-cisst/cisstNetlib.git" 10 | version "0.01" 11 | #sha256 "" 12 | 13 | option "with-debug","build library with debug symbols enabled" 14 | depends_on "cmake" => :build 15 | depends_on "gcc" => :build 16 | 17 | def install 18 | # ENV.deparallelize # if your formula fails when building in parallel 19 | cmake_args = std_cmake_args + %W[ 20 | -DCISSTNETLIB_LANGUAGE=C 21 | ] 22 | 23 | if build.with? "debug" 24 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 25 | else 26 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 27 | end 28 | 29 | system "cmake", ".", *cmake_args 30 | system "make", "install" # if this fails, try separate make/make install steps 31 | end 32 | 33 | test do 34 | # `test do` will create, run in and delete a temporary directory. 35 | # 36 | # This test will fail and we won't accept that! It's enough to just replace 37 | # "false" with the main program this formula installs, but it'd be nice if you 38 | # were more thorough. Run the test with `brew test azmq`. Options passed 39 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 40 | # 41 | # The installed folder is not in the path, so use the entire path to any 42 | # executables being tested: `system "#{bin}/program", "do", "something"`. 43 | system "false" 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /cmake-basis.rb: -------------------------------------------------------------------------------- 1 | class CmakeBasis < Formula 2 | desc "cmake build and installer generation tools" 3 | homepage "https://cmake-basis.github.io" 4 | url "https://github.com/cmake-basis/BASIS.git", :using => :git, :tag => "v3.3.1" 5 | head "https://github.com/cmake-basis/BASIS.git", :branch => "master" 6 | version "3.3.1" 7 | #sha256 "" 8 | 9 | option "without-project-tool","Don't include the app 'basisproject' which helps generate and update projects" 10 | option "without-docs", "Don't build man pages" 11 | option "with-perl", "Include the perl module" 12 | option "with-perl-utilities", "Include perl standardized command line utilities" 13 | option "with-python-utilities", "Include python standardized command line utilities" 14 | depends_on "cmake" => :build 15 | depends_on "doxygen" => :recommended 16 | depends_on "python@2" => :required 17 | #depends_on :jython => :optional 18 | # todo: add sphinx python dependency 19 | #depends_on :x11 # if your formula requires any X11/XQuartz components 20 | 21 | # The optional devel block is only executed if the user passes `--devel`. 22 | # Use this to specify a not-yet-released version of a software. 23 | devel do 24 | 25 | url "https://github.com/schuhschuh/cmake-basis.git", :using => :git, :branch => "develop" 26 | 27 | end 28 | 29 | head do 30 | 31 | url "https://github.com/schuhschuh/cmake-basis.git", :using => :git, :branch => "master" 32 | 33 | end 34 | 35 | def install 36 | 37 | cmake_args = std_cmake_args 38 | cmake_args << "-DBUILD_DOCUMENTATION=OFF" 39 | if build.with? "docs" 40 | cmake_args << "-DUSE_Sphinx=ON" 41 | else 42 | cmake_args << "-DUSE_Sphinx=OFF" 43 | end 44 | if build.with? "perl" 45 | cmake_args << "-DUSE_Perl=ON" 46 | else 47 | cmake_args << "-DUSE_Perl=OFF" 48 | end 49 | if build.with? "perl-utilities" 50 | cmake_args << "-DBUILD_BASIS_UTILITIES_FOR_PERL=ON -DUSE_Perl=ON" 51 | else 52 | cmake_args << "-DBUILD_BASIS_UTILITIES_FOR_PERL=OFF" 53 | end 54 | if build.with? "python" 55 | cmake_args << "-DUSE_PythonInterp=ON" 56 | else 57 | cmake_args << "-DUSE_PythonInterp=OFF" 58 | end 59 | if build.with? "python-utilities" 60 | cmake_args << "-DBUILD_BASIS_UTILITIES_FOR_PYTHON=ON -DUSE_PythonInterp=ON" 61 | else 62 | cmake_args << "-DBUILD_BASIS_UTILITIES_FOR_PYTHON=OFF" 63 | end 64 | #if build.with? "jython" 65 | # cmake_args << "-DUSE_JythonInterp=ON" 66 | #else 67 | cmake_args << "-DUSE_JythonInterp=OFF" 68 | #end 69 | if build.with? "project-tool" 70 | cmake_args << "-DBUILD_PROJECT_TOOL=ON" 71 | else 72 | cmake_args << "-DBUILD_PROJECT_TOOL=OFF" 73 | end 74 | 75 | mkdir "build" do 76 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 77 | system "make" 78 | system "make", "install" 79 | end 80 | end 81 | 82 | test do 83 | system "false" 84 | end 85 | end 86 | -------------------------------------------------------------------------------- /cppmt.rb: -------------------------------------------------------------------------------- 1 | class Cppmt < Formula 2 | desc "Deformable Object Tracking (CMT) method for visual object tracking in C++" 3 | homepage "https://github.com/gnebehay/CppMT" 4 | url "https://github.com/gnebehay/CppMT.git", :branch => "master" 5 | head "https://github.com/gnebehay/CppMT.git" 6 | version "1.0.6" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "opencv" => :recommended 10 | depends_on "opencv3" => :optional 11 | 12 | def install 13 | cmake_args = std_cmake_args 14 | 15 | if build.with? "opencv3" 16 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv3"].prefix}" 17 | elsif build.with? "opencv" 18 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv"].prefix}" 19 | end 20 | 21 | mkdir "build" do 22 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 23 | system "make" 24 | system "make", "install" 25 | end 26 | end 27 | 28 | test do 29 | system "false" 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /eigen-qld.rb: -------------------------------------------------------------------------------- 1 | class EigenQld < Formula 2 | desc "Use the QLD QP solver with the Eigen3 library" 3 | homepage "https://github.com/jorisv/eigen-qld" 4 | url "https://github.com/jorisv/eigen-qld.git", :branch => "master" 5 | head "https://github.com/jorisv/eigen-qld.git" 6 | version "0.1" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "eigen" 10 | depends_on "boost" 11 | depends_on "gcc" => :recommended # includes gfortran, may already be on system w/ linuxbrew 12 | 13 | def install 14 | cmake_args = std_cmake_args + %W[ 15 | ] 16 | 17 | mkdir "build" do 18 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 19 | system "make" 20 | system "make", "install" 21 | end 22 | end 23 | 24 | test do 25 | system "false" 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /eigen3topython.rb: -------------------------------------------------------------------------------- 1 | class Eigen3topython < Formula 2 | desc "C++ Convex Hull Implementation and computation algorithms" 3 | homepage "https://github.com/jorisv/Eigen3ToPython" 4 | url "https://github.com/jorisv/Eigen3ToPython.git", :branch => "master" 5 | head "https://github.com/jorisv/Eigen3ToPython.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | depends_on "eigen" 11 | depends_on "python@2" => :recommended if MacOS.version <= :snow_leopard 12 | depends_on "python@3" => :optional 13 | 14 | def install 15 | cmake_args = std_cmake_args + %W[ 16 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 17 | ] 18 | 19 | system "cmake", ".", *cmake_args 20 | system "make", "install" 21 | end 22 | 23 | test do 24 | system "false" 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /grl.rb: -------------------------------------------------------------------------------- 1 | class Grl < Formula 2 | desc "Generic Robotics Library, long term goal of providing Generic Programming robotics tools in C++11. Currently implements Kuka LBR iiwa drivers and V-REP integration." 3 | 4 | homepage "https://github.com/ahundt/grl" 5 | url "https://github.com/ahundt/grl.git", :using => :git, :branch => "master" 6 | version "3.0.0" 7 | homepage "https://github.com/ahundt/grl" 8 | 9 | option "with-debug","build library with debug symbols enabled" 10 | option "without-example", "Include example code" 11 | option "without-testing", "Include testing code" 12 | option "docs", "build docs" 13 | depends_on "cmake" => :build 14 | depends_on "cmake-basis" => :build 15 | depends_on "flatbuffers" 16 | depends_on "boost" 17 | depends_on "eigen" 18 | depends_on "zeromq" 19 | depends_on "azmq" 20 | depends_on "homebrew/science/suite-sparse" 21 | depends_on "cisstnetlib" => :recommended 22 | depends_on "cisst" => :recommended 23 | depends_on "ur_modern_driver" => :recommended 24 | depends_on "opencv" => :recommended 25 | depends_on "opencv3" => :optional 26 | 27 | 28 | head do 29 | 30 | url "git@github.com:ahundt/grl.git", :using => :git, :branch => "master" 31 | 32 | end 33 | 34 | def install 35 | # ENV.deparallelize # if your formula fails when building in parallel 36 | cmake_args = std_cmake_args + %W[ 37 | -DBUILD_ALL_MODULES=ON 38 | -DBASIS_DIR=#{Formula["cmake-basis"].opt_prefix}/lib/cmake/basis 39 | ] 40 | 41 | 42 | if build.with? "opencv3" 43 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv3"].prefix}" 44 | elsif build.with? "opencv" 45 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv"].prefix}" 46 | end 47 | 48 | if build.with? "debug" 49 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 50 | else 51 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 52 | end 53 | 54 | if build.with? "docs" 55 | cmake_args << "-DBUILD_DOCUMENTATION=ON" 56 | else 57 | cmake_args << "-DBUILD_DOCUMENTATION=OFF" 58 | end 59 | 60 | if build.with? "testing" 61 | cmake_args << "-DBUILD_TESTING=ON" 62 | else 63 | cmake_args << "-DBUILD_TESTING=OFF" 64 | end 65 | 66 | if build.with? "cisst" 67 | cmake_args << "-Dcisst_DIR=#{Formula["cisst"].opt_prefix}/cmake" 68 | end 69 | 70 | if build.with? "cisstnetlib" 71 | cmake_args << "-DCisstNetlib_DIR=#{Formula["cisstnetlib"].opt_prefix}/cmake" 72 | end 73 | 74 | if build.with? "ur_modern_driver" 75 | cmake_args << "-Dur_modern_driver_DIR=#{Formula["ur_modern_driver"].opt_prefix}/cmake" 76 | end 77 | 78 | mkdir "build" do 79 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 80 | system "make" 81 | system "make", "install" 82 | end 83 | end 84 | 85 | test do 86 | # `test do` will create, run in and delete a temporary directory. 87 | # 88 | # This test will fail and we won't accept that! It's enough to just replace 89 | # "false" with the main program this formula installs, but it'd be nice if you 90 | # were more thorough. Run the test with `brew test grl`. Options passed 91 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 92 | # 93 | # The installed folder is not in the path, so use the entire path to any 94 | # executables being tested: `system "#{bin}/program", "do", "something"`. 95 | system "false" 96 | end 97 | end 98 | -------------------------------------------------------------------------------- /kinectv2calibrationcapture.rb: -------------------------------------------------------------------------------- 1 | class Kinectv2calibrationcapture < Formula 2 | desc "C++ language binding library integrating ZeroMQ with Boost Asio" 3 | homepage "https://github.com/giacomodabisias/kinectv2CalibrationCapture" 4 | url "https://github.com/giacomodabisias/kinectv2CalibrationCapture.git", :branch => "master" 5 | head "https://github.com/giacomodabisias/kinectv2CalibrationCapture.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "pcl" 10 | depends_on "opencv" 11 | 12 | def install 13 | system "cmake", ".", *std_cmake_args 14 | system "make", "install" 15 | end 16 | 17 | test do 18 | system "false" 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /libfreenect2pclgrabber.rb: -------------------------------------------------------------------------------- 1 | class Libfreenect2pclgrabber < Formula 2 | desc "C++ language binding library integrating ZeroMQ with Boost Asio" 3 | homepage "https://github.com/giacomodabisias/libfreenect2pclgrabber" 4 | url "https://github.com/giacomodabisias/libfreenect2pclgrabber.git", :branch => "master" 5 | head "https://github.com/giacomodabisias/libfreenect2pclgrabber.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "pcl" 10 | depends_on "opencv" 11 | 12 | def install 13 | system "cmake", ".", *std_cmake_args 14 | system "make", "install" 15 | end 16 | 17 | test do 18 | system "false" 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /libnabo.rb: -------------------------------------------------------------------------------- 1 | class Libnabo < Formula 2 | desc "A fast K Nearest Neighbor library for low-dimensional spaces" 3 | homepage "https://github.com/ethz-asl/libnabo" 4 | url "https://github.com/ethz-asl/libnabo.git", :branch => "master" 5 | head "https://github.com/ethz-asl/libnabo.git" 6 | version "1.0.6" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | depends_on "eigen" 11 | 12 | def install 13 | cmake_args = std_cmake_args + %W[ 14 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 15 | ] 16 | 17 | mkdir "build" do 18 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 19 | system "make" 20 | system "make", "install" 21 | end 22 | end 23 | 24 | test do 25 | system "false" 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /libpointmatcher.rb: -------------------------------------------------------------------------------- 1 | class Libpointmatcher < Formula 2 | desc "An Iterative Closest Point library for 2-D/3-D mapping in robotic 3 | " 4 | homepage "https://github.com/ethz-asl/libpointmatcher" 5 | url "https://github.com/ethz-asl/libpointmatcher.git", :branch => "master" 6 | head "https://github.com/ethz-asl/libpointmatcher.git" 7 | version "1.2.1" 8 | 9 | depends_on "cmake" => :build 10 | depends_on "boost" 11 | depends_on "eigen" 12 | depends_on "libnabo" 13 | 14 | def install 15 | cmake_args = std_cmake_args + %W[ 16 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 17 | ] 18 | 19 | mkdir "build" do 20 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 21 | system "make" 22 | system "make", "install" 23 | end 24 | end 25 | 26 | test do 27 | system "false" 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /linuxbrew-standalone.sh: -------------------------------------------------------------------------------- 1 | # /bin/bash 2 | set -e 3 | set -u 4 | set -x 5 | 6 | cd $HOME 7 | 8 | # TODO: The next ln -s line breaks cross compiling with multiarch, need an alternative! 9 | # source: http://stackoverflow.com/a/9004026/99379 10 | if [! -d "/usr/lib64" ]; then 11 | # Control will enter here if $DIRECTORY exists. 12 | sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64 13 | fi 14 | sudo apt-get update -y 15 | sudo apt-get update --fix-missing -y 16 | sudo apt-get install build-essential curl g++ git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev gawk make patch tcl -y 17 | 18 | unset LD_LIBRARY_PATH PKG_CONFIG_PATH HOMEBREW_CC 19 | PATH=$HOME/.linuxbrew/bin:/usr/local/bin:/usr/bin:/bin 20 | 21 | if [ ! -d "$HOME/.linuxbrew" ]; then 22 | yes | ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/linuxbrew/go/install)" 23 | # hang on here. you will have to press return 24 | # note that even if brew doctor is a little unhappy we want to keep going 25 | brew doctor || true 26 | 27 | mkdir $HOME/.linuxbrew/lib 28 | ln -s lib $HOME/.linuxbrew/lib64 29 | ln -s $HOME/.linuxbrew/lib $HOME/.linuxbrew/lib64 30 | ln -s /usr/lib64/libstdc++.so.6 /lib64/libgcc_s.so.1 $HOME/.linuxbrew/lib/ 31 | fi 32 | PATH=$HOME/.linuxbrew/lib:$PATH 33 | export PATH 34 | LIBRARY_PATH=$HOME/.linuxbrew/lib 35 | export LIBRARY_PATH 36 | LD_LIBRARY_PATH=$HOME/.linuxbrew/lib 37 | export LD_LIBRARY_PATH 38 | 39 | # before this, you may want to `brew edit glibc` to produce compatibility for your particular kernel, for example: 40 | # "--enable-version=2.6.18" 41 | 42 | #brew unlink gawk 43 | brew install glibc 44 | brew unlink glibc 45 | brew install https://raw.githubusercontent.com/Homebrew/homebrew-dupes/master/zlib.rb 46 | brew install binutils 47 | brew link glibc 48 | brew install patchelf 49 | brew install gcc --with-glibc --only-dependencies -v 50 | # When tested gcc was working except for the linking step, that's why it is force-accepted with ||true 51 | # TODO: make it so force accepting isn't necessary and errors are shown correctly 52 | brew install gcc --with-glibc -v || true 53 | rm -f $HOME/.linuxbrew/lib/{libstdc++.so.6,libgcc_s.so.1} 54 | #brew link gcc --overwrite 55 | brew unlink gcc && brew link gcc 56 | export HOMEBREW_CC=gcc 57 | 58 | brew install bzip2 curl expat 59 | brew install git --with-brewed-curl --with-brewed-openssl --without-tcl-tk 60 | brew tap homebrew/dupes 61 | brew install coreutils findutils gawk gnu-sed gnu-which grep libpng libxml2 libxslt make ncurses readline 62 | #ln -s ncursesw/curses.h ncursesw/form.h ncursesw/ncurses.h ncursesw/term.h ncursesw/termcap.h $HOME/.linuxbrew/include/ 63 | #ln -s libncurses.a $HOME/.linuxbrew/lib/libcurses.a 64 | #ln -s libncurses.so $HOME/.linuxbrew/lib/libcurses.so 65 | brew install ruby 66 | PATH=$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin 67 | brew install hello && brew test hello; brew remove hello 68 | -------------------------------------------------------------------------------- /linuxbrew.sh: -------------------------------------------------------------------------------- 1 | # /bin/bash 2 | set -e 3 | set -u 4 | set -x 5 | 6 | cd $HOME 7 | 8 | # TODO: The next ln -s line breaks cross compiling with multiarch, need an alternative! 9 | # source: http://stackoverflow.com/a/9004026/99379 10 | if [! -d "/usr/lib64" ]; then 11 | # Control will enter here if $DIRECTORY exists. 12 | sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64 13 | fi 14 | sudo apt-get update -y 15 | sudo apt-get update --fix-missing -y 16 | sudo apt-get install build-essential curl g++ gfortran python-setuptools python-dev git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev gawk make patch tcl -y 17 | 18 | export PKG_CONFIG_PATH="/usr/bin/pkg-config:$HOME/.linuxbrew/bin/pkg-config" 19 | export PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig:$HOME/.linuxbrew/lib/pkgconfig" 20 | export PATH="$HOME/.linuxbrew/bin:$PATH" 21 | #export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" 22 | #export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH" 23 | 24 | if [ ! -d "$HOME/.linuxbrew" ]; then 25 | yes | ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/linuxbrew/go/install)" 26 | # hang on here. you will have to press return 27 | # note that even if brew doctor is a little unhappy we want to keep going 28 | brew doctor || true 29 | 30 | mkdir $HOME/.linuxbrew/lib 31 | ln -s lib $HOME/.linuxbrew/lib64 32 | ln -s $HOME/.linuxbrew/lib $HOME/.linuxbrew/lib64 33 | ln -s /usr/lib64/libstdc++.so.6 /lib64/libgcc_s.so.1 $HOME/.linuxbrew/lib/ 34 | brew install hello && brew test hello; brew remove hello 35 | fi 36 | 37 | brew install pkg-config 38 | brew tap homebrew/science 39 | brew tap ahundt/robotics 40 | 41 | # Add the following variables to your .bashrc or .zshrc to complete the setup: 42 | # 43 | # export PKG_CONFIG_PATH="/usr/bin/pkg-config:$HOME/.linuxbrew/bin/pkg-config" 44 | # export PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig:$HOME/.linuxbrew/lib/pkgconfig" 45 | # export PATH="$HOME/.linuxbrew/bin:$PATH" 46 | # export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH" 47 | # export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH" 48 | -------------------------------------------------------------------------------- /pangolin.rb: -------------------------------------------------------------------------------- 1 | class Pangolin < Formula 2 | desc "realOpenGL display, interaction and abstracting video input" 3 | homepage "https://github.com/stevenlovegrove/Pangolin" 4 | url "https://github.com/stevenlovegrove/Pangolin.git", :branch => "master" 5 | head "https://github.com/stevenlovegrove/Pangolin.git", :branch => "devel" 6 | version "0.3" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | depends_on "glew" 11 | depends_on "eigen" => :recommended 12 | depends_on "libdc1394" => :recommended 13 | depends_on "openni2" => :recommended 14 | depends_on "openni" => :optional 15 | depends_on "libuvc" => :optional # 2016-05-18: this requires `brew install libuvc --HEAD` 16 | 17 | 18 | def install 19 | cmake_args = std_cmake_args + %W[ 20 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 21 | ] 22 | 23 | mkdir "build" do 24 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 25 | system "make" 26 | system "make", "install" 27 | end 28 | end 29 | 30 | test do 31 | system "false" 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /rbdl.rb: -------------------------------------------------------------------------------- 1 | class Rbdl < Formula 2 | desc "RBDL - Rigid Body Dynamics Library" 3 | homepage "https://bitbucket.org/rbdl/rbdl" 4 | url "https://bitbucket.org/rbdl/rbdl", :using => :hg, :tag => "v2.5.0" 5 | head "https://bitbucket.org/rbdl/rbdl", :using => :hg, :branch => "default" 6 | version "2.5.0" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "eigen" 10 | depends_on "unittest-cpp" => :recommended 11 | 12 | def install 13 | cmake_args = std_cmake_args + %W[ 14 | ] 15 | 16 | mkdir "build" do 17 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 18 | system "make" 19 | system "make", "install" 20 | end 21 | end 22 | 23 | test do 24 | system "false" 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /rbdyn.rb: -------------------------------------------------------------------------------- 1 | class Rbdyn < Formula 2 | desc "real-time control for kinematics trees and lists of kinematics trees" 3 | homepage "https://github.com/jrl-umi3218/RBDyn" 4 | url "https://github.com/jrl-umi3218/RBDyn.git", :branch => "master" 5 | head "https://github.com/jrl-umi3218/RBDyn.git" 6 | version "0.1" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "eigen" 10 | depends_on "boost" 11 | depends_on "spacevecalg" 12 | depends_on "rbdyn" 13 | depends_on "sch-core" 14 | depends_on "eigen3topython" => :recommended 15 | 16 | 17 | def install 18 | cmake_args = std_cmake_args + %W[ 19 | ] 20 | 21 | mkdir "build" do 22 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 23 | system "make" 24 | system "make", "install" 25 | end 26 | end 27 | 28 | test do 29 | system "false" 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /robone.rb: -------------------------------------------------------------------------------- 1 | class Robone < Formula 2 | desc "Robone project repository, example of using grl library." 3 | 4 | homepage "https://github.com/ahundt/robone" 5 | url "https://github.com/ahundt/robone.git", :using => :git, :branch => "master" 6 | version "2.0.1" 7 | homepage "https://github.com/ahundt/robone" 8 | 9 | option "with-debug","build library with debug symbols enabled" 10 | option "without-example", "Include example code" 11 | option "without-testing", "Include testing code" 12 | option "docs", "build docs" 13 | depends_on "cmake" => :build 14 | depends_on "cmake-basis" => :build 15 | depends_on "opencv3" 16 | depends_on "flatbuffers" 17 | depends_on "boost" 18 | depends_on "eigen" 19 | depends_on "homebrew/science/suite-sparse" 20 | depends_on "ceres-solver" 21 | depends_on "cisstnetlib" => :recommended 22 | depends_on "cisst" => :recommended 23 | depends_on "grl" 24 | 25 | 26 | head do 27 | 28 | url "git@github.com:ahundt/robone.git", :using => :git, :branch => "master" 29 | 30 | end 31 | 32 | def install 33 | # ENV.deparallelize # if your formula fails when building in parallel 34 | cmake_args = std_cmake_args + %W[ 35 | -DBUILD_ALL_MODULES=ON 36 | -DBASIS_DIR=#{Formula["cmake-basis"].opt_prefix}/lib/cmake/basis 37 | ] 38 | 39 | 40 | if build.with? "debug" 41 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 42 | else 43 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 44 | end 45 | 46 | if build.with? "docs" 47 | cmake_args << "-DBUILD_DOCUMENTATION=ON" 48 | else 49 | cmake_args << "-DBUILD_DOCUMENTATION=OFF" 50 | end 51 | 52 | if build.with? "testing" 53 | cmake_args << "-DBUILD_TESTING=ON" 54 | else 55 | cmake_args << "-DBUILD_TESTING=OFF" 56 | end 57 | 58 | if build.with? "cisst" 59 | cmake_args << "-Dcisst_DIR=#{Formula["cisst"].opt_prefix}/cmake" 60 | end 61 | 62 | if build.with? "cisstnetlib" 63 | cmake_args << "-DCisstNetlib_DIR=#{Formula["cisstnetlib"].opt_prefix}/cmake" 64 | end 65 | 66 | mkdir "build" do 67 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 68 | system "make" 69 | system "make", "install" 70 | end 71 | end 72 | 73 | test do 74 | # `test do` will create, run in and delete a temporary directory. 75 | # 76 | # This test will fail and we won't accept that! It's enough to just replace 77 | # "false" with the main program this formula installs, but it'd be nice if you 78 | # were more thorough. Run the test with `brew test grl`. Options passed 79 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 80 | # 81 | # The installed folder is not in the path, so use the entire path to any 82 | # executables being tested: `system "#{bin}/program", "do", "something"`. 83 | system "false" 84 | end 85 | end 86 | -------------------------------------------------------------------------------- /robonetracker.rb: -------------------------------------------------------------------------------- 1 | class Robonetracker < Formula 2 | desc "Robone project at Johns Hopkins University. This is a private repository. Contact: ATHundt@gmail.com" 3 | 4 | homepage "https://github.com/ahundt/robonetracker" 5 | url "git@github.com:ahundt/robonetracker.git", :using => :git, :branch => "master" 6 | version "2.0.2" 7 | 8 | option "with-debug","build library with debug symbols enabled" 9 | option "without-example", "Include example code" 10 | option "without-testing", "Include testing code" 11 | option "docs", "build docs" 12 | depends_on "cmake" => :build 13 | depends_on "cmake-basis" => :build 14 | depends_on "opencv" => :recommended 15 | depends_on "opencv3" => :optional 16 | depends_on "flatbuffers" 17 | depends_on "boost" 18 | depends_on "eigen" 19 | depends_on "zeromq" 20 | depends_on "azmq" 21 | depends_on "protobuf" 22 | depends_on "tbb" # camodocal 23 | depends_on "glog" # camodocal 24 | depends_on "gflags" # camodocal 25 | depends_on "homebrew/science/suite-sparse" # camodocal 26 | depends_on "tasks" => :recommended 27 | depends_on "cisstnetlib" => :recommended 28 | depends_on "cisst" => :recommended 29 | depends_on "ur_modern_driver" => :recommended 30 | 31 | head do 32 | 33 | url "git@github.com:ahundt/robonetracker.git", :using => :git, :branch => "master" 34 | 35 | end 36 | 37 | def install 38 | # ENV.deparallelize # if your formula fails when building in parallel 39 | cmake_args = std_cmake_args + %W[ 40 | -DBUILD_ALL_MODULES=ON 41 | -DBASIS_DIR=#{Formula["cmake-basis"].opt_prefix}/lib/cmake/basis 42 | ] 43 | 44 | 45 | if build.with? "opencv3" 46 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv3"].prefix}" 47 | elsif build.with? "opencv" 48 | cmake_args << "-DOPENCV_DIR=#{Formula["opencv"].prefix}" 49 | end 50 | 51 | if build.with? "debug" 52 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 53 | else 54 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 55 | end 56 | 57 | if build.with? "docs" 58 | cmake_args << "-DBUILD_DOCUMENTATION=ON" 59 | else 60 | cmake_args << "-DBUILD_DOCUMENTATION=OFF" 61 | end 62 | 63 | if build.with? "testing" 64 | cmake_args << "-DBUILD_TESTING=ON" 65 | else 66 | cmake_args << "-DBUILD_TESTING=OFF" 67 | end 68 | 69 | if build.with? "cisst" 70 | cmake_args << "-Dcisst_DIR=#{Formula["cisst"].opt_prefix}/cmake" 71 | end 72 | 73 | if build.with? "cisstnetlib" 74 | cmake_args << "-DCisstNetlib_DIR=#{Formula["cisstnetlib"].opt_prefix}/cmake" 75 | end 76 | 77 | if build.with? "ur_modern_driver" 78 | cmake_args << "-Dur_modern_driver_DIR=#{Formula["ur_modern_driver"].opt_prefix}/cmake" 79 | end 80 | 81 | system "cmake", ".", *cmake_args 82 | system "make", "install" 83 | end 84 | 85 | test do 86 | # `test do` will create, run in and delete a temporary directory. 87 | # 88 | # This test will fail and we won't accept that! It's enough to just replace 89 | # "false" with the main program this formula installs, but it'd be nice if you 90 | # were more thorough. Run the test with `brew test grl`. Options passed 91 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 92 | # 93 | # The installed folder is not in the path, so use the entire path to any 94 | # executables being tested: `system "#{bin}/program", "do", "something"`. 95 | system "false" 96 | end 97 | end 98 | -------------------------------------------------------------------------------- /robonetracker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script is intended to setup robonetracker in ~/source/robonetracker 4 | # with dependencies on homebrew or linuxbrew depending on the OS being used 5 | # @author Andrew Hundt 6 | # 7 | # 8 | # One step setup command for robonetracker: 9 | # bash <(curl -fsSL https://raw.githubusercontent.com/ahundt/homebrew-robotics/master/robonetracker.sh) 10 | 11 | echo "" 12 | echo "###############################################################################################" 13 | echo "# Make sure you have access to https://github.com/ahundt/robonetracker #" 14 | echo "# Also, ensure you have your ssh key configured, if you don't you'll have to finish manually! #" 15 | echo "###############################################################################################" 16 | echo "" 17 | 18 | 19 | # stop on errors 20 | set -e 21 | set -u 22 | set -x 23 | 24 | 25 | # source: https://gist.github.com/phatblat/1713458 26 | # Save script's current directory 27 | DIR=$(pwd) 28 | 29 | # 30 | # Check if Homebrew is installed 31 | # 32 | if ! [ -x "$(command -v brew)" ] ; then 33 | 34 | OS=`uname` 35 | case $OS in 36 | 'Linux') 37 | OS='Linux' 38 | alias ls='ls --color=auto' 39 | curl -fsSL https://raw.githubusercontent.com/ahundt/homebrew-robotics/master/linuxbrew.sh | bash /dev/stdin 40 | export PKG_CONFIG_PATH="/usr/bin/pkg-config:$HOME/.linuxbrew/bin/pkg-config" 41 | export PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig:$HOME/.linuxbrew/lib/pkgconfig" 42 | export PATH="$HOME/.linuxbrew/bin:$PATH" 43 | ;; 44 | 'FreeBSD') 45 | OS='FreeBSD' 46 | alias ls='ls -G' 47 | ;; 48 | 'WindowsNT') 49 | OS='Windows' 50 | ;; 51 | 'Darwin') 52 | OS='Mac' 53 | /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)" 54 | ;; 55 | 'SunOS') 56 | OS='Solaris' 57 | ;; 58 | 'AIX') ;; 59 | *) ;; 60 | esac 61 | else 62 | brew update 63 | fi 64 | 65 | 66 | cd $HOME 67 | 68 | OSPARAM="" 69 | if [ -d $HOME/.linuxbrew ] ; then 70 | # This param lets robonetracker build with the native linux dependencies 71 | # For details see: https://github.com/Homebrew/linuxbrew/issues/13 72 | OSPARAM="--env=inherit" 73 | fi 74 | 75 | # lots of scientific libraries and developer tools 76 | brew tap homebrew/science 77 | brew install cmake --with-docs $OSPARAM 78 | brew install doxygen flatbuffers $OSPARAM 79 | brew install boost $OSPARAM 80 | 81 | 82 | 83 | # Mac & Linux TODO: 84 | # This needs to be fit into the OSTYPE case statement, or a new way to do this 85 | # with multiple lines needs to be worked out. 86 | # https://stackoverflow.com/questions/394230/detect-the-os-from-a-bash-script 87 | 88 | # Mac OSX TODO: 89 | 90 | # Enable --with cuda if you have an nvidia graphics card and cuda 7.0 or greater installed 91 | # install caskroom application manager 92 | # brew casks are only supported on mac, not linux 93 | 94 | # http://docs.nvidia.com/cuda/index.html 95 | #brew cask install cuda 96 | #brew cask install vrep 97 | brew install opencv 98 | #brew install opencv3 --with-contrib --c++11 --without-python3 --without-python $OSPARAM -v # --with-cuda 99 | #brew link opencv3 --force 100 | 101 | # from https://github.com/ahundt/homebrew-robotics 102 | # robotics related libraries 103 | brew tap ahundt/robotics 104 | brew install cmake-basis $OSPARAM 105 | brew install tbb protobuf suite-sparse gflags glog openblas ceres-solver $OSPARAM 106 | brew install ur_modern_driver $OSPARAM 107 | brew install cisstnetlib $OSPARAM # --cc=clang 108 | brew install cisst $OSPARAM 109 | brew install sawconstraintcontroller $OSPARAM 110 | brew install azmq $OSPARAM 111 | 112 | cd $DIR 113 | 114 | if [ ! -d $DIR/robonetracker ] ; then 115 | git clone git@github.com:ahundt/robonetracker.git 116 | fi 117 | 118 | cd robonetracker; 119 | 120 | if [ ! -d `pwd`/build ] ; then 121 | mkdir build; 122 | fi 123 | 124 | cd build; 125 | 126 | if [ -d $HOME/.linuxbrew ] ; then 127 | # cmake .. -DCisstNetlib_DIR=$HOME/.linuxbrew/Cellar/cisstnetlib/HEAD/cmake -DBUILD_ALL_MODULES=ON -DBUILD-TESTING=ON -DsawConstraintController_DIR=$HOME/.linuxbrew/Cellar/sawconstraintcontroller/HEAD/share/cisst-1.0/cmake/saw/ -DBLAS_LIBRARIES_DIR=~/.linuxbrew/lib -DLAPACK_LIBRARIES_DIR=~/.linuxbrew/lib -DLibrt_LIBRARIES=~/.linuxbrew/lib/librt.so 128 | cmake .. -DCisstNetlib_DIR=$HOME/.linuxbrew/Cellar/cisstnetlib/HEAD/cmake -DBUILD_ALL_MODULES=ON -DBUILD-TESTING=ON -DsawConstraintController_DIR=$HOME/.linuxbrew/Cellar/sawconstraintcontroller/HEAD/share/cisst-1.0/cmake/saw/ -DBLAS_LIBRARIES_DIR=~/.linuxbrew/lib -DLAPACK_LIBRARIES_DIR=~/.linuxbrew/lib -DLibrt_LIBRARIES=~/.linuxbrew/lib/librt.so 129 | 130 | else 131 | cmake .. -DBUILD_ALL_MODULES=ON -DBUILD-TESTING=ON -DCisstNetlib_DIR=/usr/local/Cellar/cisstnetlib/HEAD/cmake -DLAPACK_LIBRARIES_DIR=~/usr/local/Cellar/lib -DsawConstraintController_DIR=usr/local/Cellar/sawconstraintcontroller/HEAD/share/cisst-1.0/cmake/saw/ 132 | 133 | fi 134 | 135 | # Build as much as possible, ignoring errors 136 | make -j4 -i 137 | 138 | 139 | -------------------------------------------------------------------------------- /sawconstraintcontroller.rb: -------------------------------------------------------------------------------- 1 | # Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md 2 | # /usr/local/Library/Contributions/example-formula.rb 3 | # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! 4 | 5 | class Sawconstraintcontroller < Formula 6 | desc "sawConstraintController is a cisst saw component that performs constrained optimization to plan inverse kinematics for a robot arm" 7 | homepage "https://github.com/jhu-saw/sawConstraintController" 8 | url "https://github.com/jhu-saw/sawConstraintController.git", :tag => "1.0.1" 9 | head "https://github.com/jhu-saw/sawConstraintController.git", :branch => "devel" 10 | version "1.0.1" 11 | #sha256 "" 12 | 13 | option "with-debug","build library with debug symbols enabled" 14 | depends_on "cmake" => :build 15 | depends_on "cisst" # may currently actually depend on cisst devel/HEAD version 16 | depends_on "cisstnetlib" 17 | 18 | def install 19 | # ENV.deparallelize # if your formula fails when building in parallel 20 | cmake_args = std_cmake_args 21 | if build.with? "debug" 22 | cmake_args << "-DCMAKE_BUILD_TYPE=Debug" 23 | else 24 | cmake_args << "-DCMAKE_BUILD_TYPE=Release" 25 | end 26 | 27 | system "cmake", ".", *cmake_args 28 | system "make", "install" # if this fails, try separate make/make install steps 29 | end 30 | 31 | test do 32 | # `test do` will create, run in and delete a temporary directory. 33 | # 34 | # This test will fail and we won't accept that! It's enough to just replace 35 | # "false" with the main program this formula installs, but it'd be nice if you 36 | # were more thorough. Run the test with `brew test azmq`. Options passed 37 | # to `brew install` such as `--HEAD` also need to be provided to `brew test`. 38 | # 39 | # The installed folder is not in the path, so use the entire path to any 40 | # executables being tested: `system "#{bin}/program", "do", "something"`. 41 | system "false" 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /sch-core.rb: -------------------------------------------------------------------------------- 1 | class SchCore < Formula 2 | desc "C++ Convex Hull Implementation and computation algorithms" 3 | homepage "https://github.com/jrl-umi3218/sch-core" 4 | url "https://github.com/jrl-umi3218/sch-core.git", :branch => "master" 5 | head "https://github.com/jrl-umi3218/sch-core.git" 6 | version "1.1" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | depends_on "eigen" 11 | 12 | def install 13 | cmake_args = std_cmake_args + %W[ 14 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 15 | ] 16 | 17 | system "cmake", ".", *cmake_args 18 | system "make", "install" 19 | end 20 | 21 | test do 22 | system "false" 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /spacevecalg.rb: -------------------------------------------------------------------------------- 1 | class Spacevecalg < Formula 2 | desc "Implementation of spatial vector algebra rigid body transforms with the Eigen3 linear algebra library" 3 | homepage "https://github.com/jrl-umi3218/SpaceVecAlg" 4 | url "https://github.com/jrl-umi3218/SpaceVecAlg.git", :branch => "master" 5 | head "https://github.com/jrl-umi3218/SpaceVecAlg.git" 6 | version "0.1" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "pybindgen" => :python 10 | depends_on "doxygen" => :recommended 11 | depends_on "eigen" 12 | depends_on "boost" 13 | 14 | def install 15 | cmake_args = std_cmake_args + %W[ 16 | ] 17 | 18 | mkdir "build" do 19 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 20 | system "make" 21 | system "make", "install" 22 | end 23 | end 24 | 25 | test do 26 | system "false" 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /tasks.rb: -------------------------------------------------------------------------------- 1 | class Tasks < Formula 2 | desc "Tasks is library for real time control of robots and kinematic trees using constrained optimization." 3 | homepage "https://github.com/jrl-umi3218/Tasks" 4 | url "https://github.com/jrl-umi3218/Tasks.git", :branch => "master" 5 | head "https://github.com/jrl-umi3218/Tasks.git" 6 | version "0.1" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "eigen" 10 | depends_on "boost" 11 | depends_on "spacevecalg" 12 | depends_on "rbdyn" 13 | depends_on "sch-core" 14 | depends_on "eigen-qld" 15 | depends_on "eigen3topython" => :recommended 16 | 17 | 18 | def install 19 | cmake_args = std_cmake_args + %W[ 20 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 21 | ] 22 | 23 | mkdir "build" do 24 | system "cmake", "-G", "Unix Makefiles", "..", *cmake_args 25 | system "make" 26 | system "make", "install" 27 | end 28 | end 29 | 30 | test do 31 | system "false" 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /trtk.rb: -------------------------------------------------------------------------------- 1 | class Trtk < Formula 2 | desc "Transformation and Registration Toolkit for robotics and computer integrated surgery" 3 | homepage "https://github.com/RWTHmediTEC/TRTK" 4 | url "https://github.com/ahundt/TRTK.git", :branch => "master" 5 | head "https://github.com/ahundt/TRTK.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "flann" 10 | depends_on "eigen" 11 | 12 | def install 13 | cmake_args = std_cmake_args + %W[ 14 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 15 | ] 16 | 17 | system "cmake", ".", *cmake_args 18 | system "make", "install" 19 | end 20 | 21 | test do 22 | system "false" 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /ur_modern_driver.rb: -------------------------------------------------------------------------------- 1 | class UrModernDriver < Formula 2 | desc "Driver for the UR3/UR5/UR10 robot arms from universal robots" 3 | homepage "https://github.com/ThomasTimm/ur_modern_driver/" 4 | url "https://github.com/ahundt/ur_modern_driver.git", :branch => "master" 5 | head "https://github.com/ahundt/ur_modern_driver.git" 6 | version "0.01" 7 | 8 | depends_on "cmake" => :build 9 | depends_on "boost" 10 | 11 | def install 12 | cmake_args = std_cmake_args + %W[ 13 | -DBoost_DIR=#{Formula["boost"].opt_prefix} 14 | ] 15 | 16 | system "cmake", ".", *cmake_args 17 | system "make", "install" 18 | end 19 | 20 | test do 21 | system "false" 22 | end 23 | end 24 | --------------------------------------------------------------------------------