Coder Social home page Coder Social logo

Comments (17)

cfo avatar cfo commented on June 28, 2024

hi,
can you add launch-prefix="gdb -ex run --args" to the <node /> tag in the launchfile. when it fails, can you type bt (backtrace) and send me the results?
thanks

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Thank for the answer. Just to make sure I am doing this correctly my node tag looks like this now:

(I tried first adding it to the other node named svo_ros_rviz but that didn't get me into gdb).

However, I get 'no stack' in response to typing 'bt' :

roslaunch svo_ros test_rig3.launch
[...]
Reading symbols from /home/ketill/robotics/rosbook/devel/lib/svo_ros/vo...(no debugging symbols found)...done.
Starting program: /home/ketill/robotics/rosbook/devel/lib/svo_ros/vo __name:=svo __log:=/home/ketill/.ros/log/91555042-e4c1-11e3-9e31-c485080f17f7/svo-1.log
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
/home/ketill/robotics/rosbook/devel/lib/svo_ros/vo: error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file or directory
Inferior 1 (process 26836) exited with code 0177 process[svo_ros_rviz-2]: started with pid [26840]
bt
No stack.
(gdb) quit
[svo-1] process has finished cleanly
trace when

What am I doing wrong?

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

sorry, in rpg_svo/svo/CMakeLists.txt on line 14, set CMAKE_BUILD_TYPE to RelWithDebInfo.

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Thanks for taking the time to help me! So, I noticed that for me the flag was in line 12, and not 14. Long story short something changed in the source since I pulled this morning and after doing a git pull again and compiling, everything works! Yay!

from rpg_svo.

pablospe avatar pablospe commented on June 28, 2024

I am still have this problem (even after git pull). Do you know what fixes the problem for you?

[...]
[ INFO] [1402512386.536574106]: SVO initialized
vo: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:78: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = double; int Size = 4; int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & 0xf) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
[svo-1] process has died [pid 23831, exit code -6, cmd /home/pablo/catkin_ws/devel/lib/svo_ros/vo __name:=svo __log:=/home/pablo/.ros/log/143597c8-f198-11e3-8a3e-0013021f71b5/svo-1.log].
[...]

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

this sounds like there is somewhere a "EIGEN_MAKE_ALIGNED_OPERATOR_NEW" missing.
in order to fix it, i need to know where it happens.
can you add launch-prefix="gdb -ex run --args" to the <node /> tag in the launchfile. when it fails, can you type bt (backtrace) and send me the results?
You also need to set in rpg_svo/svo/CMakeLists.txt on line 14 CMAKE_BUILD_TYPE to RelWithDebInfo.

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Only advise I can offer is to try to clean/build after pulling. I did 'catkin_make clean' then 'catkin_make' after 'git pull'.

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Ok, it is happening to me again (just pulled), but I also have a stacktrace:

[ INFO] [1402563592.624213569]: SVO initialized
vo: /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:69: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = double, int Size = 4, int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(array) & 0xf) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.

Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7fdd424 in __kernel_vsyscall ()
#1 0xb78151df in raise () from /lib/i386-linux-gnu/libc.so.6
#2 0xb7818825 in abort () from /lib/i386-linux-gnu/libc.so.6
#3 0xb780e085 in ?? () from /lib/i386-linux-gnu/libc.so.6
#4 0xb780e137 in __assert_fail () from /lib/i386-linux-gnu/libc.so.6
#5 0xb7ed5271 in Eigen::internal::plain_array<double, 4, 0, 16>::plain_array (
this=)
at /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:69
#6 0xb7ef00f3 in plain_array (this=0x81a25b8)
at /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:69
#7 DenseStorage (this=0x81a25b8)
at /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:102
#8 PlainObjectBase (this=0x81a25b8)
at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:395
#9 Matrix (this=0x81a25b8) at /usr/include/eigen3/Eigen/src/Core/Matrix.h:216
#10 svo::Matcher::Matcher (this=0x81a2588)
at /home/ketill/robotics/rosbook/src/rpg_svo/svo/src/matcher.cpp:111
#11 0xb7ef20dd in svo::Reprojector::Reprojector (this=0x81a2548,
cam=0x8169038, map=...)
at /home/ketill/robotics/rosbook/src/rpg_svo/svo/src/reprojector.cpp:34
#12 0xb7ed6c18 in svo::FrameHandlerMono::FrameHandlerMono (this=0x81a24a8,
cam=0x8169038)
at /home/ketill/robotics/rosbook/src/rpg_svo/svo/src/frame_handler_mono.cpp:---Type to continue, or q to quit---
#12 0xb7ed6c18 in svo::FrameHandlerMono::FrameHandlerMono (this=0x81a24a8,
cam=0x8169038)
at /home/ketill/robotics/rosbook/src/rpg_svo/svo/src/frame_handler_mono.cpp:---Type to continue, or q to quit---
37
#13 0x08052e57 in svo::VoNode::VoNode() ()
#14 0x080500f3 in main ()

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

can you pull and build again. I forgot EIGEN_MAKE_ALIGNED_OPERATOR_NEW in the reprojector class. let's see if it works..

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

I still get the exact same crash and stacktrace. I verified that EIGEN_MAKE_ALIGNED_OPERATOR_NEW is in line 40 of reprojector.h after pulling. Suggestions?

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

Sorry, my comment was wrong, actually I added it to matcher.h on line 67.

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Ah, ok. I have it there too :)

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

It has to do with this: http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html
But in the matcher and reprojector class, I don't see any problems at the moment.

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Ok, I got it working with a crazy brute force solution. I added EIGEN_MAKE_ALIGNED_OPERATOR_NEW in every place in every .h file I could find (where it wasn't already). Obviously not ideal, but this way it seems to work reliably. At least I haven't been able to break it by rebuilding, changing parameters, etc. Below is the output of my git diff. I can also try to figure out a more 'minimal' version. @cfo : tips on how to do that?

ketill@blinky:~/robotics/rosbook/src/rpg_svo$ git diff
diff --git a/svo/include/svo/bundle_adjustment.h b/svo/include/svo/bundle_adjustment.h
index f3c3501..6bedcb0 100644
--- a/svo/include/svo/bundle_adjustment.h
+++ b/svo/include/svo/bundle_adjustment.h
@@ -43,6 +43,8 @@ namespace ba {
 /// Temporary container to hold the g2o edge with reference to frame and point.
 struct EdgeContainerSE3
 {
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+  
   g2oEdgeSE3*     edge;
   Frame*          frame;
   Feature*        feature;
diff --git a/svo/include/svo/feature_detection.h b/svo/include/svo/feature_detection.h
index d0990a8..07f1c1a 100644
--- a/svo/include/svo/feature_detection.h
+++ b/svo/include/svo/feature_detection.h
@@ -43,6 +43,8 @@ typedef vector<Corner> Corners;
 class AbstractDetector
 {
 public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+  
   AbstractDetector(
       const int img_width,
       const int img_height,
@@ -86,6 +88,7 @@ typedef boost::shared_ptr<AbstractDetector> DetectorPtr;
 class FastDetector : public AbstractDetector
 {
 public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
   FastDetector(
       const int img_width,
       const int img_height,
diff --git a/svo/include/svo/frame_handler_base.h b/svo/include/svo/frame_handler_base.h
index 9a78639..5a0e27a 100644
--- a/svo/include/svo/frame_handler_base.h
+++ b/svo/include/svo/frame_handler_base.h
@@ -42,6 +42,7 @@ class DepthFilter;
 class FrameHandlerBase : boost::noncopyable
 {
 public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
   enum Stage {
     STAGE_PAUSED,
     STAGE_FIRST_FRAME,
diff --git a/svo/include/svo/frame_handler_mono.h b/svo/include/svo/frame_handler_mono.h
index 546e501..27df16b 100644
--- a/svo/include/svo/frame_handler_mono.h
+++ b/svo/include/svo/frame_handler_mono.h
@@ -28,6 +28,8 @@ namespace svo {
 class FrameHandlerMono : public FrameHandlerBase
 {
 public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW 
+  
   FrameHandlerMono(vk::AbstractCamera* cam);
   virtual ~FrameHandlerMono();

diff --git a/svo/include/svo/map.h b/svo/include/svo/map.h
index 458622b..ceda2e1 100644
--- a/svo/include/svo/map.h
+++ b/svo/include/svo/map.h
@@ -34,6 +34,8 @@ class MapPointCandidates
 public:
   typedef pair<Point*, Feature*> PointCandidate;
   typedef list<PointCandidate> PointCandidateList;
+  
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW

   /// The depth-filter is running in a parallel thread and fills the canidate list.
   /// This mutex controls concurrent access to point_candidates.
diff --git a/svo/include/svo/point.h b/svo/include/svo/point.h
index f7706be..e1bb81b 100644
--- a/svo/include/svo/point.h
+++ b/svo/include/svo/point.h
@@ -35,7 +35,8 @@ typedef Matrix<double, 2, 3> Matrix23d;
 class Point : boost::noncopyable
 {
 public:
-
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+  
   enum PointType {
     TYPE_DELETED,
     TYPE_CANDIDATE,
diff --git a/svo/include/svo/sparse_img_align.h b/svo/include/svo/sparse_img_align.h
index c9da479..afec83e 100644
--- a/svo/include/svo/sparse_img_align.h
+++ b/svo/include/svo/sparse_img_align.h
@@ -37,6 +37,8 @@ class SparseImgAlign : public vk::NLLSSolver<6, SE3>
   static const int patch_area_ = patch_size_*patch_size_;
 public:

+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+  
   cv::Mat resimg_;

   SparseImgAlign(

from rpg_svo.

cfo avatar cfo commented on June 28, 2024

perfect. it would be nice if you could figure out where it is unnecessary and then make a pull request.
In the page I linked it is described where it is required.
I don't think you need it in

  • EdgeContainerSE3
  • AbstractDetector
  • FastDetector
  • FrameHandlerBase
  • MapPointCandidates

not sure about:

  • Point
  • FrameHandlerMono
  • SparseImgAlign

from rpg_svo.

kplayer avatar kplayer commented on June 28, 2024

Ok, I sent a pull request.

from rpg_svo.

xuchong avatar xuchong commented on June 28, 2024

@cfo @kplayer
I add EIGEN_MAKE_ALIGNED_OPERATOR_NEW accordding to above(git diff). Still get same errors.
[/usr/include/eigen3/Eigen/src/Core/DenseStorage.h:78:

Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array()

[with T = double; int Size = 4; int MatrixOrArrayOptions = 0]:

Assertion `(reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & 0xf) == 0 &&
"this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"'

failed.](url)

Then i used the method as you told:
add launch-prefix="gdb -ex run --args" to the tag. Then type bt, i got this:
(gdb)
#0 0xb7fdccf9 in ?? ()
#1 0xb7ebf3c6 in svo::DepthFilter::updateSeedsLoop() ()
from /home/xc/project/devel/lib/libsvo.so
#2 0xb7ec102b in boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, svo::DepthFilter>, boost::_bi::list1<boost::_bi::valuesvo::DepthFilter* > > >::run() () from /home/xc/project/devel/lib/libsvo.so
#3 0xb717d681 in ?? () from /usr/lib/i386-linux-gnu/libboost_thread.so.1.54.0
#4 0xb7406f72 in start_thread (arg=0xadbfeb40) at pthread_create.c:312
#5 0xb7875f8e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129
(gdb)

What's wrong?

from rpg_svo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.