Need help updating ar_track_alvar for 32-bit systems

asked 2013-10-08 13:38:52 -0500

Pi Robot gravatar image

Folks,

Scott Niekum created the ar_track_alvar package which appears to run very nicely on 64-bit systems using ROS Groovy (Debian install) and Ubuntu 12.04. However, the package does not run on 32-bit systems and Scott thinks it is due to alignment errors in Eigen that only crop on in 32-bit mode.

Scott has moved on to other things and can no longer delve into this problem but I don't have the programming skills to understand how to fix it. So I'm hoping someone on the list does. If someone can at least point to the file or files that need fixing and give me some hints on what to do, I can test the changes and submit a pull request to Scott when I have it working.

The repository can be found at:

https://github.com/sniekum/ar_track_alvar

It compiles fine using catkin_make on my 32-bit laptop (Ubuntu 12.04 + Groovy). However, when running the individualMarkers node under gdb, no markers are detected when held in front of the camera and after a variable period of time (30 seconds to a few minutes) it bombs out with the backtrace listed below.

If this makes sense to someone and you can suggest a fix, please let me know.

Thank!
patrick

Here is the backtrace when the individualMarkers node crashes:

<<a href="http://bugs.launchpad.net/gdb-linaro/%3E..">http://bugs.launchpad.net/gdb-linaro/>..</a>.
Reading symbols from /home/patrick/Dropbox/Robotics/catkin_ws/devel/lib/ar_track_alvar/individualMarkers...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/patrick/Dropbox/Robotics/catkin_ws/devel/lib/ar_track_alvar/individualMarkers 13.2 0.08 0.2 /camera/depth_registered/points /camera/rgb/camera_info /camera_link __name:=ar_track_alvar __log:=/home/patrick/.ros/log/6d1173b8-3031-11e3-820f-e8e0b7eb495f/ar_track_alvar-1.log
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb1c3bb40 (LWP 4158)]
[New Thread 0xb12ffb40 (LWP 4159)]
[New Thread 0xb08ffb40 (LWP 4160)]
[New Thread 0xafeffb40 (LWP 4165)]
[ INFO] [1381273373.719046962]: Subscribing to info topic
[New Thread 0xaf4ffb40 (LWP 4168)]
[ INFO] [1381273374.743478511]: Subscribing to image topic
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb1c3bb40 (LWP 4158)]
0xb7fdd424 in __kernel_vsyscall ()
(gdb) backtrace

#0  0xb7fdd424 in __kernel_vsyscall ()
#1  0xb771d1df in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xb7720825 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0xb799013d in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#4  0xb798ded3 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#5  0xb798df0f in std::terminate() ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#6  0xb798e05e in __cxa_throw () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#7  0xb798e67f in operator new(unsigned int) ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#8  0xb798e74b in operator new[](unsigned int) ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#9  0xb7dc80dd in ros::Connection::read(unsigned int, boost::function<void (boost::shared_ptr<ros::Connection> const&, boost::shared_array<unsigned char> const&, unsigned int, bool)> const&) () from /opt/ros/groovy/lib/libroscpp.so
#10 0xb7e339dc ...
(more)
edit retag flag offensive close merge delete