0
$\begingroup$

Rosanswers logo

Scenario

Using ROS_MASTER_URI I'm able to see kinect topics via a networked computer. I'm able to use the remote topics with RVIZ on the networked computer but I'm not able to use the remote topics with rgbdslam on the networked computer.

Setup

Robo + Kinect remote - 192.168.0.1 - Ubuntu 14.04 ARM - ros-indigo-ros-base

  • ROS_MASTER_URI=http://192.168.0.1
  • ROS_IP=192.168.0.1
  • $ roscore
  • $ roslaunch freenect_launch freenect.launch openni.launch doesn't work over multiple devices

Laptop local - 192.168.0.2 - Ubuntu 14.04 x86_64 - ros-indigo-desktop-full

  • ROS_MASTER_URI=http://192.168.0.1
  • ROS_IP=192.168.0.2
  • $ rosrun rviz rviz

Question

rviz sees the topics just fine but rgbdslam (not run simultaneously with rviz) just sits there waiting for all the needed topics. If I move the camera to the laptop and run in then rgbdslam runs as expected. How can I get rgbdslam to work remotely?

Extras

I noticed that the topics are different when running the camera on the local vs running the camera on the remote:

topic list when running camera from robot (remote):

$ rostopic list
/camera/debayer/parameter_descriptions
/camera/debayer/parameter_updates
/camera/depth/camera_info
/camera/depth/disparity
/camera/depth/image
/camera/depth/image_raw
/camera/depth/image_rect
/camera/depth/image_rect_raw
/camera/depth/points
/camera/depth_rectify_depth/parameter_descriptions
/camera/depth_rectify_depth/parameter_updates
/camera/depth_registered/camera_info
/camera/depth_registered/disparity
/camera/depth_registered/hw_registered/image_rect
/camera/depth_registered/hw_registered/image_rect_raw
/camera/depth_registered/image
/camera/depth_registered/image_raw
/camera/depth_registered/points
/camera/depth_registered/sw_registered/camera_info
/camera/depth_registered/sw_registered/image_rect
/camera/depth_registered/sw_registered/image_rect_raw
/camera/depth_registered_rectify_depth/parameter_descriptions
/camera/depth_registered_rectify_depth/parameter_updates
/camera/driver/parameter_descriptions
/camera/driver/parameter_updates
/camera/ir/camera_info
/camera/ir/image_raw
/camera/ir/image_rect_ir
/camera/projector/camera_info
/camera/rectify_color/parameter_descriptions
/camera/rectify_color/parameter_updates
/camera/rectify_ir/parameter_descriptions
/camera/rectify_ir/parameter_updates
/camera/rectify_mono/parameter_descriptions
/camera/rectify_mono/parameter_updates
/camera/rgb/camera_info
/camera/rgb/image_color
/camera/rgb/image_mono
/camera/rgb/image_raw
/camera/rgb/image_rect_color
/camera/rgb/image_rect_mono
/rosout
/rosout_agg
/tf
/tf_static

Topic list when running camera from laptop (localhost):

$ rostopic list
/camera/debayer/parameter_descriptions
/camera/debayer/parameter_updates
/camera/depth/camera_info
/camera/depth/disparity
/camera/depth/image
/camera/depth/image/compressed
/camera/depth/image/compressed/parameter_descriptions
/camera/depth/image/compressed/parameter_updates
/camera/depth/image/compressedDepth
/camera/depth/image/compressedDepth/parameter_descriptions
/camera/depth/image/compressedDepth/parameter_updates
/camera/depth/image/theora
/camera/depth/image/theora/parameter_descriptions
/camera/depth/image/theora/parameter_updates
/camera/depth/image_raw
/camera/depth/image_raw/compressed
/camera/depth/image_raw/compressed/parameter_descriptions
/camera/depth/image_raw/compressed/parameter_updates
/camera/depth/image_raw/compressedDepth
/camera/depth/image_raw/compressedDepth/parameter_descriptions
/camera/depth/image_raw/compressedDepth/parameter_updates
/camera/depth/image_raw/theora
/camera/depth/image_raw/theora/parameter_descriptions
/camera/depth/image_raw/theora/parameter_updates
/camera/depth/image_rect
/camera/depth/image_rect/compressed
/camera/depth/image_rect/compressed/parameter_descriptions
/camera/depth/image_rect/compressed/parameter_updates
/camera/depth/image_rect/compressedDepth
/camera/depth/image_rect/compressedDepth/parameter_descriptions
/camera/depth/image_rect/compressedDepth/parameter_updates
/camera/depth/image_rect/theora
/camera/depth/image_rect/theora/parameter_descriptions
/camera/depth/image_rect/theora/parameter_updates
/camera/depth/image_rect_raw
/camera/depth/image_rect_raw/compressed
/camera/depth/image_rect_raw/compressed/parameter_descriptions
/camera/depth/image_rect_raw/compressed/parameter_updates
/camera/depth/image_rect_raw/compressedDepth
/camera/depth/image_rect_raw/compressedDepth/parameter_descriptions
/camera/depth/image_rect_raw/compressedDepth/parameter_updates
/camera/depth/image_rect_raw/theora
/camera/depth/image_rect_raw/theora/parameter_descriptions
/camera/depth/image_rect_raw/theora/parameter_updates
/camera/depth/points
/camera/depth_rectify_depth/parameter_descriptions
/camera/depth_rectify_depth/parameter_updates
/camera/depth_registered/camera_info
/camera/depth_registered/disparity
/camera/depth_registered/hw_registered/image_rect
/camera/depth_registered/hw_registered/image_rect/compressed
/camera/depth_registered/hw_registered/image_rect/compressed/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect/compressed/parameter_updates
/camera/depth_registered/hw_registered/image_rect/compressedDepth
/camera/depth_registered/hw_registered/image_rect/compressedDepth/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect/compressedDepth/parameter_updates
/camera/depth_registered/hw_registered/image_rect/theora
/camera/depth_registered/hw_registered/image_rect/theora/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect/theora/parameter_updates
/camera/depth_registered/hw_registered/image_rect_raw
/camera/depth_registered/hw_registered/image_rect_raw/compressed
/camera/depth_registered/hw_registered/image_rect_raw/compressed/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect_raw/compressed/parameter_updates
/camera/depth_registered/hw_registered/image_rect_raw/compressedDepth
/camera/depth_registered/hw_registered/image_rect_raw/compressedDepth/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect_raw/compressedDepth/parameter_updates
/camera/depth_registered/hw_registered/image_rect_raw/theora
/camera/depth_registered/hw_registered/image_rect_raw/theora/parameter_descriptions
/camera/depth_registered/hw_registered/image_rect_raw/theora/parameter_updates
/camera/depth_registered/image
/camera/depth_registered/image/compressed
/camera/depth_registered/image/compressed/parameter_descriptions
/camera/depth_registered/image/compressed/parameter_updates
/camera/depth_registered/image/compressedDepth
/camera/depth_registered/image/compressedDepth/parameter_descriptions
/camera/depth_registered/image/compressedDepth/parameter_updates
/camera/depth_registered/image/theora
/camera/depth_registered/image/theora/parameter_descriptions
/camera/depth_registered/image/theora/parameter_updates
/camera/depth_registered/image_raw
/camera/depth_registered/image_raw/compressed
/camera/depth_registered/image_raw/compressed/parameter_descriptions
/camera/depth_registered/image_raw/compressed/parameter_updates
/camera/depth_registered/image_raw/compressedDepth
/camera/depth_registered/image_raw/compressedDepth/parameter_descriptions
/camera/depth_registered/image_raw/compressedDepth/parameter_updates
/camera/depth_registered/image_raw/theora
/camera/depth_registered/image_raw/theora/parameter_descriptions
/camera/depth_registered/image_raw/theora/parameter_updates
/camera/depth_registered/points
/camera/depth_registered/sw_registered/camera_info
/camera/depth_registered/sw_registered/image_rect
/camera/depth_registered/sw_registered/image_rect/compressed
/camera/depth_registered/sw_registered/image_rect/compressed/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect/compressed/parameter_updates
/camera/depth_registered/sw_registered/image_rect/compressedDepth
/camera/depth_registered/sw_registered/image_rect/compressedDepth/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect/compressedDepth/parameter_updates
/camera/depth_registered/sw_registered/image_rect/theora
/camera/depth_registered/sw_registered/image_rect/theora/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect/theora/parameter_updates
/camera/depth_registered/sw_registered/image_rect_raw
/camera/depth_registered/sw_registered/image_rect_raw/compressed
/camera/depth_registered/sw_registered/image_rect_raw/compressed/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect_raw/compressed/parameter_updates
/camera/depth_registered/sw_registered/image_rect_raw/compressedDepth
/camera/depth_registered/sw_registered/image_rect_raw/compressedDepth/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect_raw/compressedDepth/parameter_updates
/camera/depth_registered/sw_registered/image_rect_raw/theora
/camera/depth_registered/sw_registered/image_rect_raw/theora/parameter_descriptions
/camera/depth_registered/sw_registered/image_rect_raw/theora/parameter_updates
/camera/depth_registered_rectify_depth/parameter_descriptions
/camera/depth_registered_rectify_depth/parameter_updates
/camera/driver/parameter_descriptions
/camera/driver/parameter_updates
/camera/ir/camera_info
/camera/ir/image_raw
/camera/ir/image_raw/compressed
/camera/ir/image_raw/compressed/parameter_descriptions
/camera/ir/image_raw/compressed/parameter_updates
/camera/ir/image_raw/compressedDepth
/camera/ir/image_raw/compressedDepth/parameter_descriptions
/camera/ir/image_raw/compressedDepth/parameter_updates
/camera/ir/image_raw/theora
/camera/ir/image_raw/theora/parameter_descriptions
/camera/ir/image_raw/theora/parameter_updates
/camera/ir/image_rect_ir
/camera/ir/image_rect_ir/compressed
/camera/ir/image_rect_ir/compressed/parameter_descriptions
/camera/ir/image_rect_ir/compressed/parameter_updates
/camera/ir/image_rect_ir/compressedDepth
/camera/ir/image_rect_ir/compressedDepth/parameter_descriptions
/camera/ir/image_rect_ir/compressedDepth/parameter_updates
/camera/ir/image_rect_ir/theora
/camera/ir/image_rect_ir/theora/parameter_descriptions
/camera/ir/image_rect_ir/theora/parameter_updates
/camera/projector/camera_info
/camera/rectify_color/parameter_descriptions
/camera/rectify_color/parameter_updates
/camera/rectify_ir/parameter_descriptions
/camera/rectify_ir/parameter_updates
/camera/rectify_mono/parameter_descriptions
/camera/rectify_mono/parameter_updates
/camera/rgb/camera_info
/camera/rgb/image_color
/camera/rgb/image_color/compressed
/camera/rgb/image_color/compressed/parameter_descriptions
/camera/rgb/image_color/compressed/parameter_updates
/camera/rgb/image_color/compressedDepth
/camera/rgb/image_color/compressedDepth/parameter_descriptions
/camera/rgb/image_color/compressedDepth/parameter_updates
/camera/rgb/image_color/theora
/camera/rgb/image_color/theora/parameter_descriptions
/camera/rgb/image_color/theora/parameter_updates
/camera/rgb/image_mono
/camera/rgb/image_mono/compressed
/camera/rgb/image_mono/compressed/parameter_descriptions
/camera/rgb/image_mono/compressed/parameter_updates
/camera/rgb/image_mono/compressedDepth
/camera/rgb/image_mono/compressedDepth/parameter_descriptions
/camera/rgb/image_mono/compressedDepth/parameter_updates
/camera/rgb/image_mono/theora
/camera/rgb/image_mono/theora/parameter_descriptions
/camera/rgb/image_mono/theora/parameter_updates
/camera/rgb/image_raw
/camera/rgb/image_raw/compressed
/camera/rgb/image_raw/compressed/parameter_descriptions
/camera/rgb/image_raw/compressed/parameter_updates
/camera/rgb/image_raw/compressedDepth
/camera/rgb/image_raw/compressedDepth/parameter_descriptions
/camera/rgb/image_raw/compressedDepth/parameter_updates
/camera/rgb/image_raw/theora
/camera/rgb/image_raw/theora/parameter_descriptions
/camera/rgb/image_raw/theora/parameter_updates
/camera/rgb/image_rect_color
/camera/rgb/image_rect_color/compressed
/camera/rgb/image_rect_color/compressed/parameter_descriptions
/camera/rgb/image_rect_color/compressed/parameter_updates
/camera/rgb/image_rect_color/compressedDepth
/camera/rgb/image_rect_color/compressedDepth/parameter_descriptions
/camera/rgb/image_rect_color/compressedDepth/parameter_updates
/camera/rgb/image_rect_color/theora
/camera/rgb/image_rect_color/theora/parameter_descriptions
/camera/rgb/image_rect_color/theora/parameter_updates
/camera/rgb/image_rect_mono
/camera/rgb/image_rect_mono/compressed
/camera/rgb/image_rect_mono/compressed/parameter_descriptions
/camera/rgb/image_rect_mono/compressed/parameter_updates
/camera/rgb/image_rect_mono/compressedDepth
/camera/rgb/image_rect_mono/compressedDepth/parameter_descriptions
/camera/rgb/image_rect_mono/compressedDepth/parameter_updates
/camera/rgb/image_rect_mono/theora
/camera/rgb/image_rect_mono/theora/parameter_descriptions
/camera/rgb/image_rect_mono/theora/parameter_updates
/rosout
/rosout_agg
/tf
/tf_static

I tried flipping the scenario around but I'm still working on getting rgbdslam to install via ARM :/

rgbdslam.launch

<!-- This file shows the most important parameters in their default settings,
     to make them easily available for beginners.

     The openni driver has to be started seperately, e.g. with "roslaunch openni_launch openni.launch" -->
<launch>
  <node pkg="rgbdslam" type="rgbdslam" name="rgbdslam" cwd="node" required="true" output="screen"> 
    <!-- Input data settings-->
    <param name="config/topic_image_mono"              value="/camera/rgb/image_color"/> 
    <param name="config/topic_image_depth"             value="/camera/depth_registered/sw_registered/image_rect_raw"/>
    <param name="config/topic_points"                  value=""/> <!--if empty, poincloud will be reconstructed from image and depth -->

    <!-- These are the default values of some important parameters -->
    <param name="config/feature_extractor_type"        value="ORB"/><!-- also available: SIFT, SIFTGPU, SURF, SURF128 (extended SURF), ORB. -->
    <param name="config/feature_detector_type"         value="ORB"/><!-- also available: SIFT, SURF, GFTT (good features to track), ORB. -->
    <param name="config/detector_grid_resolution"      value="3"/><!-- detect on a 3x3 grid (to spread ORB keypoints and parallelize SIFT and SURF) -->
    <param name="config/max_keypoints"                 value="600"/><!-- Extract no more than this many keypoints -->
    <param name="config/max_matches"                   value="300"/><!-- Keep the best n matches (important for ORB to set lower than max_keypoints) -->

    <param name="config/min_sampled_candidates"        value="4"/><!-- Frame-to-frame comparisons to random frames (big loop closures) -->
    <param name="config/predecessor_candidates"        value="4"/><!-- Frame-to-frame comparisons to sequential frames-->
    <param name="config/neighbor_candidates"           value="4"/><!-- Frame-to-frame comparisons to graph neighbor frames-->
    <param name="config/ransac_iterations"             value="100"/>
    <param name="config/cloud_creation_skip_step"      value="2"/><!-- subsample the images' pixels (in both, width and height), when creating the cloud (and therefore reduce memory consumption) -->

    
    <param name="config/cloud_display_type"            value="POINTS"/><!-- Show pointclouds as points (as opposed to TRIANGLE_STRIP) -->
    <param name="config/pose_relative_to"              value="largest_loop"/><!-- optimize only a subset of the graph: "largest_loop" = Everything from the earliest matched frame to the current one. Use "first" to optimize the full graph, "inaffected" to optimize only the frames that were matched (not those inbetween for loops) -->
    <param name="config/backend_solver"                value="pcg"/><!-- pcg is faster and good for continuous online optimization, cholmod and csparse are better for offline optimization (without good initial guess)-->
    <param name="config/optimizer_skip_step"           value="1"/><!-- optimize only every n-th frame -->
  </node>
</launch>

freenect.launch

https://github.com/ros-drivers/freenect_stack/blob/master/freenect_launch/launch/freenect.launch

<!-- Entry point for using OpenNI devices -->
<launch>

  <!-- "camera" should uniquely identify the device. All topics are pushed down
       into the "camera" namespace, and it is prepended to tf frame ids. -->
  <arg name="camera" default="camera" />
  <arg name="rgb_frame_id"   default="$(arg camera)_rgb_optical_frame" />
  <arg name="depth_frame_id" default="$(arg camera)_depth_optical_frame" />

  <arg name="data_skip" default="0" />

  <!-- device_id can have the following formats:
         "B00367707227042B": Use device with given serial number
         "#1"              : Use first device found
    -->
  <arg name="device_id" default="#1" />

  <!-- By default, calibrations are stored to file://${ROS_HOME}/camera_info/${NAME}.yaml,
       where ${NAME} is of the form "[rgb|depth]_[serial#]", e.g. "depth_B00367707227042B".
       See camera_info_manager docs for calibration URL details. -->
  <arg name="rgb_camera_info_url"   default="" />
  <arg name="depth_camera_info_url" default="" />

  <!-- Use OpenNI's factory-calibrated depth->RGB registration? -->
  <arg name="depth_registration" default="false" />

  <!-- Arguments for remapping all device namespaces -->
  <arg name="rgb"              default="rgb" />
  <arg name="ir"               default="ir" />
  <arg name="depth"            default="depth" />
  <arg name="depth_registered" default="depth_registered" />
  <arg name="projector"        default="projector" />

  <!-- Optionally suppress loading the driver nodelet and/or publishing the default tf
       tree. Useful if you are playing back recorded raw data from a bag, or are
       supplying a more accurate tf tree from calibration. -->
  <arg name="load_driver" default="true" />
  <arg name="publish_tf" default="true" />
  <!-- Processing Modules -->
  <arg name="rgb_processing"                  default="true"/>
  <arg name="ir_processing"                   default="true"/>
  <arg name="depth_processing"                default="true"/>
  <arg name="depth_registered_processing"     default="true"/>
  <arg name="disparity_processing"            default="true"/>
  <arg name="disparity_registered_processing" default="true"/>
  <arg name="hw_registered_processing"        default="true" />
  <arg name="sw_registered_processing"        default="true" />

  <!-- Disable bond topics by default -->
  <arg name="bond" default="false" /> <!-- DEPRECATED, use respawn arg instead -->
  <arg name="respawn" default="$(arg bond)" />

  <!-- Worker threads for the nodelet manager -->
  <arg name="num_worker_threads" default="4" />

  <!-- enable libfreenect debug logging -->
  <arg name="libfreenect_debug" default="false" />

  <!-- enable diagnostics support for freenect_camera -->
  <arg name="enable_rgb_diagnostics" default="false" />
  <arg name="enable_ir_diagnostics" default="false" />
  <arg name="enable_depth_diagnostics" default="false" />
  <arg name="diagnostics_max_frequency" default="30.0" />
  <arg name="diagnostics_min_frequency" default="30.0" />
  <arg name="diagnostics_tolerance" default="0.05" />
  <arg name="diagnostics_window_time" default="5.0" />
 
  <!-- Push down all topics/nodelets into "camera" namespace -->
  <group ns="$(arg camera)">

    <!-- Start nodelet manager in provided namespace -->
    <arg name="manager" value="$(arg camera)_nodelet_manager" />
    <arg name="debug" default="false" /> <!-- Run manager in GDB? -->
    <include file="$(find rgbd_launch)/launch/includes/manager.launch.xml">
      <arg name="name"                value="$(arg manager)" />
      <arg name="debug"               value="$(arg debug)" />
      <arg name="num_worker_threads"  value="$(arg num_worker_threads)" />
    </include>

    <!-- Load driver -->
    <include if="$(arg load_driver)"
         file="$(find freenect_launch)/launch/includes/device.launch.xml">
      <!-- Could really use some syntactic sugar for this -->
      <arg name="manager"                   value="$(arg manager)" />
      <arg name="device_id"                 value="$(arg device_id)" />
      <arg name="rgb_frame_id"              value="$(arg rgb_frame_id)" />
      <arg name="depth_frame_id"            value="$(arg depth_frame_id)" />
      <arg name="rgb_camera_info_url"       value="$(arg rgb_camera_info_url)" />
      <arg name="depth_camera_info_url"     value="$(arg depth_camera_info_url)" />
      <arg name="depth_registration"        value="$(arg depth_registration)" />
      <arg name="data_skip"                 value="$(arg data_skip)" />
      <arg name="rgb"                       value="$(arg rgb)" />
      <arg name="ir"                        value="$(arg ir)" />
      <arg name="depth"                     value="$(arg depth)" />
      <arg name="depth_registered"          value="$(arg depth_registered)" />
      <arg name="projector"                 value="$(arg projector)" />
      <arg name="respawn"                   value="$(arg respawn)" />
      <arg name="libfreenect_debug"         value="$(arg libfreenect_debug)" />
      <arg name="enable_rgb_diagnostics"    value="$(arg enable_rgb_diagnostics)" />
      <arg name="enable_ir_diagnostics"     value="$(arg enable_ir_diagnostics)" />
      <arg name="enable_depth_diagnostics"  value="$(arg enable_depth_diagnostics)" />
      <arg name="diagnostics_max_frequency" value="$(arg diagnostics_max_frequency)" />
      <arg name="diagnostics_min_frequency" value="$(arg diagnostics_min_frequency)" />
      <arg name="diagnostics_tolerance"     value="$(arg diagnostics_tolerance)" />
      <arg name="diagnostics_window_time"   value="$(arg diagnostics_window_time)" />
    </include>
    
    <!-- Load standard constellation of processing nodelets -->
    <include file="$(find rgbd_launch)/launch/includes/processing.launch.xml">
      <arg name="manager"                         value="$(arg manager)" />
      <arg name="rgb"                             value="$(arg rgb)" />
      <arg name="ir"                              value="$(arg ir)" />
      <arg name="depth"                           value="$(arg depth)" />
      <arg name="depth_registered"                value="$(arg depth_registered)" />
      <arg name="projector"                       value="$(arg projector)" />
      <arg name="respawn"                         value="$(arg respawn)" />
      <arg name="rgb_processing"                  value="$(arg rgb_processing)" />
      <arg name="ir_processing"                   value="$(arg ir_processing)" />
      <arg name="depth_processing"                value="$(arg depth_processing)" />
      <arg name="depth_registered_processing"     value="$(arg depth_registered_processing)" />
      <arg name="disparity_processing"            value="$(arg disparity_processing)" />
      <arg name="disparity_registered_processing" value="$(arg disparity_registered_processing)" />
      <arg name="hw_registered_processing"        value="$(arg hw_registered_processing)" />
      <arg name="sw_registered_processing"        value="$(arg sw_registered_processing)" />
    </include>
  
  </group> <!-- camera -->

  <!-- Load reasonable defaults for the relative pose between cameras -->
  <include if="$(arg publish_tf)"
       file="$(find rgbd_launch)/launch/kinect_frames.launch">
    <arg name="camera" value="$(arg camera)" />
  </include>

</launch>

** EDIT ** listing output of rgbdslam startup

//NOTE: the roslaunch server port seems to be random as it changes on every startup
// PID numbers appear to change in a similar fashion.
// rgbdslam only works when my camera is attached to a local computer. outputs of both working and not working rgbdslam are identical citing the notes above.

$ roslaunch rgbdslam rgbdslam.launch 
... logging to /home/jackson/.ros/log/d484d2ce-ffe6-11e5-98dc-00904c0df43e/roslaunch-jackson-MacBookPro-3014.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://192.168.0.2:60654/

SUMMARY
========

PARAMETERS
 * /rgbdslam/config/backend_solver: pcg
 * /rgbdslam/config/cloud_creation_skip_step: 2
 * /rgbdslam/config/cloud_display_type: POINTS
 * /rgbdslam/config/detector_grid_resolution: 3
 * /rgbdslam/config/feature_detector_type: ORB
 * /rgbdslam/config/feature_extractor_type: ORB
 * /rgbdslam/config/max_keypoints: 600
 * /rgbdslam/config/max_matches: 300
 * /rgbdslam/config/min_sampled_candidates: 4
 * /rgbdslam/config/neighbor_candidates: 4
 * /rgbdslam/config/optimizer_skip_step: 1
 * /rgbdslam/config/pose_relative_to: largest_loop
 * /rgbdslam/config/predecessor_candidates: 4
 * /rgbdslam/config/ransac_iterations: 100
 * /rgbdslam/config/topic_image_depth: /camera/depth_reg...
 * /rgbdslam/config/topic_image_mono: /camera/rgb/image...
 * /rgbdslam/config/topic_points: 
 * /rosdistro: indigo
 * /rosversion: 1.11.16

NODES
  /
    rgbdslam (rgbdslam/rgbdslam)

ROS_MASTER_URI=http://192.168.0.2:11311

core service [/rosout] found
process[rgbdslam-1]: started with pid [3032]
Initializing Node...
[ INFO] [1460380290.544636033]: Connected to roscore
[ INFO] [1460380290.654129071]: Using ORB keypoint detector.
[ INFO] [1460380290.654176627]: Using gridded keypoint detector with 3x3 cells, keeping 900 keypoints in total.
[ INFO] [1460380290.654197363]: Using adjusted keypoint detector with 5 maximum iterations, keeping the number of keypoints between 67 and 100
[ INFO] [1460380290.664563695]: Listening to /camera/rgb/image_color and /camera/depth_registered/sw_registered/image_rect_raw
// if rgbdslam is working then this is where data starts pouring out

Originally posted by jacksonkr_ on ROS Answers with karma: 396 on 2016-04-09

Post score: 1


Original comments

Comment by al-dev on 2016-04-09:
Can you post the launch file that you are using for rgbdslam ?

Comment by jacksonkr_ on 2016-04-10:
@al-dev I added rgbdslam.launch to the bottom of my question. There's an easier-to-read version of rgbdslam.launch on github as well.

Comment by al-dev on 2016-04-10:
In the 'remote' case that is not working, can you check that something is published on the topics you specified in the rgbdslam launch file for the color/depth streams, i.e /camera/rgb/image_color and /camera/depth_registered/sw_registered/image_rect_raw? You can use rostopic echo /mytopic

Comment by jacksonkr_ on 2016-04-10:
Both topics spit out HUGE arrays of data eg [0, 23, 123, 93, ... 1, 0, 23, 34]. So big that it would crash the terminal eventually.

Comment by al-dev on 2016-04-11:
Ok, good sign. Try running both rviz and rgbdslam on the laptop, they should not conflict. If you still have something only on rviz, can you post the output of your console when you run roslaunch rgbdslam rgbdslam.launch ? You can also check roswtf and rqt_graph

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

rgbdslam subscribes to sync'ed color and depth images with a message filter. When transmitting via slow networks (includes WLAN) images may be dropped and the filter may be unable to find image pairs with approx. equal timestamps.

You wouldn't see this in rviz, because rviz doesn't do this synchronization.

Solutions:

  • Lower the network load

    • reduce the frame rate of the openni driver
    • reduce the image resolution of the openni drive to qvga and use appropriate settings for rgbdslam (see the qvga launchfile). This will impede the map quality though.
  • Or write a node that runs on the robot, subscribes to synchronized depth and color and relays only every nth pair


Originally posted by Felix Endres with karma: 6468 on 2016-04-11

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by jacksonkr_ on 2016-04-11:
Thanks! I'm having trouble compiling rgbdslam for ARM so qvga-kinect+rgbdslam.launch will have to wait; I ran qvga launch in reverse master/robot and rviz picked up frames faster so I think it will work. I need to research the other two options more as I'm still now to all of this.

Comment by Felix Endres on 2016-04-11:
Split the qvga-....launch into the part that starts the openni driver and sets it to qvga (lines 4-8) and copy it to a launch file on the robot. Use the rest of the original launch file to start rgbdslam on your laptop. If available provide your own halved calibration parameters ("depth_camera_*")

Comment by Felix Endres on 2016-04-11:
As you are using freenect not openni_launch, you need to figure out how to set it to qvga, instead of using the mentioned lines from rgbdslam's launchfile.

Comment by icecreambaby on 2018-04-03:
After wrestling with this problem today, I'd like to add that the depth, color, and camera_info need to have synced timestamps, not just depth and color as the "NoCloudPolicy" message filter operates using all three topics.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.