Mavros: gcs_image_bridge.cpp ์ปดํŒŒ์ผ ์˜ค๋ฅ˜

์— ๋งŒ๋“  2015๋…„ 01์›” 29์ผ  ยท  12์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mavlink/mavros

์–˜๋“ค ์•„,

์–ด๋–ป๊ฒŒ ์ง€๋‚ด? ๋‚˜๋Š” ๋งˆ์นจ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๊ธฐ ์œ„ํ•ด ๋Œ์•„์˜ค๊ณ  ์žˆ๋‹ค :D ๋‚ด ๋žฉํ†ฑ์—์„œ ์•ฝ๊ฐ„์˜ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. Indigo์™€ ํ•จ๊ป˜ 14.04๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์ž‘์—… ๊ณต๊ฐ„์—์„œ catkin_make ์ˆ˜ํ–‰ํ•  ๋•Œ gcs_image_bridge.cpp ์ปดํŒŒ์ผ ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

[ 98%] Built target mavros_plugins
CMakeFiles/gcs_image_bridge.dir/src/gcs_image_bridge.cpp.o: In function `image_cb(boost::shared_ptr<sensor_msgs::Image_<std::allocator<void> > const> const&)':
gcs_image_bridge.cpp:(.text+0x1077): undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
CMakeFiles/gcs_image_bridge.dir/src/gcs_image_bridge.cpp.o: In function `cv::String::String(char const*)':
gcs_image_bridge.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4f): undefined reference to `cv::String::allocate(unsigned long)'
CMakeFiles/gcs_image_bridge.dir/src/gcs_image_bridge.cpp.o: In function `cv::String::~String()':
gcs_image_bridge.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined reference to `cv::String::deallocate()'
CMakeFiles/gcs_image_bridge.dir/src/gcs_image_bridge.cpp.o: In function `cv::String::operator=(cv::String const&)':
gcs_image_bridge.cpp:(.text._ZN2cv6StringaSERKS0_[_ZN2cv6StringaSERKS0_]+0x28): undefined reference to `cv::String::deallocate()'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/nuno/AIMAV_Project/devel/lib/mavros_extras/gcs_image_bridge] Error 1
make[1]: *** [mavros/mavros_extras/CMakeFiles/gcs_image_bridge.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

์•„๋งˆ๋„ opencv์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” indigo repo์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์ถฉ๊ณ ?

ํ”„๋กœ์ ํŠธ์—์„œ ๊ณ„์†ํ•ด์„œ ๋ช‡ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. :)

์ตœ์ƒ์˜,
๋ˆ„๋…ธ

build error question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

๋ชจ๋“  12 ๋Œ“๊ธ€

BTW,
ํ„ฐ๋ฏธ๋„์˜ pkg-config --libs opencv ๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

/opt/ros/indigo/lib/libopencv_calib3d.so /opt/ros/indigo/lib/libopencv_core.so 
/opt/ros/indigo/lib/libopencv_features2d.so /opt/ros/indigo/lib/libopencv_flann.so 
/opt/ros/indigo/lib/libopencv_highgui.so /opt/ros/indigo/lib/libopencv_imgcodecs.so 
/opt/ros/indigo/lib/libopencv_imgproc.so /opt/ros/indigo/lib/libopencv_ml.so 
/opt/ros/indigo/lib/libopencv_objdetect.so /opt/ros/indigo/lib/libopencv_photo.so 
/opt/ros/indigo/lib/libopencv_shape.so /opt/ros/indigo/lib/libopencv_stitching.so 
/opt/ros/indigo/lib/libopencv_superres.so /opt/ros/indigo/lib/libopencv_ts.a 
/opt/ros/indigo/lib/libopencv_video.so /opt/ros/indigo/lib/libopencv_videoio.so 
/opt/ros/indigo/lib/libopencv_videostab.so /opt/ros/indigo/lib/libopencv_viz.so

์—…๋ฐ์ดํŠธ:
Indigo์˜ opencv ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๊ณ  ์†Œ์Šค์—์„œ opencv๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html
๊ฐ™์€ ๊ฒฐ๊ณผ! ๊ทธ๋Ÿฌ๋ฉด ๋ฌด์—‡์ด ์ž˜๋ชป๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์ด๋ฏธ ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฌผ๊ฑด

์™œ ros ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ:

$ ls /usr/lib/x86_64-linux-gnu/libopencv_*
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.a
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so@
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_contrib.a
/usr/lib/x86_64-linux-gnu/libopencv_contrib.so@
/usr/lib/x86_64-linux-gnu/libopencv_contrib.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_contrib.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_contrib.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_core.a
/usr/lib/x86_64-linux-gnu/libopencv_core.so@
/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_features2d.a
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so@
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_flann.a
/usr/lib/x86_64-linux-gnu/libopencv_flann.so@
/usr/lib/x86_64-linux-gnu/libopencv_flann.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_flann.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_flann.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_gpu.a
/usr/lib/x86_64-linux-gnu/libopencv_gpu.so@
/usr/lib/x86_64-linux-gnu/libopencv_gpu.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_gpu.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_gpu.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_highgui.a
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so@
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.a
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so@
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_legacy.a
/usr/lib/x86_64-linux-gnu/libopencv_legacy.so@
/usr/lib/x86_64-linux-gnu/libopencv_legacy.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_legacy.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_legacy.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_ml.a
/usr/lib/x86_64-linux-gnu/libopencv_ml.so@
/usr/lib/x86_64-linux-gnu/libopencv_ml.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_ml.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_ml.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.a
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so@
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_ocl.a
/usr/lib/x86_64-linux-gnu/libopencv_ocl.so@
/usr/lib/x86_64-linux-gnu/libopencv_ocl.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_ocl.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_ocl.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_photo.a
/usr/lib/x86_64-linux-gnu/libopencv_photo.so@
/usr/lib/x86_64-linux-gnu/libopencv_photo.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_photo.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_photo.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_stitching.a
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so@
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_superres.a
/usr/lib/x86_64-linux-gnu/libopencv_superres.so@
/usr/lib/x86_64-linux-gnu/libopencv_superres.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_superres.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_superres.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_ts.a
/usr/lib/x86_64-linux-gnu/libopencv_ts.so@
/usr/lib/x86_64-linux-gnu/libopencv_ts.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_ts.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_video.a
/usr/lib/x86_64-linux-gnu/libopencv_video.so@
/usr/lib/x86_64-linux-gnu/libopencv_video.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_video.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_video.so.2.4.9
/usr/lib/x86_64-linux-gnu/libopencv_videostab.a
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so@
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.2.4@
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.2.4.8@
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.2.4.9

์—ฌ๊ธฐ์„œ 2.4.8 ๋งํฌ๋Š” 14.10 + Indigo์—์„œ mavros๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ! 2.4.9 ๋Œ€์‹  2.4.8์ด ์žˆ์—ˆ๊ณ  2.4.9 ์„ค์น˜๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋‹ซ์Šต๋‹ˆ๋‹ค!

ํ , 2.4.8์€ 14.04์˜ ๋ฒ„์ „์ด๊ณ  ๋นŒ๋“œ deps๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋งํฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

@ TSC21 Ubuntu 14.04์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ 2.4.9 Ubuntu 14.04๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๊นŒ? Ubuntu 14.04์—๋Š” 2.4.9๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค!

@blackcoder ์†Œ์Šค ์„ค์น˜๋ฅผ ํ•ด์ฃผ์„ธ์š”

opencv ๋ฒ„์ „์— ์—†๋Š” ๋ฌธ์ œ! Ubuntu 14.10์— ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 2.4.9๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  jenkins( indigo trusty 0.10.1 )์—์„œ ์ž˜ ๋นŒ๋“œ๋˜๋ฏ€๋กœ 2.4.8๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์ง€ ์•Š์€ ๊ฒƒ์€ ros opencv ํŒจํ‚ค์ง€( /opt/ros )์™€ ์‹œ์Šคํ…œ์„ ํ˜ผํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ros ํŒจํ‚ค์ง€๋Š” ์‹คํ—˜์ ์ธ opencv3๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@vooon ๋‹น์‹ ์ด ์˜ณ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ros-indigo-opencv3์„ ์ œ๊ฑฐํ–ˆ๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ปดํŒŒ์ผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜์ค‘์— ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•œ ์‚ฌ๋žŒ๋“ค๋„ ๋˜‘๊ฐ™์ด ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get remove ros-indigo-opencv3

๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์ •๋ง ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค!
๋‚˜๋Š”์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. $ sudo apt-get ์„ค์น˜ ros-indigo-opencv3
  2. /ros_ws/devel ๋ฐ /ros_ws/build ์‚ญ์ œ
  3. $ catkin_make
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰