目的
OpenPose ROSノードを用いてUSBカメラ画像からの姿勢検出結果をROSトピックで受け取ろうと思いましたが辿り着けなかった際の備忘録です
準備
Ubuntu16.04 PC
Webカメラ
インストール手順
以下のサイトを参照に,CUDA/cuDNN/Caffe/OpenCVをインストールする
OpenPoseを動かしてみた。
OpenPoseをROSで動かす
openpose_rosを参考にrosでopenposeのトピックを受け取ろうとするも、下記エラーに直面し、色々検索するもうまく行かず。
CodingError対策
コマンドが見つからないためエラー
------------------------- Some Caffe Dependencies Installed -------------------------
------------------------- Compiling Caffe -------------------------
PROTOC src/caffe/proto/caffe.proto
NVCC src/caffe/layers/silence_layer.cu
make: /usr/local/cuda/bin/nvcc: コマンドが見つかりませんでした
Makefile:609: ターゲット '.build_release/cuda/src/caffe/layers/silence_layer.o' のレシピで失敗しました
NVCC src/caffe/layers/hdf5_data_layer.cu
make: *** [.build_release/cuda/src/caffe/layers/silence_layer.o] エラー 127
make: *** 未完了のジョブを待っています....
make: /usr/local/cuda/bin/nvcc: コマンドが見つかりませんでした
Makefile:609: ターゲット '.build_release/cuda/src/caffe/layers/hdf5_data_layer.o' のレシピで失敗しました
make: *** [.build_release/cuda/src/caffe/layers/hdf5_data_layer.o] エラー 127
NVCC src/caffe/layers/im2col_layer.cu
make: /usr/local/cuda/bin/nvcc: コマンドが見つかりませんでした
Makefile:609: ターゲット '.build_release/cuda/src/caffe/layers/im2col_layer.o' のレシピで失敗しました
make: *** [.build_release/cuda/src/caffe/layers/im2col_layer.o] エラー 127
------------------------- -------------------------
Errors detected. Exiting script. The software might have not been successfully installed.
------------------------- -------------------------
以下の通り、バイナリのあるバスへリンクを貼ればOK
リンク元:/usr/local/cuda/bin/nvcc
リンク先:/usr/local/cuda-8.0/bin/nvcc
sudo ln -s /usr/local/cuda/bin/nvcc /usr/local/cuda-8.0/bin/nvcc
openposeバージョン違いのためビルドエラー
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In constructor ‘OpenposeDetecter::OpenposeDetecter()’:
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:66:5: error: ‘check’ is not a member of ‘op’
op::check(0 <= FLAGS_logging_level && FLAGS_logging_level <= 255, "Wrong logging_level value.", __LINE__, __FUNCTION__, __FILE__);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:66:5: note: suggested alternative:
In file included from /opt/ros/kinetic/include/ros/ros.h:52:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/opt/ros/kinetic/include/ros/master.h:80:18: note: ‘ros::master::check’
ROSCPP_DECL bool check();
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:77:94: error: no matching function for call to ‘op::CvMatToOpInput::CvMatToOpInput(<brace-enclosed initializer list>)’
op::CvMatToOpInput cvMatToOpInput_{netInputSize, FLAGS_num_scales, (float)FLAGS_scale_gap};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/headers.hpp:8:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:13:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpInput.hpp:12:9: note: candidate: op::CvMatToOpInput::CvMatToOpInput(op::PoseModel, bool)
CvMatToOpInput(const PoseModel poseModel = PoseModel::BODY_25, const bool gpuResize = false);
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpInput.hpp:12:9: note: candidate expects 2 arguments, 3 provided
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpInput.hpp:9:18: note: candidate: constexpr op::CvMatToOpInput::CvMatToOpInput(const op::CvMatToOpInput&)
class OP_API CvMatToOpInput
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpInput.hpp:9:18: note: candidate expects 1 argument, 3 provided
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:79:52: error: no matching function for call to ‘op::CvMatToOpOutput::CvMatToOpOutput(<brace-enclosed initializer list>)’
op::CvMatToOpOutput cvMatToOpOutput_{outputSize};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/headers.hpp:9:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:13:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpOutput.hpp:11:9: note: candidate: op::CvMatToOpOutput::CvMatToOpOutput(bool)
CvMatToOpOutput(const bool gpuResize = false);
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpOutput.hpp:11:9: note: no known conversion for argument 1 from ‘op::Point<int>’ to ‘bool’
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpOutput.hpp:8:18: note: candidate: op::CvMatToOpOutput::CvMatToOpOutput(const op::CvMatToOpOutput&)
class OP_API CvMatToOpOutput
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/cvMatToOpOutput.hpp:8:18: note: no known conversion for argument 1 from ‘op::Point<int>’ to ‘const op::CvMatToOpOutput&’
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:83:86: error: no matching function for call to ‘op::PoseExtractorCaffe::PoseExtractorCaffe(<brace-enclosed initializer list>)’
FLAGS_model_folder, FLAGS_num_gpu_start};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/headers.hpp:8:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseExtractorCaffe.hpp:19:9: note: candidate: op::PoseExtractorCaffe::PoseExtractorCaffe(op::PoseModel, const string&, int, const std::vector<op::HeatMapType>&, op::ScaleMode, bool, bool, const string&, const string&, float, bool, bool)
PoseExtractorCaffe(
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseExtractorCaffe.hpp:19:9: note: no known conversion for argument 1 from ‘op::Point<int>’ to ‘op::PoseModel’
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:86:131: error: no matching function for call to ‘op::PoseRenderer::PoseRenderer(<brace-enclosed initializer list>)’
op::PoseRenderer poseRenderer_{netOutputSize, outputSize, poseModel, nullptr, !FLAGS_disable_blending, (float)FLAGS_alpha_pose};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseCpuRenderer.hpp:8:0,
from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/headers.hpp:6,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:13:9: note: candidate: op::PoseRenderer::PoseRenderer(op::PoseModel)
PoseRenderer(const PoseModel poseModel);
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:13:9: note: candidate expects 1 argument, 6 provided
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:86:22: error: cannot declare variable ‘poseRenderer_’ to be of abstract type ‘op::PoseRenderer’
op::PoseRenderer poseRenderer_{netOutputSize, outputSize, poseModel, nullptr, !FLAGS_disable_blending, (float)FLAGS_alpha_pose};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseCpuRenderer.hpp:8:0,
from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/headers.hpp:6,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:10:18: note: because the following virtual functions are pure within ‘op::PoseRenderer’:
class OP_API PoseRenderer
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:19:45: note: virtual std::pair<int, std::__cxx11::basic_string<char> > op::PoseRenderer::renderPose(op::Array<float>&, const op::Array<float>&, float, float)
virtual std::pair<int, std::string> renderPose(
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:89:52: error: no matching function for call to ‘op::OpOutputToCvMat::OpOutputToCvMat(<brace-enclosed initializer list>)’
op::OpOutputToCvMat opOutputToCvMat_{outputSize};
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/headers.hpp:17:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:13:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/opOutputToCvMat.hpp:11:9: note: candidate: op::OpOutputToCvMat::OpOutputToCvMat(bool)
OpOutputToCvMat(const bool gpuResize = false);
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/opOutputToCvMat.hpp:11:9: note: no known conversion for argument 1 from ‘op::Point<int>’ to ‘bool’
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/opOutputToCvMat.hpp:8:18: note: candidate: op::OpOutputToCvMat::OpOutputToCvMat(const op::OpOutputToCvMat&)
class OP_API OpOutputToCvMat
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/core/opOutputToCvMat.hpp:8:18: note: no known conversion for argument 1 from ‘op::Point<int>’ to ‘const op::OpOutputToCvMat&’
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In member function ‘void OpenposeDetecter::imageCallback(const ImageConstPtr&)’:
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:131:62: error: ‘class op::CvMatToOpInput’ has no member named ‘format’
std::tie(netInputArray, scaleRatios) = (*cvMatToOpInput).format(cv_ptr->image);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:134:68: error: ‘class op::CvMatToOpOutput’ has no member named ‘format’
std::tie(scaleInputToOutput, outputArray) = (*cvMatToOpOutput).format(cv_ptr->image);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:137:107: error: no matching function for call to ‘op::PoseExtractorCaffe::forwardPass(op::Array<float>&, <brace-enclosed initializer list>, std::vector<float>&)’
(*poseExtractorCaffe).forwardPass(netInputArray, {cv_ptr->image.cols, cv_ptr->image.rows}, scaleRatios);
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/headers.hpp:8:0,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseExtractorCaffe.hpp:39:22: note: candidate: virtual void op::PoseExtractorCaffe::forwardPass(const std::vector<op::Array<float> >&, const op::Point<int>&, const std::vector<double>&, const op::Array<float>&)
virtual void forwardPass(
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseExtractorCaffe.hpp:39:22: note: no known conversion for argument 1 from ‘op::Array<float>’ to ‘const std::vector<op::Array<float> >&’
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:154:40: error: ‘POSE_COCO_BODY_PARTS’ is not a member of ‘op’
std::string bodypart = op::POSE_COCO_BODY_PARTS.at(iOutput);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:238:62: error: no matching function for call to ‘op::PoseRenderer::renderPose(op::Array<float>&, const op::Array<float>&)’
(*poseRenderer).renderPose(outputArray, poseKeypoints);
^
In file included from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseCpuRenderer.hpp:8:0,
from /home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/headers.hpp:6,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:16:
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:19:45: note: candidate: virtual std::pair<int, std::__cxx11::basic_string<char> > op::PoseRenderer::renderPose(op::Array<float>&, const op::Array<float>&, float, float)
virtual std::pair<int, std::string> renderPose(
^
/home/ubuntu/tmp/20200102-openpose5/openpose/include/openpose/pose/poseRenderer.hpp:19:45: note: candidate expects 4 arguments, 2 provided
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:244:23: error: no match for ‘operator=’ (operand types are ‘cv::Mat’ and ‘op::Matrix’)
cv_ptr->image = outputImage;
^
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp:3642:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:59,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:696:6: note: candidate: cv::Mat& cv::Mat::operator=(const cv::Mat&)
Mat& Mat::operator = (const Mat& m)
^
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:696:6: note: no known conversion for argument 1 from ‘op::Matrix’ to ‘const cv::Mat&’
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp:3642:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:59,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:3293:6: note: candidate: cv::Mat& cv::Mat::operator=(const cv::MatExpr&)
Mat& Mat::operator = (const MatExpr& e)
^
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:3293:6: note: no known conversion for argument 1 from ‘op::Matrix’ to ‘const cv::MatExpr&’
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:59:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp:1229:10: note: candidate: cv::Mat& cv::Mat::operator=(const Scalar&)
Mat& operator = (const Scalar& s);
^
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp:1229:10: note: no known conversion for argument 1 from ‘op::Matrix’ to ‘const Scalar& {aka const cv::Scalar_<double>&}’
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.hpp:3642:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:59,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:1360:6: note: candidate: cv::Mat& cv::Mat::operator=(cv::Mat&&)
Mat& Mat::operator = (Mat&& m)
^
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core/mat.inl.hpp:1360:6: note: no known conversion for argument 1 from ‘op::Matrix’ to ‘cv::Mat&&’
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In member function ‘op::PoseModel OpenposeDetecter::gflagToPoseModel(const string&)’:
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:254:6: error: ‘log’ is not a member of ‘op’
op::log("", op::Priority::Low, __LINE__, __FUNCTION__, __FILE__);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:254:6: note: suggested alternatives:
In file included from /usr/include/features.h:367:0,
from /usr/include/stdlib.h:24,
from /opt/ros/kinetic/include/ros/platform.h:53,
from /opt/ros/kinetic/include/ros/time.h:53,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: note: ‘log’
__MATHCALL_VEC (log,, (_Mdouble_ __x));
^
In file included from /usr/include/boost/config/no_tr1/complex.hpp:21:0,
from /usr/include/boost/math/policies/error_handling.hpp:15,
from /usr/include/boost/math/special_functions/round.hpp:14,
from /opt/ros/kinetic/include/ros/time.h:58,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/c++/5/complex:785:5: note: ‘std::log’
log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); }
^
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:1514:19: note: ‘cv::log’
CV_EXPORTS_W void log(InputArray src, OutputArray dst);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp: In member function ‘std::tuple<op::Point<int>, op::Point<int>, op::Point<int>, op::PoseModel> OpenposeDetecter::gflagsToOpParameters()’:
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:271:7: error: ‘log’ is not a member of ‘op’
op::log("", op::Priority::Low, __LINE__, __FUNCTION__, __FILE__);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:271:7: note: suggested alternatives:
In file included from /usr/include/features.h:367:0,
from /usr/include/stdlib.h:24,
from /opt/ros/kinetic/include/ros/platform.h:53,
from /opt/ros/kinetic/include/ros/time.h:53,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: note: ‘log’
__MATHCALL_VEC (log,, (_Mdouble_ __x));
^
In file included from /usr/include/boost/config/no_tr1/complex.hpp:21:0,
from /usr/include/boost/math/policies/error_handling.hpp:15,
from /usr/include/boost/math/special_functions/round.hpp:14,
from /opt/ros/kinetic/include/ros/time.h:58,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/c++/5/complex:785:5: note: ‘std::log’
log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); }
^
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:1514:19: note: ‘cv::log’
CV_EXPORTS_W void log(InputArray src, OutputArray dst);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:275:7: error: ‘checkE’ is not a member of ‘op’
op::checkE(nRead, 2, "Error, resolution format (" + FLAGS_resolution + ") invalid, should be e.g., 960x540 ",
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:280:7: error: ‘checkE’ is not a member of ‘op’
op::checkE(nRead, 2, "Error, net resolution format (" + FLAGS_net_resolution + ") invalid, should be e.g., 656x368 (multiples of 16)",
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:292:7: error: ‘log’ is not a member of ‘op’
op::log("", op::Priority::Low, __LINE__, __FUNCTION__, __FILE__);
^
/home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:292:7: note: suggested alternatives:
In file included from /usr/include/features.h:367:0,
from /usr/include/stdlib.h:24,
from /opt/ros/kinetic/include/ros/platform.h:53,
from /opt/ros/kinetic/include/ros/time.h:53,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:109:1: note: ‘log’
__MATHCALL_VEC (log,, (_Mdouble_ __x));
^
In file included from /usr/include/boost/config/no_tr1/complex.hpp:21:0,
from /usr/include/boost/math/policies/error_handling.hpp:15,
from /usr/include/boost/math/special_functions/round.hpp:14,
from /opt/ros/kinetic/include/ros/time.h:58,
from /opt/ros/kinetic/include/ros/ros.h:38,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:3:
/usr/include/c++/5/complex:785:5: note: ‘std::log’
log(const complex<_Tp>& __z) { return __complex_log(__z.__rep()); }
^
In file included from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui.hpp:46:0,
from /opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/highgui/highgui.hpp:48,
from /home/ubuntu/catkin_ws/src/openpose_ros/src/openpose_ros_node.cpp:5:
/opt/ros/kinetic/include/opencv-3.3.1-dev/opencv2/core.hpp:1514:19: note: ‘cv::log’
CV_EXPORTS_W void log(InputArray src, OutputArray dst);
^
openpose_ros/CMakeFiles/openpose_ros_node.dir/build.make:62: ターゲット 'openpose_ros/CMakeFiles/openpose_ros_node.dir/src/openpose_ros_node.cpp.o' のレシピで失敗しました
最新版openposeの公開ヘッダと差分があるためエラーが出ていると思われます。
以下の通り、openpose-rosは、現状openpose v1.0.0 tagに対応しているようです。
You have two solutions.
(I) you reinstall old openpose library. Maybe tag v1.0.0 works well.
(II) you rewrite openpose_ros_node.cpp with reference to "openpose/examples/tutorial_pose/1_extract_from_image.cpp".
(I)で対策しようとするも、対応するv1.0.0のopenposeをビルドすることができず、ギブアップしました。
時間のある際に再チャレンジしたいと思います。
参考
OpenPoseをROSで動かす
OpenPoseのHand Estimationを動かしてみた。
OpenPoseを動かしてみた。
openpose_ros