ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

building ROS on arch linux

asked 2012-11-21 20:47:45 -0600

aash29 gravatar image

updated 2014-01-28 17:14:20 -0600

ngrennan gravatar image

Greetings! I'm trying to build ros on arch linux. I followed this instruction ros.org/wiki/fuerte/Installation/Arch with some trouble along:

1)

 patch -p0 < ros.patch

patching file simulator_gazebo/gazebo/Makefile.gazebo.tarball

Hunk #1 FAILED at 31.

1 out of 1 hunk FAILED -- saving rejects to file simulator_gazebo/gazebo/Makefile.gazebo.tarball.rej patching file geometry/tf/include/tf/message_filter.h Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch.

This error was repeated for all entries in the patch file.

2) At the final step of

rosmake -a

the making started, but so far I encountered following errors:

[ 25%] Building CXX object CMakeFiles/camera_calibration_parsers.dir/src/parse_yml.o /home/aash29/ros/image_common/camera_calibration_parsers/src/parse_yml.cpp:3:27: fatal error: yaml-cpp/yaml.h: No such file or directory compilation terminated.

And in another package

[100%] Building CXX object CMakeFiles/cv_bridge.dir/src/cv_bridge.o /home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp: In function ‘std::map<std::pair<cv_bridge::format, cv_bridge::format="">, std::vector<int> > cv_bridge::getConversionCodes()’:

/home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp:179:47: error: ‘CV_YUV2GRAY_UYVY’ was not declared in this scope

/home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp:180:46: error: ‘CV_YUV2RGB_UYVY’ was not declared in this scope

/home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp:181:46: error: ‘CV_YUV2BGR_UYVY’ was not declared in this scope

/home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp:182:47: error: ‘CV_YUV2RGBA_UYVY’ was not declared in this scope

/home/aash29/ros/vision_opencv/cv_bridge/src/cv_bridge.cpp:183:47: error: ‘CV_YUV2BGRA_UYVY’ was not declared in this scope

make[3]: * [CMakeFiles/cv_bridge.dir/src/cv_bridge.o] Error 1 make[3]: Leaving directory `/home/aash29/ros/vision_opencv/cv_bridge/build' make[2]: * [CMakeFiles/cv_bridge.dir/all] Error 2

What could cause it? Is it any easier to build previous versions of ros?

edit retag flag offensive close merge delete

Comments

thanks Lorenz, I didn't want to install a different distribution for the purpose of running a single package, but building under arch is beginning to appear infeasible.

aash29 gravatar image aash29  ( 2012-11-22 00:55:12 -0600 )edit

3 Answers

Sort by » oldest newest most voted
1

answered 2012-11-21 22:02:01 -0600

Lorenz gravatar image

Building ROS on Arch is definitely not trivial and the install instructions are probably outdated. The patches you were trying to apply are 8 months old.

I didn't build more than the ROS underlay recently in Arch and there are basically mainly three things you have to do:

  1. Get the script to fix the python shebang lines from here and run it on your underlay.

  2. Get rid of rx. I couldn't manage to compile it at the moment because of some weird swig error I don't have time to investigate right now.

  3. Use the following cmake call: cmake .. -DPYTHON_EXECUTABLE=/usr/bin/python2 -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte.

  4. Open ros_comm/tools/rosbag/src/recorder.cpp and go to line 439. Change boost::TIME_UTC to boost::TIME_UTC_ to make it compile with the most recent boost version.

This should allow you to build at least the middleware and the basic build system and command line tools. For higher-level stacks, you will have to fix a lot of code yourself which is a pretty time consuming process.

An alternative solution in case you need to stick with Arch and cannot switch to Ubuntu is to install a Ubuntu chroot environment in which you can install ROS using apt-get. Just google for debootstrap in case you want to try that.

edit flag offensive delete link more
2

answered 2013-02-04 13:21:18 -0600

kalectro gravatar image

if anyone (like me) found this question looking for the answer to this error:

CV_YUV2GRAY_UYVY’ was not declared in this scope

You will need to install opencv from source, the prebuilt binary is too old

edit flag offensive delete link more

Comments

Thanks for the tip! I'm battling away with getting hydro on a raspberry pi with opencv. It's a struggle, but pretty fun so far!. Next up Moveit!

Jeremy Corbett gravatar image Jeremy Corbett  ( 2013-12-01 00:24:22 -0600 )edit
1

answered 2013-10-30 06:09:59 -0600

bchr gravatar image

updated 2014-01-21 22:14:25 -0600

If you plan on moving to Groovy (resp. Hydro), there are several AUR packages for that. It's a work in progress, but you can have your setup with rviz installed quite easily now. You just need to follow the method presented in the ROS Groovy wiki (resp. ROS Hydro wiki):

yaourt --noconfirm ros-groovy
or
yaourt --noconfirm ros-hydro

(or the equivalent command for your AUR package manager)

The PKGBUILD scripts used can be found on this GitHub repository.

edit flag offensive delete link more

Comments

ok, thanks! Since then I installed ubuntu for sole reason of running ROS

aash29 gravatar image aash29  ( 2013-10-31 00:29:10 -0600 )edit

I used to run ROS in a Virtualbox Ubuntu VM, but I went back to Arch Linux recently. The only problem I have for the moment is with PCL and stacks that depend on it, but it should be fixed soon enough.

bchr gravatar image bchr  ( 2013-11-04 06:16:34 -0600 )edit

FYI, Hydro can also be installed with AUR packages. It works quite well so far ;-)

bchr gravatar image bchr  ( 2014-01-22 00:42:16 -0600 )edit

Good news, thanks!

aash29 gravatar image aash29  ( 2014-01-22 07:17:53 -0600 )edit

Question Tools

Stats

Asked: 2012-11-21 20:47:45 -0600

Seen: 1,054 times

Last updated: Jan 21 '14