0
$\begingroup$

Rosanswers logo

I've picked up a used Videre erratic and mounted a kinect and a EEEPC 1215N on it for a poor man's turtlebot while I wait for mine to ship out. I'm a newbie to ROS, and I've only been using it for about a month.

I've been trying to follow this tutorial: http://www.ros.org/wiki/turtlebot_navigation/Tutorials/Build%20a%20map%20with%20SLAM

I initially tried to start with this tutorial and had serious problems once I found it was 2 years out of date. http://www.ros.org/wiki/2dnav_erratic/Tutorials/2d%20Navigation%20on%20an%20Erratic

I can't afford a real lidar unit myself, so I'm trying to use Kinect line-scans for now. I found another answer on how to modify the launch file for pointcloud_to_laserscan to publish a /scan topic:

<launch>
  <!-- kinect and frame ids -->
  <include file="$(find openni_camera)/launch/openni_node.launch"/>

  <!-- openni manager -->
  <node pkg="nodelet" type="nodelet" name="openni_manager" output="screen" respawn="true" args="manager"/>

  <!-- throttling -->
  <node pkg="nodelet" type="nodelet" name="pointcloud_throttle" args="load pointcloud_to_laserscan/CloudThrottle openni_manager">
    <param name="max_rate" value="2"/>
    <remap from="cloud_in" to="/camera/depth/points"/>
    <remap from="cloud_out" to="cloud_throttled"/>
  </node>

  <!-- fake laser -->
  <node pkg="nodelet" type="nodelet" name="kinect_laser" args="load pointcloud_to_laserscan/CloudToScan openni_manager">
    <param name="output_frame_id" value="/openni_depth_frame"/>
    <remap from="cloud" to="cloud_throttled"/>
  </node>
</launch>

I am navigating the robot around with erratic_keyboard_teleop and monitoring it with rviz with a map view that never receives a map, a point cloud view that works, a laser scan view that works, and two image viewers from the depth and rgb of the kinect.

I have map_saver running.

RXGraph running http://files.sllabs.com/files/ros/rxgraph-1.png

As far as I can tell, I have good /odom data, but the problem comes when I run

rosrun gmapping slam_gmapping scan:=scan

EDIT: At first I was trying to run gmapping as above, but now I'm using:

roscore
roslaunch erratic_player erratic_base.launch
roslaunch pointcloud_to_laserscan kinect_lidar.launch
roslaunch microstrain_3dmgx2_imu microstrain_3dmgx2.launch
roslaunch robot_pose_ekf robot_pose_ekf.launch
roslaunch erratic_navigation slam_gmapping.launch
roslaunch erratic_navigation move_base_slam.launch

(This seems to be the same thing as roslaunch turtlebot_navigation gmapping_demo.launch but for the erratic's parameters instead)

When it's running I get the same output, either way:

[ WARN] [1311627824.060790164]: MessageFilter [target=/odom ]: Dropped 100.00% of messages so far. Please turn the [ros.gmapping.message_notifier] rosconsole logger to DEBUG for more information.
[DEBUG] [1311627826.169033381]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=/openni_depth_frame, stamp=1311627823.147122)
[DEBUG] [1311627826.169353004]: MessageFilter [target=/odom ]: Added message in frame /openni_depth_frame at time 1311627826.048, count now 5
[DEBUG] [1311627826.705492297]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=/openni_depth_frame, stamp=1311627823.777645)
[DEBUG] [1311627826.705995564]: MessageFilter [target=/odom ]: Added message in frame /openni_depth_frame at time 1311627826.616, count now 5
[DEBUG] [1311627827.280777392]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=/openni_depth_frame, stamp=1311627824.308159)
[DEBUG] [1311627827.281022133]: MessageFilter [target=/odom ]: Added message in frame /openni_depth_frame at time 1311627827.148, count now 5
[DEBUG] [1311627827.814581308]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=/openni_depth_frame, stamp=1311627824.911825)

This output just repeats continuously, and I can't seem to figure out what the problem is.

EDIT: I've also borrowed a hokuyo URG-04LX from an acquaintance to test with for now. I get the same behavior with it.

[ WARN] [1311714382.221779692]: Message from [/hokuyo_node] has a non-fully-qualified frame_id [laser]. Resolved locally to [/laser].  This is will likely not work in multi-robot systems.  This message will only print once.

[DEBUG] [1311713931.641407108]: MessageFilter [target=/odom ]: Added message in frame laser at time 1311713931.568, count now 5
[DEBUG] [1311713931.740031632]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser, stamp=1311713931.175396)
[DEBUG] [1311713931.740254251]: MessageFilter [target=/odom ]: Added message in frame laser at time 1311713931.667, count now 5
[DEBUG] [1311713931.840993559]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser, stamp=1311713931.267901)
[DEBUG] [1311713931.841396487]: MessageFilter [target=/odom ]: Added message in frame laser at time 1311713931.768, count now 5
[DEBUG] [1311713931.930854085]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser, stamp=1311713931.366395)
[DEBUG] [1311713931.931108580]: MessageFilter [target=/odom ]: Added message in frame laser at time 1311713931.858, count now 5
[DEBUG] [1311713932.038592833]: MessageFilter [target=/odom ]: Removed oldest message because buffer is full, count now 5 (frame_id=laser, stamp=1311713931.467906)

I've been googling like mad and asking help of my ROS acquaintances over Skype, but everyone seems stumped so far.

Can anyone assist me in getting my fake-turtlebot to make me a map of my hallways?


Originally posted by Kamilion on ROS Answers with karma: 11 on 2011-07-25

Post score: 1


Original comments

Comment by Kamilion on 2011-07-25:
I've used the launch file found here: http://answers.ros.org/question/409/2d-slam-with-gmapping-and-openni_kinect and here http://answers.ros.org/question/1563/problem-launching-pointcloud-to-laserscan

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

no activity > 1 month, closing


Originally posted by kwc with karma: 12244 on 2011-09-02

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$
0
$\begingroup$

Rosanswers logo

You need to launch more than gmapping to create a map. please look at the launch files in turtlebot_navigation, specifically gmapping_demo.launch


Originally posted by mmwise with karma: 8372 on 2011-07-25

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by Kamilion on 2011-07-26:
same log message: [DEBUG] [1311716358.432537280]: MessageFilter [target=/odom_combined ]: Added message in frame laser at time 1311716358.359, count now 5 [DEBUG] [1311716358.529903011]: MessageFilter [target=/odom_combined ]: Removed oldest message because buffer is full, count now 5 (frame_id=lase

Comment by mmwise on 2011-07-26:
when using robot_pose_ekf it outputs a frame odom_combined and you need to set the odom frame to odom_combined in gmapping

Comment by Kamilion on 2011-07-26:
Okay, I've updated the post to provide more data. I'm using the erratic_navigation packages now, since after study they seem to be almost the same move_base and gmapping launch files as turtlebot_navigation.

Comment by tfoote on 2011-07-25:
you need either gmapping or amcl, both require robot_pose_ekf.

Comment by mmwise on 2011-07-25:
can you open up rxconsole and see anymore info from gmapping.. another thing that you can try is running the slam gmapping for the erratic that is in the ua-ros-pkg: http://www.ros.org/wiki/erratic_navigation

Comment by Kamilion on 2011-07-25:
The comment for the main launch say but i was told I needed either gmapping or robot_pose_ekf running, not both. Is this incorrect?

Comment by Kamilion on 2011-07-25:
Okay, I've looked in there, and it references two other launch files; one of them for the turtlebot base and the other for a single slam_gmapping node. the move_base stuff seems to be turtlebot specific and it looks like the erratic_player does that stuff with /cmd_vel

$\endgroup$

Your Answer

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