0
$\begingroup$

Rosanswers logo

hello!

sorry for my bad english.

im trying to get this tutorial: ANTDROID to work on my raspberry pi.

i followed the instructiones and it crashes istalling cv_bridge

also this tutorial: ROS on Raspberry Pi

and this tutorial: ROS on Debian

crashes everytime when i paste "vision_opencv" in "rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-ros_comm-wet.rosinstall"

now im working on it about 3 weeks at any free minute i have. imgoing crazy.

i tied all commands and instructions abaud openCV, CV_Bridge and so on from the internet i found

it installs 73 packages from 101 packages and then crashes...

libconsole-bridge-dev and liblz4-dev are installed

i have tried a original rpi wheezy image and a image with preinstalled basic ros_comm

with the preinstalled ros image i can do: rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-ros_comm-wet.rosinstall

and 48 from 48 operacion work perfectly

i tried tru ssh connection on windows / ubundtu and also with mouse and keyboard direct on the rpi

please, please give me a little step by step instruction to get this error with cv_bridge to work

here is the error text i get:

Processing catkin package: 'cv_bridge' ==> Building with env: '/opt/ros/indigo/env.sh' Makefile exists, skipping explicit cmake invocation... ==> make cmake_check_build_system in '/home/pi/ros_from_sources/build_isolated/cv_bridge' ==> make -j4 -l4 in '/home/pi/ros_from_sources/build_isolated/cv_bridge' [ 0%] [ 0%] Built target geometry_msgs_generate_messages_lisp Built target std_msgs_generate_messages_lisp [ 0%] [ 0%] Built target sensor_msgs_generate_messages_lisp Built target sensor_msgs_generate_messages_py [ 0%] [ 0%] Built target sensor_msgs_generate_messages_cpp Built target geometry_msgs_generate_messages_cpp [ 0%] [ 0%] Built target geometry_msgs_generate_messages_py Built target std_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_cpp [ 25%] Building CXX object src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o In file included from /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:36:0: /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:26:3: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default] /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:329:72: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:331:78: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:333:75: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:335:75: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:411:65: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:413:71: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:415:68: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:417:68: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In function 'cv::Mat cv_bridge::matFromImage(const Image&)': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:265:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:265:55: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:266:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:266:55: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In member function 'void cv_bridge::CvImage::toImageMsg(sensor_msgs::Image&) const': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:360:44: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:360:76: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In function 'cv_bridge::CvImageConstPtr cv_bridge::toCvShare(const Image&, const boost::shared_ptr&, const string&)': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:410:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:410:55: error: 'boost::endian::order' is not a class or namespace src/CMakeFiles/cv_bridge.dir/build.make:54: recipe for target 'src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o' failed make[2]: *** [src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o] Error 1 CMakeFiles/Makefile2:643: recipe for target 'src/CMakeFiles/cv_bridge.dir/all' failed make[1]: *** [src/CMakeFiles/cv_bridge.dir/all] Error 2 Makefile:123: recipe for target 'all' failed make: *** [all] Error 2 <== Failed to process package 'cv_bridge': Command '['/opt/ros/indigo/env.sh', 'make', '-j4', '-l4']' returned non-zero exit status 2

Reproduce this error by running: ==> cd /home/pi/ros_from_sources/build_isolated/cv_bridge && /opt/ros/indigo/env.sh make -j4 -l4

Command failed, exiting.

pi@raspberrypi ~/ros_from_sources $ cd /home/pi/ros_from_sources/build_isolated/cv_bridge && /opt/ros/indigo/env.sh make -j4 -l4 [ 25%] [ 25%] [ 25%] Built target std_msgs_generate_messages_lisp Built target sensor_msgs_generate_messages_lisp [ 25%] Built target geometry_msgs_generate_messages_lisp Built target sensor_msgs_generate_messages_py [ 25%] [ 25%] Built target sensor_msgs_generate_messages_cpp Built target geometry_msgs_generate_messages_py [ 25%] [ 25%] Built target geometry_msgs_generate_messages_cpp Built target std_msgs_generate_messages_py [ 25%] Built target std_msgs_generate_messages_cpp [ 25%] Building CXX object src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o In file included from /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:36:0: /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:26:3: warning: scoped enums only available with -std=c++0x or -std=gnu++0x [enabled by default] /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:329:72: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:331:78: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:333:75: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:335:75: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:328:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversible> struct boost::endian::detail::value_converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:411:65: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:413:71: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:415:68: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:417:68: error: wrong number of template arguments (1, should be 3) /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/boost/endian/conversion.hpp:410:13: error: provided for 'template<boost::endian::order From, boost::endian::order To, class EndianReversibleInplace> struct boost::endian::detail::converter' /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In function 'cv::Mat cv_bridge::matFromImage(const Image&)': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:265:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:265:55: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:266:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:266:55: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In member function 'void cv_bridge::CvImage::toImageMsg(sensor_msgs::Image&) const': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:360:44: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:360:76: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp: In function 'cv_bridge::CvImageConstPtr cv_bridge::toCvShare(const Image&, const boost::shared_ptr&, const string&)': /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:410:23: error: 'boost::endian::order' is not a class or namespace /home/pi/ros_from_sources/src/vision_opencv/cv_bridge/src/cv_bridge.cpp:410:55: error: 'boost::endian::order' is not a class or namespace src/CMakeFiles/cv_bridge.dir/build.make:54: recipe for target 'src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o' failed make[2]: *** [src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o] Error 1 CMakeFiles/Makefile2:643: recipe for target 'src/CMakeFiles/cv_bridge.dir/all' failed make[1]: *** [src/CMakeFiles/cv_bridge.dir/all] Error 2 Makefile:123: recipe for target 'all' failed make: *** [all] Error 2


Originally posted by g.sart on ROS Answers with karma: 13 on 2016-01-23

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Wheezy has boost libraries 1.49, endian library is from version 1.58.

Working solution

use only if you are interfacing computers with little endian operating systems.

in file ~/ros_catkin_ws/src/vision_opencv/cv_bridge/src/cv_bridge.cpp make follow changes:

comment:

//#include "boost/endian/conversion.hpp"

comment:

//if ((boost::endian::order::native == boost::endian::order::big && source.is_bigendian) ||
//    (boost::endian::order::native == boost::endian::order::little && !source.is_bigendian) ||
//    byte_depth == 1)
    return mat;

change:

ros_image.is_bigendian = 0;//(boost::endian::order::native == boost::endian::order::big);

partially comment and change:

if ((!encoding.empty() && source.encoding != encoding))// || (source.is_bigendian &&
    //(boost::endian::order::native != boost::endian::order::big)))
return toCvCopy(source, encoding);

Originally posted by Mikisoft with karma: 16 on 2016-01-25

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.