slam 14강-ch4에서 부딪힌 문제

1743 단어 slam14강 학습
slam 14강을 공부하는 과정에서ch4장에서 SoPhus를 실천하는 과정에서 두 가지 문제에 부딪혔다. 문제1: Sophus를 번역하는 과정에서 다음과 같은 오류를 제시했다.
/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment
unit_complex_.real() = 1.;

/Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment
unit_complex_.imag() = 0.;
 :


표시 섹션을 다음과 같이 수정합니다.
SO2::SO2()
{
//unit_complex_.real() = 1.;
//unit_complex_.imag() = 0.;
unit_complex_.real(1.);
unit_complex_.imag(0.);
}

이 부분은 원github의 issue 부분을 참고하면 해결됩니다.
**문제2 우선, 원래slam14강에서 가지고 있던 Sophus는 3rdparty라는 폴더 아래에 있습니다. 만약에 상기 Sophus 라이브러리가 이 폴더 아래에 있다면 아래의 문제가 발생하지 않을 것입니다.그러나 나는 Sophus 라이브러리가 새로운 코드를 업데이트했는지 보고 싶어서 참고서의 80페이지는 다음과 같다.
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff

Sophus 라이브러리를 다른 경로로 컴파일한 다음 make 프로그램 useEigen 부분에서 오류가 발생했습니다.
~/ /slambook-master/ch4/useSophus/build$ make
Scanning dependencies of target useSophus
[ 50%] Building CXX object CMakeFiles/useSophus.dir/useSophus.cpp.o
make[2]: ***  “/home/panpanhuang/ /slambook-master/3rdparty/Sophus/build/libSophus.so”, “useSophus”  。  。
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/useSophus.dir/all' failed
make[1]: *** [CMakeFiles/useSophus.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

이 부분은 제가 찾지 않았습니다. 경로에 따라 저는 Sophus 라이브러리의 번역이 잘못된 부분을 초보적으로 판단했습니다. 처음에 개인적인 견해에 의하면 라이브러리의 번역이 어디에 문제가 없는지 사실은 그렇지 않았습니다.나는 3edparty에서 문제 1에 기술된 코드를 다시 수정하고 Sophus 라이브러리를 다시 컴파일한 후에 실행 코드를 컴파일했다.보충: 지금 문제가 생겼으니 먼저 적어 두세요.3rdparty에서 컴파일된 라이브러리 프로그램이make를 할 수 없는 구체적인 원인을 찾지 못했기 때문에 먼저 문제를 해결하고 다음에 보러 갈 수밖에 없습니다.

좋은 웹페이지 즐겨찾기