blodow / realtime_urdf_filter

ROS package that can filter geometry defined in URDF models from Kinect depth images. Can also preprocess data for the OpenNI tracker, to remove backgrounds, robots etc.
Other
89 stars 46 forks source link

UR5 filtering with Kinectv2 crashing on startup #19

Open budekatude opened 6 years ago

budekatude commented 6 years ago

Hi all,

I've been trying to create a collision map of the surroundings (with rtabmap) for a Universal Robot ur5 using a Microsoft Kinect v2 mounted to an elbow close to the end effector of the robot. I am using ROS Indigo and Ubuntu 14.04.

The mapping works fine but the robot will still see itself from time to time, which will create artifacts within the created map. These I want to filter from the images with the help of this filter.

I am calling the filter module in my .launch file:

<!--Filter robot from depth images with realtime urdf filter package-->
<node pkg="realtime_urdf_filter" type="realtime_urdf_filter" name="realtime_urdf_filter" output="screen">
    <remap from="~input_depth" to="/kinect2/qhd/image_depth_rect"/>
    <remap from="~output_depth" to="/realtime_urdf_filter/robot_filtered" />
    <remap from="~output_mask" to="/urdf_filtered_mask" />
    <rosparam command="load" file="$(find realtime_urdf_filter)/launch/filter_parameters.yaml"/>
</node>

I've set up the filter_parameters.yaml file accordingly:

fixed_frame: /world
camera_frame: /kinect2_base_link
camera_offset:
  translation: [0.0, 0.0, 0.0]
  rotation:    [0.0, 0.0, 0.0, 1]
# There is one entry for each URDIF that should be filtered
models: 
- model: "/robot_description"
  tf_prefix: "/base_link"
# how far in front of the robot model is still deleted? (e.g. 0.05 = 5cm)
depth_distance_threshold: 0.05
show_gui: false
filter_replace_value: 5.0

However every time I start the filter, it crashes immediately creating the following error code:

[realtime_urdf_filter-13] process has died [pid 7618, exit code -6, cmd /home/matthias/catkin_ws/devel/lib/realtime_urdf_filter/realtime_urdf_filter ~input_depth:=/kinect2/qhd/image_depth_rect ~output_depth:=/realtime_urdf_filter/robot_filtered ~output_mask:=/urdf_filtered_mask __name:=realtime_urdf_filter __log:=/home/matthias/.ros/log/eb3857ca-9d56-11e7-998d-68f7289ab1c5/realtime_urdf_filter-13.log].
log file: /home/matthias/.ros/log/eb3857ca-9d56-11e7-998d-68f7289ab1c5/realtime_urdf_filter-13*.log

Any suggestions what it could be related to? Have I set it up correctly? If not... any hints on where it might be set up incorrectly or where to look would really make my day!

Thanks so much in advance!

Edit: I have checked if ./Protonect gl works as suggested in issue #17, and all four different camera pictures show up correctly....

JimmyDaSilva commented 6 years ago

This package requires the following: 3rd party libraries

GLSL (GL Shader Language) version 1.40 support or greater GLEW (GL Extension Wrangler) version 1.6 NOTE: Trying to use thie package with GLEW 1.5 wil result in a segmentation fault.

Did you check your installation of GLSL and GLEW? Are the nvidia drivers installed or are you using nouveau ?

budekatude commented 6 years ago

Hi Jimmy, thanks so much for your quick reply! I have checked my OpenGL version and it seems like its outdated. Even after updating the drivers it doesn't seem to change even though the table on Wikipedia says it should support up to version 4.2.

$ glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.2
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 10.3.2
OpenGL shading language version string: 1.30

Not using any Nvidia drivers. I have a Thinkpad T440p with Intel Haswell Mobile graphics and an Intel Core i5-4210M CPU @ 2.60GHz × 4 CPU.

Edit: Considering there not being any possibility to update it any further... Does there happen to be any kind of workaround?

JimmyDaSilva commented 6 years ago

I don't know anything about opengl computation so I cannot be of any help with that. Also the packager owner is not really maintaining the package. I suggest you try to update your opengl drivers.

lyh458 commented 3 years ago

I had the same error with you, my solution is switch to Nvidia GPU in NVIDIA X Server Settings instead of using the integrated GPU.

lyh458 commented 3 years ago

If you only have integrated GPU, except for switching to Nvidia GPU, you can also try the solution in #26 . In details, see here. For me, I just create a new file ~/.drirc and paste the following code in:

<driconf>
  <device driver="loader" kernel_driver="i915">
    <option name="dri_driver" value="iris" />
  </device>
</driconf>