-
-
Save jmtatsch/3aa268d41ae40c89b35a to your computer and use it in GitHub Desktop.
# NOTE: These instructions do not represent a robust, self-troubleshooting install; they | |
# are definitely not suitable for dumping to a giant script and running as one. If you | |
# use them, they should be run one at a time, with an eye out for errors or problems | |
# along the way. | |
# | |
# The #1 issue you are likely to encounter is with Homebrew or Python packages whose | |
# binary components link against system Python. This will result in runtime segfaults, | |
# especially in rviz. If you suspect this is occurring, you can attempt to remove and | |
# reinstall the offending packages, or go for the nuclear option--- empty your Cellar | |
# and site-packages folders and start over with brewed python from the beginning. | |
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
# If a cleanup is necessary, proceed with extreme caution!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
# Remove old ROS installations, don't do this tutorial if you have several versions of ros installed | |
sudo rm -rf /opt/ros | |
rm -rf ~/ros_catkin_ws | |
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list | |
# Clean up all python packages | |
sudo rm -rf /Library/Python/2.7/site-packages | |
# Uninstall homebrew, warning this will cause trouble for anything linked against older hombrewed libraries | |
brew install wget | |
wget https://gist.githubusercontent.com/mxcl/1173223/raw/a833ba44e7be8428d877e58640720ff43c59dbad/uninstall_homebrew.sh | |
bash uninstall_homebrew.sh && rm uninstall_homebrew.sh | |
rm -rf /usr/local/Cellar /usr/local/.git | |
rm -rf /usr/local/Library/Taps | |
# Comment everything related to ROS in your .bashrc/.zshrc | |
nano .zshrc | |
# Now we are ready to start fresh. | |
# If you haven't already, install XQuartz using the installer from its own website: | |
# https://xquartz.macosforge.org | |
# Install Homebrew | |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
brew doctor | |
# Install zshell, if you want to use bash instead, you should change the sourced files from .zsh to .bash | |
brew install zsh | |
echo export PATH='/usr/local/bin:$PATH' >> ~/.zshrc | |
source .zshrc | |
# Install brewed python | |
brew install python | |
mkdir -p ~/Library/Python/2.7/lib/python/site-packages | |
echo "$(brew --prefix)/lib/python2.7/site-packages" >> ~/Library/Python/2.7/lib/python/site-packages/homebrew.pth | |
# Homebrew taps for prerequisites | |
brew tap ros/deps | |
brew tap osrf/simulation | |
brew tap homebrew/versions | |
brew tap homebrew/science | |
brew tap homebrew/dupes | |
brew tap dartsim/dart | |
# Prerequisites | |
brew install cmake libyaml lz4 theora | |
brew install boost --with-python --c++11 | |
brew install opencv --with-qt --with-eigen --with-tbb | |
brew install homebrew/science/pcl --HEAD --without-apps --without-qt #https://github.com/Homebrew/homebrew-science/issues/2593 | |
#brew install opencv3 --with-qt --with-eigen --with-tbb | |
brew install fltk --devel | |
# Install the ROS infrastructure tools, you may have to run this several times until all python deps are properly installed | |
sudo -H pip install -U setuptools rosdep rosinstall_generator wstool rosinstall catkin_tools catkin_pkg bloom empy sphinx | |
# Download ROS sources | |
mkdir ros_catkin_ws && cd ros_catkin_ws | |
rosinstall_generator desktop_full --rosdistro jade --deps --tar > jade.rosinstall | |
wstool init -j8 src jade.rosinstall | |
# Install the necessary ROS dependencies | |
sudo rosdep init | |
rosdep update | |
rosdep install --from-paths src --ignore-src --rosdistro jade -y | |
# fix pcl_ros according to https://github.com/ros-perception/perception_pcl/issues/106#issuecomment-134948296 | |
if [ -d src/perception_pcl/pcl_ros ]; then | |
sed -i -e 's/find_package(Eigen3 REQUIRED)/find_package(PkgConfig)\ | |
pkg_search_module(Eigen3 REQUIRED eigen3)/g' src/perception_pcl/pcl_ros/CMakeLists.txt | |
fi | |
# fix Ogre 1.74 according to mike | |
# Grabbing these older meshes allows rviz to run with Ogre 1.7 rather than Ogre 1.8+. Although formulae and patches | |
# exist to build Ogre 1.9, rviz, and Gazebo together, I have found this approach to be the most solid and consistent. | |
if [ -d src/rviz ]; then | |
pushd src/rviz/ogre_media/models | |
curl https://raw.githubusercontent.com/ros-visualization/rviz/hydro-devel/ogre_media/models/rviz_cone.mesh > rviz_cone.mesh | |
curl https://raw.githubusercontent.com/ros-visualization/rviz/hydro-devel/ogre_media/models/rviz_cube.mesh > rviz_cube.mesh | |
curl https://raw.githubusercontent.com/ros-visualization/rviz/hydro-devel/ogre_media/models/rviz_cylinder.mesh > rviz_cylinder.mesh | |
curl https://raw.githubusercontent.com/ros-visualization/rviz/hydro-devel/ogre_media/models/rviz_sphere.mesh > rviz_sphere.mesh | |
popd | |
fi | |
# Build in parallel with catkin ~40 min on my computer, make sure the python version matches | |
sudo mkdir -p /opt/ros/jade | |
sudo chown $USER /opt/ros/jade | |
catkin config --install --install-space /opt/ros/jade | |
catkin build \ | |
-DCMAKE_BUILD_TYPE=Release \ | |
-DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \ | |
-DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7 | |
# to work around the dyld issue https://github.com/mikepurvis/ros-install-osx/issues/12#issuecomment-149336634 | |
# well this patch doesnt work yet but you get the idea | |
sed -i 's/#!/usr/bin/env bash/export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/ros/jade/lib/g' /opt/ros/jade/bin/rosrun | |
# Source the build ROS, prepare the workspace and from then on only source this one | |
source /opt/ros/jade/setup.zsh | |
cd ~/ros_catkin_ws | |
mv src src_isolated | |
mv devel devel_isolated | |
mv build build_isolated | |
mkdir src | |
catkin_make | |
echo 'source ~/ros_catkin_ws/devel/setup.zsh' >> ~/.zshrc |
Starting ==> rospack
[rospack] ==> '/Users/RoyPekJunJie/ros_catkin_ws/build/rospack/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' in '/Users/RoyPekJunJie/ros_catkin_ws/build/rospack'
Scanning dependencies of target rospack
[ 11%] Building CXX object CMakeFiles/rospack.dir/src/rospack.cpp.o
[ 22%] Building CXX object CMakeFiles/rospack.dir/src/rospack_backcompat.cpp.o
make[2]: *** No rule to make target /usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib', needed by
/Users/RoyPekJunJie/ros_catkin_ws/devel/lib/librospack.dylib'. Stop.
make[2]: *** Waiting for unfinished jobs....
[ 33%] Building CXX object CMakeFiles/rospack.dir/src/rospack_cmdline.cpp.o
[ 44%] Building CXX object CMakeFiles/rospack.dir/src/utils.cpp.o
/Users/RoyPekJunJie/ros_catkin_ws/src/rospack/src/rospack.cpp:78:9: warning: 'PyUnicode_FromString' macro redefined [-Wmacro-redefined]
define PyUnicode_FromString PyString_FromString
^
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7/unicodeobject.h:194:10: note: previous definition is here
define PyUnicode_FromString PyUnicodeUCS2_FromString
^
1 warning generated.
make[1]: *** [CMakeFiles/rospack.dir/all] Error 2
make: *** [all] Error 2
[rospack] <== '/Users/RoyPekJunJie/ros_catkin_ws/build/rospack/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' failed with return code '2'
Failed <== rospack [ 6.9 seconds ]
Finished <== ros_comm [ 2 minutes and 55.6 seconds ]
[build] There were '1' errors:
Failed to build package 'rospack' because the following command:
Command to reproduce:
cd /Users/RoyPekJunJie/ros_catkin_ws/build/rospack && /Users/RoyPekJunJie/ros_catkin_ws/build/rospack/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j; cd -
Path to log:
cat /Users/RoyPekJunJie/ros_catkin_ws/build/build_logs/rospack.log
Exited with return code: 2
[build] Runtime: 5 minutes and 27.2 seconds
@jacksonkr - facing the same issue as you I think... Have you gotten a solution?
I had the same issue -- "Python.h" file not found, and I solved.
The reason is that the version of python described in line 106 and 107 of the above code is different from your actual version.
Check the version of your python. Your python version may be 2.7.11.
python --version
Makefiles are already created with invalid version number, you should reset and restart build with your python version number.
(I deleted ros_catkin_ws
directory and restarted from line 73.)
In case of python 2.7.11, use below.
catkin build \
-DCMAKE_BUILD_TYPE=Release \
-DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \
-DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7
A small note to the previous comment:
You may just delete ros_catkin_ws/build
directory and start catkin build right away.
So the commands to fix this issue will be:
rm -rf build
and
catkin build \
-DCMAKE_BUILD_TYPE=Release \
-DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \
-DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/include/python2.7
Just built again from source again, pretty much works as expected :)
Hello there! I have some issue with -ltbb. Can someone help with this?
Starting ==> polled_camera
Finished <== polled_camera [ 11.1 seconds ]
Starting ==> compressed_depth_image_transport
[compressed_depth_image_transport] ==> '/Users/Alexander/ros_catkin_ws/build/compressed_depth_image_transport/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' in '/Users/Alexander/ros_catkin_ws/build/compressed_depth_image_transport'
Scanning dependencies of target compressed_depth_image_transport_gencfg
[ 16%] Generating dynamic reconfigure files from cfg/CompressedDepthPublisher.cfg: /Users/Alexander/ros_catkin_ws/devel/include/compressed_depth_image_transport/CompressedDepthPublisherConfig.h /Users/Alexander/ros_catkin_ws/devel/lib/python2.7/site-packages/compressed_depth_image_transport/cfg/CompressedDepthPublisherConfig.py
Generating reconfiguration files for CompressedDepthPublisher in compressed_depth_image_transport
Wrote header file in /Users/Alexander/ros_catkin_ws/devel/include/compressed_depth_image_transport/CompressedDepthPublisherConfig.h
[ 16%] Built target compressed_depth_image_transport_gencfg
Scanning dependencies of target compressed_depth_image_transport
[ 33%] Building CXX object CMakeFiles/compressed_depth_image_transport.dir/src/compressed_depth_publisher.cpp.o
[ 50%] Building CXX object CMakeFiles/compressed_depth_image_transport.dir/src/compressed_depth_subscriber.cpp.o
[ 66%] Building CXX object CMakeFiles/compressed_depth_image_transport.dir/src/codec.cpp.o
[ 83%] Building CXX object CMakeFiles/compressed_depth_image_transport.dir/src/manifest.cpp.o
/Users/Alexander/ros_catkin_ws/src/image_transport_plugins/compressed_depth_image_transport/src/codec.cpp:333:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
[100%] Linking CXX shared library /Users/Alexander/ros_catkin_ws/devel/lib/libcompressed_depth_image_transport.dylib
ld: library not found for -ltbb
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/Users/Alexander/ros_catkin_ws/devel/lib/libcompressed_depth_image_transport.dylib] Error 1
make[1]: *** [CMakeFiles/compressed_depth_image_transport.dir/all] Error 2
make: *** [all] Error 2
[compressed_depth_image_transport] <== '/Users/Alexander/ros_catkin_ws/build/compressed_depth_image_transport/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' failed with return code '2'
Failed <== compressed_depth_image_transport [ 11.7 seconds ]
Finished <== pluginlib_tutorials [ 3 minutes and 26.2 seconds ]
[build] There were '1' errors:
Failed to build package 'compressed_depth_image_transport' because the following command:
# Command to reproduce:
cd /Users/Alexander/ros_catkin_ws/build/compressed_depth_image_transport && /Users/Alexander/ros_catkin_ws/build/compressed_depth_image_transport/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j; cd -
# Path to log:
cat /Users/Alexander/ros_catkin_ws/build/build_logs/compressed_depth_image_transport.log
Exited with return code: 2
[build] Runtime: 29 minutes and 13.7 seconds
When I run the line:
brew install boost --with-python --c++11
I get this:
==> Downloading https://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2
==> Downloading from http://netcologne.dl.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2
################################################################## 100.0%
==> Patching
patching file boost/graph/adjacency_matrix.hpp
==> ./bootstrap.sh --prefix=/usr/local/Cellar/boost/1.60.0_1 --libdir=/usr/local/Cellar/boost/1.60.0_1/lib --witho
==> ./b2 headers
==> ./b2 --prefix=/usr/local/Cellar/boost/1.60.0_1 --libdir=/usr/local/Cellar/boost/1.60.0_1/lib -d2 -j4 --layout=
Then it just stops. My terminal stops doing anything. I have to ctrl-C out of it. What's going on? How do I fix this?
@Forest-Dewberry I had the same issue. It built fine if drop the --c++11 flag, ie brew install boost
after running catkin_make
, I get a error about not finding nosetests:
CMake Warning at /opt/ros/jade/share/catkin/cmake/test/nosetests.cmake:98 (message): nosetests not found, Python tests can not be run (try installing package 'python-nose') Call Stack (most recent call first): /opt/ros/jade/share/catkin/cmake/all.cmake:147 (include) /opt/ros/jade/share/catkin/cmake/catkinConfig.cmake:20 (include) CMakeLists.txt:52 (find_package)
I found that nosetests is in /usr/local/Cellar/numpy/1.11.0/libexec/nose/bin/
. Should it be linked somewhere else?
@fangbq if you are from China you need a VPN as some download sources are GFW'ed.
I failed to install some of the pack in it .I could not use it completely.so I want to uninstall it .but how to uninstall fully
@ramamoorthyluxman an easy to fix the sha256 not match error, you should not download the cminpack-1.3.4.tar.gz through browser, you chould get it by thunder or download it from here and change the file name to cminpack-1.3.4.tar.gz. the SHA256 matched, take a look at this page.
And then follow the remaining steps, it worked for me.
Homebrew installation of PCL libraries (homebrew/science/pcl, Line# 65) isn't working currently due to upstream problem. If you get the above error as I did, I have a solution. Download PCL 1.8 master from GitHub (https://github.com/PointCloudLibrary/pcl). Edit the " /opt/ros/jade/share/pcl_conversions/cmake/pcl_msgsConfig.cmake" using nano or VI editor. Just find the text "pcl-1.6" in the file and replace them with "pcl-1.8". And then follow the remaining steps.