Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

classic Classic list List threaded Threaded
26 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

I have installed Ubuntu trusty and ros indigo on raspberry pi 2. I am following hand-held kinect mapping tutorial. I am running rtabmap with rviz=false & rtabmapviz=false. But I get error " process has died [pid 2339, exit code -11...].

Here is the output of rtabmap_ros command -  

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[rtabmap/rgbd_odometry-1]: started with pid [2339]
process[rtabmap/rtabmap-2]: started with pid [2340]
[rtabmap/rgbd_odometry-1] process has died [pid 2339, exit code -11, cmd /opt/ros/indigo/lib/rtabmap_ros/rgbd_odometry rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info __name:=rgbd_odometry __log:=/home/ubuntu/.ros/log/d19c9314-1dd2-11b2-8460-b827eb068306/rtabmap-rgbd_odometry-1.log].
log file: /home/ubuntu/.ros/log/d19c9314-1dd2-11b2-8460-b827eb068306/rtabmap-rgbd_odometry-1*.log
[rtabmap/rtabmap-2] process has died [pid 2340, exit code -11, cmd /opt/ros/indigo/lib/rtabmap_ros/rtabmap --delete_db_on_start rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info __name:=rtabmap __log:=/home/ubuntu/.ros/log/d19c9314-1dd2-11b2-8460-b827eb068306/rtabmap-rtabmap-2.log].
log file: /home/ubuntu/.ros/log/d19c9314-1dd2-11b2-8460-b827eb068306/rtabmap-rtabmap-2*.log


I cannot detect the cause of this error. The log files are not present in the location mentioned.
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
For some reasons, the binaries don't work on all machines. Uninstall ros-indigo-rtabmap and try with rtabmap built from source.

This is what I got on a virtual box with Trusty+Indigo:
$ roslaunch rtabmap_ros rgbd_mapping.launch rtabmapviz:=false
... logging to /home/mathieu/.ros/log/5f2b9e36-023a-11e5-aab6-0800277bc8c1/roslaunch-mathieu-23547.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://mathieu:33998/

SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.10
 * /rtabmap/rgbd_odometry/Odom/FeatureType: 6
 * /rtabmap/rgbd_odometry/Odom/FillInfoData: true
 * /rtabmap/rgbd_odometry/Odom/InlierDistance: 0.02
 * /rtabmap/rgbd_odometry/Odom/MaxDepth: 4.0
 * /rtabmap/rgbd_odometry/Odom/MinInliers: 20
 * /rtabmap/rgbd_odometry/Odom/Strategy: 0
 * /rtabmap/rgbd_odometry/OdomBow/LocalHistorySize: 1000
 * /rtabmap/rgbd_odometry/OdomBow/NNType: 3
 * /rtabmap/rgbd_odometry/frame_id: camera_link
 * /rtabmap/rtabmap/LccBow/InlierDistance: 0.02
 * /rtabmap/rtabmap/LccBow/MinInliers: 10
 * /rtabmap/rtabmap/frame_id: camera_link
 * /rtabmap/rtabmap/subscribe_depth: True

NODES
  /rtabmap/
    rgbd_odometry (rtabmap_ros/rgbd_odometry)
    rtabmap (rtabmap_ros/rtabmap)

auto-starting new master
process[master]: started with pid [23559]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 5f2b9e36-023a-11e5-aab6-0800277bc8c1
process[rosout-1]: started with pid [23572]
started core service [/rosout]
process[rtabmap/rgbd_odometry-2]: started with pid [23589]
process[rtabmap/rtabmap-3]: started with pid [23590]
[ INFO] [1432488544.335679400]: Starting node...
[ INFO] [1432488544.499607602]: rtabmap: frame_id = camera_link
[ INFO] [1432488544.499740519]: rtabmap: map_frame_id = map
[ INFO] [1432488544.499784839]: rtabmap: queue_size = 10
[ INFO] [1432488544.499832514]: rtabmap: tf_delay = 0.050000
[ INFO] [1432488544.962177998]: Setting RTAB-Map parameter "LccBow/InlierDistance"="0.02"
[ INFO] [1432488544.991443170]: Setting RTAB-Map parameter "LccBow/MinInliers"="10"
[ INFO] [1432488545.089169463]: Setting odometry parameter "Odom/FeatureType"="6"
[ INFO] [1432488545.091561665]: Setting odometry parameter "Odom/FillInfoData"="true"
[ INFO] [1432488545.100429381]: Setting odometry parameter "Odom/InlierDistance"="0.02"
[ INFO] [1432488545.129776848]: Setting odometry parameter "Odom/MaxDepth"="4.0"
[ INFO] [1432488545.143116221]: Setting odometry parameter "Odom/MinInliers"="20"
[ INFO] [1432488545.203574521]: Setting odometry parameter "Odom/Strategy"="0"
[ INFO] [1432488545.205434629]: Setting odometry parameter "OdomBow/LocalHistorySize"="1000"
[ INFO] [1432488545.215406613]: Setting odometry parameter "OdomBow/NNType"="3"
[ INFO] [1432488545.755010047]: Using OdometryBOW
[ INFO] [1432488546.053525123]: 
/rtabmap/rgbd_odometry subscribed to:
   /camera/rgb/image_rect_color,
   /camera/depth_registered/image_raw,
   /camera/rgb/camera_info
[ INFO] [1432488546.219635570]: RTAB-Map rate detection = 1.000000 Hz
[ INFO] [1432488546.219832355]: rtabmap: Deleted database "/home/mathieu/.ros/rtabmap.db" (--delete_db_on_start is set).
[ INFO] [1432488546.219873291]: rtabmap: Using database from "/home/mathieu/.ros/rtabmap.db".
[ INFO] [1432488546.699859682]: Registering Depth callback...
[ INFO] [1432488546.701031500]: 
/rtabmap/rtabmap subscribed to:
   /camera/rgb/image_rect_color,
   /camera/depth_registered/image_raw,
   /camera/rgb/camera_info,
   /rtabmap/odom
[ INFO] [1432488546.701774004]: rtabmap started...

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Thanks for the quick reply. While installing from source, I got an error in the last step i.e. $catkin_make. I searched on internet but couldnt find a working solution.Here is the error and ather the error I have posted the full output.

CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_ros-msg-paths.cmake.tmp
CMake Error: : System Error: No such file or directory

CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_rosConfig.cmake.tmp
CMake Error: : System Error: No such file or directory

CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_rosConfig-version.cmake.tmp
CMake Error: : System Error: No such file or directory


Here is the FULL OUTPUT -


-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 1 packages in topological order:
-- ~~  - rtabmap_ros
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'rtabmap_ros'
-- ==> add_subdirectory(rtabmap_ros)
-- Using these message generators: gencpp;genlisp;genpy
CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_ros-msg-paths.cmake.tmp
CMake Error: : System Error: No such file or directory
CMake Error at /opt/ros/indigo/share/genmsg/cmake/genmsg-extras.cmake:215 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  rtabmap_ros/CMakeLists.txt:67 (generate_messages)


CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_rosConfig.cmake.tmp
CMake Error: : System Error: No such file or directory
CMake Error at /opt/ros/indigo/share/catkin/cmake/catkin_package.cmake:375 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  /opt/ros/indigo/share/catkin/cmake/catkin_package.cmake:98 (_catkin_package)
  rtabmap_ros/CMakeLists.txt:86 (catkin_package)


CMake Error: Could not open file for write in copy operation /home/ubuntu/catkin_ws/devel/share/rtabmap_ros/cmake/rtabmap_rosConfig-version.cmake.tmp
CMake Error: : System Error: No such file or directory
CMake Error at /opt/ros/indigo/share/catkin/cmake/catkin_package.cmake:380 (configure_file):
  configure_file Problem configuring file
Call Stack (most recent call first):
  /opt/ros/indigo/share/catkin/cmake/catkin_package.cmake:98 (_catkin_package)
  rtabmap_ros/CMakeLists.txt:86 (catkin_package)


-- WITH costmap_2d
-- WITH octomap
-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeError.log".
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed


Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
The error is from catkin, it cannot copy some files. For the rtabmap_rosConfig*.cmake.tmp, it seems related to these lines in this file: https://github.com/ros/catkin/blob/2599eb973762c2a23f103fdc8bd0ef40e779f2ed/cmake/catkin_package.cmake#L370-L383

Did you initialize the ros workspace? http://wiki.ros.org/catkin/Tutorials/create_a_workspace

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

Yes, I have initialized the workspace by putting the two source files in bashrc. Currently I am trying to tinker with the files to solve the issue. Since it was saying no such file or directory, I manually made the same name file at that place but that didnt solve the issue.

Thanks
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
I reinstalled ubuntu & ros on my rpi but I got the same error. I tried manual method instead of catkin_make and I got error at cmake step. I am posting my CMakeError.log though I dont understand what is the exact cause -

Determining if the pthread_create exist failed with the following output:
Change Dir: /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec3439598982/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3439598982.dir/build.make CMakeFiles/cmTryCompileExec3439598982.dir/build
make[1]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3439598982.dir/CheckSymbolExists.c.o
/usr/bin/cc    -o CMakeFiles/cmTryCompileExec3439598982.dir/CheckSymbolExists.c.o   -c /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTryCompileExec3439598982
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3439598982.dir/link.txt --verbose=1
/usr/bin/cc       CMakeFiles/cmTryCompileExec3439598982.dir/CheckSymbolExists.c.o  -o cmTryCompileExec3439598982 -rdynamic
CMakeFiles/cmTryCompileExec3439598982.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0xe): undefined reference to `pthread_create'
CheckSymbolExists.c:(.text+0x12): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec3439598982] Error 1
make: *** [cmTryCompileExec3439598982/fast] Error 2

File /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec1356566678/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1356566678.dir/build.make CMakeFiles/cmTryCompileExec1356566678.dir/build
make[1]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec1356566678.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec1356566678.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec1356566678
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1356566678.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec1356566678.dir/CheckFunctionExists.c.o  -o cmTryCompileExec1356566678 -rdynamic -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
make[1]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec1356566678] Error 1
make: *** [cmTryCompileExec1356566678/fast] Error 2


Determining if the Q_WS_WIN exist failed with the following output:
Change Dir: /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec2145432255/fast"
make[1]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/make -f CMakeFiles/cmTryCompileExec2145432255.dir/build.make CMakeFiles/cmTryCompileExec2145432255.dir/build
make[2]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec2145432255.dir/CheckSymbolExists.cxx.o
/usr/bin/c++    -I/usr/include/qt4    -o CMakeFiles/cmTryCompileExec2145432255.dir/CheckSymbolExists.cxx.o -c /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In function 'int main(int, char**)':
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: error: 'Q_WS_WIN' was not declared in this scope
   return ((int*)(&Q_WS_WIN))[argc];
                   ^
make[2]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[2]: *** [CMakeFiles/cmTryCompileExec2145432255.dir/CheckSymbolExists.cxx.o] Error 1
make[1]: *** [cmTryCompileExec2145432255/fast] Error 2
make[1]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'

File /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_WIN
  return ((int*)(&Q_WS_WIN))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the Q_WS_QWS exist failed with the following output:
Change Dir: /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec907152250/fast"
make[1]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/make -f CMakeFiles/cmTryCompileExec907152250.dir/build.make CMakeFiles/cmTryCompileExec907152250.dir/build
make[2]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec907152250.dir/CheckSymbolExists.cxx.o
/usr/bin/c++    -I/usr/include/qt4    -o CMakeFiles/cmTryCompileExec907152250.dir/CheckSymbolExists.cxx.o -c /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In function 'int main(int, char**)':
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: error: 'Q_WS_QWS' was not declared in this scope
   return ((int*)(&Q_WS_QWS))[argc];
                   ^
make[2]: *** [CMakeFiles/cmTryCompileExec907152250.dir/CheckSymbolExists.cxx.o] Error 1
make[2]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[1]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec907152250/fast] Error 2

File /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_QWS
  return ((int*)(&Q_WS_QWS))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the Q_WS_MAC exist failed with the following output:
Change Dir: /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec2828261759/fast"
make[1]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/make -f CMakeFiles/cmTryCompileExec2828261759.dir/build.make CMakeFiles/cmTryCompileExec2828261759.dir/build
make[2]: Entering directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec2828261759.dir/CheckSymbolExists.cxx.o
/usr/bin/c++    -I/usr/include/qt4    -o CMakeFiles/cmTryCompileExec2828261759.dir/CheckSymbolExists.cxx.o -c /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In function 'int main(int, char**)':
/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: error: 'Q_WS_MAC' was not declared in this scope
   return ((int*)(&Q_WS_MAC))[argc];
                   ^
make[2]: *** [CMakeFiles/cmTryCompileExec2828261759.dir/CheckSymbolExists.cxx.o] Error 1
make[2]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec2828261759/fast] Error 2
make[1]: Leaving directory `/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp'

File /home/ubuntu/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_MAC
  return ((int*)(&Q_WS_MAC))[argc];
#else
  (void)argc;
  return 0;
#endif
}



Thanks for your help

Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Yay! I removed all the errors... :) .  I had some wierd permissions set for catkin_ws folder. Some of the folders inside devel were having their owner set as root and not the user(in my case ubuntu). I dont know how their permissions ended up like that because on my laptop running same ubuntu it never happened. For others if encountering this problem, run this command in catkin workspace folder-

$sudo chown -R [username] ./

@M. Labbe Thanks for making such a great library. I will surely post a detailed description of my project once I get my bot running. :)

Thanking You,
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
This post was updated on .
I have compiled rtabmap from source on raspberry pi 2. But this error is coming up when I roslaunch it -

NODES
  /rtabmap/
    rgbd_odometry (rtabmap_ros/rgbd_odometry)
    rtabmap (rtabmap_ros/rtabmap)

auto-starting new master
process[master]: started with pid [3538]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 92353da4-03bc-11e5-9414-b827eb068306
process[rosout-1]: started with pid [3551]
started core service [/rosout]
process[rtabmap/rgbd_odometry-2]: started with pid [3568]
process[rtabmap/rtabmap-3]: started with pid [3569]
[rtabmap/rgbd_odometry-2] process has died [pid 3568, exit code -11, cmd /home/ubuntu/catkin_ws/devel/lib/rtabmap_ros/rgbd_odometry rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info __name:=rgbd_odometry __log:=/home/ubuntu/.ros/log/92353da4-03bc-11e5-9414-b827eb068306/rtabmap-rgbd_odometry-2.log].
log file: /home/ubuntu/.ros/log/92353da4-03bc-11e5-9414-b827eb068306/rtabmap-rgbd_odometry-2*.log
[rtabmap/rtabmap-3] process has died [pid 3569, exit code -11, cmd /home/ubuntu/catkin_ws/devel/lib/rtabmap_ros/rtabmap --delete_db_on_start rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info __name:=rtabmap __log:=/home/ubuntu/.ros/log/92353da4-03bc-11e5-9414-b827eb068306/rtabmap-rtabmap-3.log].
log file: /home/ubuntu/.ros/log/92353da4-03bc-11e5-9414-b827eb068306/rtabmap-rtabmap-3*.log
^C[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

one more thing... When I run rosrun rtabmap_ros rtabmap --params , i get -


ubuntu@ubuntu:~$ rosrun rtabmap_ros rtabmap --params
Segmentation fault (core dumped

Whereas on my laptop, it runs fine. Hope this gives more insight.


Thanks for your help

Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
Hi,

I've seen something like this on a laptop once. The workaround was to build rtabmap library in DEBUG mode.

But before, you can test if "rtabmap" alone works (if yes, the problem is on the rtabmap_ros package):
$ rtabmap

So how to build in Debug. First, cleanup your workspace:
$ cd catkin_ws
$ rm -r build devel

Build the library in Debug (and reinstall in the devel workspace):
$ cd rtabmap/build
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
$ make install

I don't know if it is required that the package is in Debug too, but there how you can do that:
$ cd catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Debug

Hope it will help,
cheers
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
This post was updated on .
Hi,

I tried debug mode... but I am getting the same output. The ---param option is giving segmentation fault and rgbd_mapping.launch is giving the error as mentioned above. What I dont understand is that debug mode is not giving some extra outputs. Instead output is the same as with release mode.

Please tell me what else can I try. I want to make it work on rpi.

EDIT: I tried $rtabmap on rpi 2 and it worked...  (I didnt try earlier bec. I didnt had hdmi monitor and vnc was giving plain gray screens). About the performance of rtabmap on rpi2, it is working a bit slower than on my i5 with nvidia graphics laptop but still it a workable performance for my project. On rpi, I am getting 2-4 fps 3D mapping rate and on my laptop, I get 3D mapping rate of more than 100.
And the problem might then be somewhere in the catkin or ros wrappers.

Thanking You,
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
Hello,

nice to see that at least rtabmap standalone works (I was linking the problem to this old issue that I've just imported from the old googlecode repository). For the performance, by 3D mapping rate you mean the odometry update rate? The rtabmap rate is fixed to 1 fps by default.

Yeah, the problem may be in the ros package. So can you try some rtabmap_ros nodes to see if they all fail?
$ rosrun rtabmap_ros rtabmap
$ rosrun rtabmap_ros rtabmapviz
$ rosrun rtabmap_ros data_recorder
$ rosrun rtabmap_ros map_assembler
$ rosrun rtabmap_ros grid_map_assembler
$ rosrun rtabmap_ros rgbd_odometry
$ rosrun rtabmap_ros stereo_odometry
$ rosrun rtabmap_ros map_optimizer

You can also start a node with gdb to see more info about the error:
debug.launch :
<launch>
<node name="rtabmap" type="rtabmap" pkg="rtabmap_ros" launch-prefix="gdb -ex run --args" output="screen"/>
</launch>

$ roslaunch debug.launch

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

Yes... my bad.. by 3D mapping rate I meant odometry rate(the fps shown at bottom left corener of 3D map window in the gui).

I tried the commands. All of them returned the same error i.e. segmentation fault(core dumped) (except data_recorder which I dont have installed).
I started the node with gdb. It certainly gave more insight into the error -

... logging to /home/ubuntu/.ros/log/7a9f93dc-1dd6-11b2-bbb2-b827eb068306/roslaunch-ubuntu-3151.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:47596/

SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.13

NODES
  /
    rtabmap (rtabmap_ros/rtabmap)

auto-starting new master
process[master]: started with pid [3163]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 7a9f93dc-1dd6-11b2-bbb2-b827eb068306
process[rosout-1]: started with pid [3176]
started core service [/rosout]
process[rtabmap-2]: started with pid [3193]
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/ubuntu/catkin_ws/devel/lib/rtabmap_ros/rtabmap...done.
Starting program: /home/ubuntu/catkin_ws/devel/lib/rtabmap_ros/rtabmap __name:=rtabmap __log:=/home/ubuntu/.ros/log/7a9f93dc-1dd6-11b2-bbb2-b827eb068306/rtabmap-2.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]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Cannot access memory at address 0x0

Program received signal SIGILL, Illegal instruction.
0x6c292208 in ?? () from /lib/arm-linux-gnueabihf/libcrypto.so.1.0.0
(gdb) [rtabmap-2] killing on exit
Quit
(gdb) [rtabmap-2] escalating to SIGTERM
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
 
I came across an interesting thread about the illegal instruction error at this github issue (but the file where this happens is different for our case).

I will search more about the issue tomorrow and edit this post if i get something useful. Right now, signing off. Its already 3am here.

Thanking You,
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
Hello,

gdb doesn't show much information. You can try valgrind too.

For the fps, the number shown on the bottom-left of the 3D Map view is related to OpenGL refresh rate, not the actual odometry or map update rates. To see odometry processing time, you can see it in the Statistics view (Window->Show view->Statistics) under Odometry/Time value. For the processing time used by the mapping, it is shown under Timing/Total value.

To debug, you could try to comment stuff in CoreNode.cpp until the node doesn't crash.
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

I had to postpone this project because of my exams. Now I am back to it.

I was getting this error when I ran rtabmap_ros on rpi 2 with ubuntu (rtabmap without ros is working fine on rpi)-

Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
Cannot access memory at address 0x0
 
Then I tried fiddling with the CoreNode.cpp. But even when I comment all the contents of the main function in CoreNode.cpp and do "roslaunch rtabmap_ros rgbd_mapping.launch rviz:=false rtabmapviz:=false" , I get the same error as above.

I tried running other catkin packages, they are working properly.

Can you please suggest me what part of code runs before CoreNode.cpp, so that I can pinpoint the cause of this error? Or any other method to remove this error.

PS : I am not able to run valgrind because of the following error -
Roslaunch got a 'No such file or directory' error while attempting to run:

valgrind /home/kapil/catkin_ws/devel/lib/rtabmap_ros/rtabmap __name:=rtabmap __log:=/home/kapil/.ros/log/e6fc13b2-0dfd-11e5-ba54-28d24442d63d/rtabmap-1.log

Please make sure that all the executables in this command exist and have
executable permission. This is often caused by a bad launch-prefix.
The traceback for the exception was written to the log file

Thanks,
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

Valgrind is finally working. I have attached valgrind output. I am not able to figure out the problem from valgrind output....:( .

file.txt

Thanks for your help.

Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
We will try to detect which library makes the app crashing on start. RTAB-Map standalone app depends on three built-in libraries "core", "gui" and "utilite". The librtabmap_utilite.so defines a thread class (wrapper of pthread) that maybe related to Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1" error if the Raspberry Pi have somewhat specific thread libraries.

Go to rtabmap source directory (the standalone, not the rtabmap_ros) and try the following:
$ cd rtabmap/bin
1) Test PCL libraries + librtabmap_utilite.so alone:
$ ./rtabmap-extractObject
Usage: extractObject [options] cloud.pcd
Options:
   -p #.#            plane distance threshold (default 0.02 m)
   -a #.#            plane angle tolerance from z axis (default PI/6)
   -c #.#            cluster tolerance (default 0.1 m)
   -s #              minimum cluster size (default 50 points)
   -center_obj       center the objects to their local reference
   -save_plane       save the plane inliers to "extracted_plane.pcd"

2) Test OpenCV libraries + librtabmap_utilite.so alone:
$ ./rtabmap-imagesJoiner 
Usage:
imagesJoiner.exe [option] path
  Options:
    -inv       option for copying odd images on the right

3) Test OpenCV_PCL libraries + librtabmap_utilite.so + librtabmap_core.so:
$ ./rtabmap-rgbd_camera 

Usage:
rtabmap-rgbd_camera driver
  driver       Driver number to use: 0=OpenNI-PCL (Kinect)
                                     1=OpenNI2    (Kinect and Xtion PRO Live)
                                     2=Freenect   (Kinect)
                                     3=OpenNI-CV  (Kinect)
                                     4=OpenNI-CV-ASUS (Xtion PRO Live)
                                     5=Freenect2  (Kinect v2)
                                     6=DC1394     (Bumblebee2)
                                     7=FlyCapture2 (Bumblebee2)


4) Test OpenCV+PCL+Qt libraries + librtabmap_utilite.so + librtabmap_core.so + librtabmap_gui.so:
$ ./rtabmap-rgbd_mapping 

Usage:
rtabmap-rgbd_mapping driver
  driver       Driver number to use: 0=OpenNI-PCL, 1=OpenNI2, 2=Freenect, 3=OpenNI-CV, 4=OpenNI-CV-ASUS

Do you have any errors when launching these 4 cases? (crashing before seeing the "usage" above?)
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
This post was updated on .
Hi,

I am getting same output as in yours for all the cases i.e. no errors. Also, rtabmap standalone is working ($rtabmap) but rtabmap_ros is giving the error.


Thanks,
Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

kapilyadav
Hi,

One more question. Can you give me an outline of how to start rtabmap standalone with its gui turned off, automatically turned on new database option and that gives some output when  matched features occur? Basically I want to run rtabmap without its gui and control it using terminal. I am right now looking at the source code to get some idea. I am planning on using rtabmap to make an autonomous robot that can make 3d maps of its surroundings and can localize itself.

I am thinking of working on both rtabmap_ros and standalone rtabmap in parallel.

Thanks for your help.

Kapil Yadav
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

matlabbe
Administrator
If you are planning on using rtabmap on an autonomous robot, I highly recommend to use the rtabmap_ros package. It is too bad that they are not working on your Raspberry Pi. Some people had some linking difficulties with costmap_2d, you could remove the optional dependencies when building rtabmap_ros. You can comment these lines in "rtabmap_ros/CMakeLists.txt".

To use the standalone without the GUI, you may want to check at the RGB-D C++ tutorial. This example is already built (rtabmap/examples/RGBDMapping) when building rtabmap ("rtabmap-rgbd_mapping"). You could remove the GUI stuff from the MapBuilder and add some printfs in the odometry callback to show odometry quality. To have a database saved when closing this example, you should set a database path in "rtabmap->init()":
rtabmap->init("", "rtabmap.db");

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap error in process rtabmap/rgbd_odometry-1 - ubuntu on raspberry pi

infdsc02
In reply to this post by kapilyadav
Hi,kapilyadav:

I have a similar problem, when I try to execute rtabmap_ros on a Odroid XU3. But instead of exit code -11 I have exit code -7. Exit code -11 means that the node exits because rise a signal number 11 (SIGSEGV). In my case is a bus error.

I haven't yet found a solution.
12