Ask Your Question

Zayin's profile - activity

2020-12-12 12:12:54 -0500 received badge  Nice Question (source)
2020-06-10 09:49:15 -0500 received badge  Nice Question (source)
2019-06-21 07:38:37 -0500 received badge  Famous Question (source)
2018-06-07 09:29:48 -0500 received badge  Nice Question (source)
2018-04-16 19:56:28 -0500 received badge  Self-Learner (source)
2017-11-18 09:04:55 -0500 received badge  Nice Question (source)
2016-11-08 23:28:39 -0500 received badge  Nice Answer (source)
2016-05-03 16:09:08 -0500 received badge  Notable Question (source)
2016-01-01 05:47:42 -0500 received badge  Popular Question (source)
2016-01-01 05:47:42 -0500 received badge  Notable Question (source)
2015-11-28 16:41:42 -0500 marked best answer Turtlebot_node Sensor State on Stage

I want to simulate a Turtlebot on Stage, more precisely its bumps_wheeldrops parameter from the TurtlebotSensorState message. How can I set it up?

Here is my current launch file:

  <master auto="start"/>
  <param name="/use_sim_time" value="true"/>  
  <node pkg="stage" type="stageros" name="stage" args="$(find stage)/world/" respawn="false" output="screen"/>

  <node pkg="diagnostic_aggregator" type="aggregator_node" name="diagnostic_aggregator" >
    <rosparam command="load" file="$(find turtlebot_bringup)/config/diagnostics.yaml" />

  <node pkg="robot_state_publisher" type="state_publisher" name="robot_state_publisher" output="screen">
    <param name="publish_frequency" type="double" value="30.0" />

  <!-- The odometry estimator -->
  <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="publish_tf" value="true"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="true"/>

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

  <!-- Fake Laser -->
  <node pkg="nodelet" type="nodelet" name="kinect_laser" args="load pointcloud_to_laserscan/CloudToScan openni_manager" respawn="true">
    <param name="output_frame_id" value="/camera_depth_frame"/>
    <!-- heights are in the (optical?) frame of the kinect -->
    <param name="min_height" value="-0.15"/>
    <param name="max_height" value="0.15"/>
    <remap from="cloud" to="/cloud_throttled"/>

  <!-- Fake Laser (narrow one, for localization -->
  <node pkg="nodelet" type="nodelet" name="kinect_laser_narrow" args="load pointcloud_to_laserscan/CloudToScan openni_manager" respawn="true">
    <param name="output_frame_id" value="/camera_depth_frame"/>
    <!-- heights are in the (optical?) frame of the kinect -->
    <param name="min_height" value="-0.025"/>
    <param name="max_height" value="0.025"/>
    <remap from="cloud" to="/cloud_throttled"/>
    <remap from="scan" to="/narrow_scan"/>

However, nothing is being published on turtlebot_node/sensor_state and it outputs the following error messages:

Covariance specified for measurement on topic wheelodom is zero
filter time older than odom message buffer
2015-10-26 13:05:49 -0500 received badge  Notable Question (source)
2015-10-26 13:05:49 -0500 received badge  Popular Question (source)
2015-06-22 01:03:44 -0500 marked best answer Compare Gmapping map with Ground Truth

I need to find a way of quantitatively comparing a map generated by SLAM_gmapping with the original map (.pgm) used for the stage simulation. I would use this to compare the accuracy of different mapping techniques. I have considered using an image comparison tool (I tried GraphicsMagick), but this comes with some problems. First, the scale of the saved map (rosrun map_server map_saver) is different from the one of the original map. Secondly, the positions of both maps are different. Hence, I would need to superimpose both images exactly using Gimp before comparing them, which is far from precise. Would anyone have any suggestions as to how to achieve my goal? I would either need a reliable way of rescaling the slam map or an independent algorithm to compare them... I have never studied image processing, so this is no easy task for me!

2015-05-29 13:23:57 -0500 marked best answer Navigating using RGBDSLAM

Has anyone used RGBDSLAM for navigation and/or obstacle avoidance? If yes, are there any available packages? I was thinking of combining RGBDSLAM with the explore package, but I might not have enough experience yet to program it myself.

2014-11-24 06:55:16 -0500 received badge  Famous Question (source)
2014-09-05 06:18:33 -0500 received badge  Self-Learner (source)
2014-06-24 19:08:48 -0500 received badge  Taxonomist
2014-06-03 16:25:19 -0500 received badge  Notable Question (source)
2014-05-05 09:02:26 -0500 received badge  Nice Answer (source)
2014-04-20 13:42:58 -0500 marked best answer Fuerte Explore package in a real environment problem (again)

I created my own Explore package to be used in the real world. My package is basically identical to Explore_stage ( with a few modifications to the XML, yaml and launch files, and altered to use gmapping as its map. Moreover, I have changed explore.cpp according to the 2 TODO comments. My modified package can be found here:

Explore works well on Stage (I receive many warnings, but it works). In the real world, the robot stops moving after exploring for a small while; it wanders across half of the room for some time (ranging from 10 seconds to 5 minutes), then it stops. If I wait for several minutes, it sometimes restarts moving for a few seconds, then stops again. I receive many of the following warning in the terminal: [ WARN] [1370547349.514586524]: Entropy has not been updated. Loop closure opportunities may be ignored. I don't know if both problems are related.

Any ideas?

2014-04-20 13:41:52 -0500 marked best answer Explore package on Gazebo & Turtlebot

I have managed to use the explore package (frontier based exploration) with stage without problem. Now, I would like to use it with Gazebo and in the real world. I am using robots similar to the Turtlebot (Create base + IMU + Asus camera). I have tried modifying the explore/stage launch file (see below), but it didn't work (I don't see anything in the Rviz map, and the robot doesn't move). How can I fix this?

[Edit] Here is the Wiki for the explore package:

[Edit 2] Basically, this url shows what I want to do, but with the PR2 instead of the Turtlebot. I tried following his steps, but I still get no movement in Gazebo and no map in Rviz.

[Edit 3] Here is the original explore_stage launch file and its rostopic list output:

  <master auto="start"/>
  <param name="/use_sim_time" value="true"/>
  <node pkg="stage" type="stageros" name="stage" args="$(find stage)/world/" respawn="false" output="screen"/>
  <node pkg="gmapping" type="slam_gmapping" name="gmapping" output="screen">
    <remap from="scan" to="base_scan" />
    <param name="inverted_laser" value="false" />
    <param name="maxUrange" value="30.0" />
    <param name="particles" value="30" />
    <param name="delta" value="0.10" />
    <param name="xmin" value="-15.0" />
    <param name="xmax" value="15.0" />
    <param name="ymin" value="-15.0" />
    <param name="ymax" value="15.0" />
    <param name="angularUpdate" value="0.5" />
    <param name="linearUpdate" value="1.0" />
    <param name="map_update_interval" value="1.0" />
    <param name="resampleThreshold" value="0.3" />
    <param name="llsamplerange" value ="0.05" />
    <param name="llsamplestep" value ="0.05" />
    <param name="lasamplerange" value ="0.05" />
    <param name="lasamplestep" value ="0.05" />
  <include file="$(find explore_stage)/move.xml" />
  <include file="$(find explore_stage)/explore_slam.xml" />



[Edit 4] I modified the launch file and made some progress. Now, I can accurately see the gmapping map in Rviz. However, there are two issues. First, Rviz displays the explore map, but it's blank (ignore the camera height ... (more)

2014-04-20 13:40:52 -0500 marked best answer Octomap visualization doesn't display anything - rgbdslam

I have the same problem as described here: However, when I execute rostopic echo /rgbdslam/batch_clouds, a long list of integers is outputted so I assume this is working. I don't understand why octomap viewer only contains an empty blue cube when I try to load the octomap I saved. How can I fix this?

Edit: I have attached a screenshot of the rxgraph: Rxtgraph

By the way, I get this output when saving the octomap, but I don't see /octomap_binary in the graph. Is that the issue?

rosrun octomap_server octomap_saver
[ INFO] [1369321237.790118097]: Requesting the map from /octomap_binary...
[ INFO] [1369321237.809273887]: Map received, saving to

Edit 2: I just found this topic: I downloaded Octomap using apt-get install; do I need another version?

Edit 3: This is the output I get from launching openni:


 * /camera/depth/rectify_depth/interpolation
 * /camera/depth_registered/rectify_depth/interpolation
 * /camera/disparity_depth/max_range
 * /camera/disparity_depth/min_range
 * /camera/disparity_depth_registered/max_range
 * /camera/disparity_depth_registered/min_range
 * /camera/driver/depth_camera_info_url
 * /camera/driver/depth_frame_id
 * /camera/driver/depth_registration
 * /camera/driver/device_id
 * /camera/driver/rgb_camera_info_url
 * /camera/driver/rgb_frame_id
 * /rosdistro
 * /rosversion

    metric (nodelet/nodelet)
    metric_rect (nodelet/nodelet)
    points (nodelet/nodelet)
    rectify_depth (nodelet/nodelet)
    debayer (nodelet/nodelet)
    rectify_color (nodelet/nodelet)
    rectify_mono (nodelet/nodelet)
    camera_base_link (tf/static_transform_publisher)
    camera_base_link1 (tf/static_transform_publisher)
    camera_base_link2 (tf/static_transform_publisher)
    camera_base_link3 (tf/static_transform_publisher)
    camera_nodelet_manager (nodelet/nodelet)
    disparity_depth (nodelet/nodelet)
    disparity_depth_registered (nodelet/nodelet)
    driver (nodelet/nodelet)
    points_xyzrgb_depth_rgb (nodelet/nodelet)
    register_depth_rgb (nodelet/nodelet)
    rectify_ir (nodelet/nodelet)
    metric (nodelet/nodelet)
    metric_rect (nodelet/nodelet)
    rectify_depth (nodelet/nodelet)

core service [/rosout] found
process[camera_nodelet_manager-1]: started with pid [20137]
process[camera/driver-2]: started with pid [20138]
process[camera/rgb/debayer-3]: started with pid [20166]
[ INFO] [1369429911.881946647]: Initializing nodelet with 4 worker threads.
process[camera/rgb/rectify_mono-4]: started with pid [20203]
process[camera/rgb/rectify_color-5]: started with pid [20225]
process[camera/ir/rectify_ir-6]: started with pid [20280]
process[camera/depth/rectify_depth-7]: started with pid [20355]
process[camera/depth/metric_rect-8]: started with pid [20425]
process[camera/depth/metric-9]: started with pid [20459]
process[camera/depth/points-10]: started with pid [20515]
process[camera/register_depth_rgb-11]: started with pid [20541]
process[camera/depth_registered/rectify_depth-12]: started with pid [20561]
process[camera/depth_registered/metric_rect-13]: started with pid [20621]
process[camera/depth_registered/metric-14]: started with pid [20647]
process[camera/points_xyzrgb_depth_rgb-15]: started with pid [20667]
process[camera/disparity_depth-16]: started with pid [20728]
process[camera/disparity_depth_registered-17]: started with pid [20757]
process[camera_base_link-18]: started with pid [20815]
process[camera_base_link1-19]: started with pid [20834]
process[camera_base_link2-20]: started with pid [20852]
process[camera_base_link3-21]: started with pid [20907]
[ERROR] [1369429921.870903205]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/compressedDepth/set_parameters]
[ERROR] [1369429921.918984524]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/compressed/set_parameters]
[ERROR] [1369429921.962493901]: Tried to advertise a service that is already advertised in this node [/camera/depth_registered/image_rect_raw/theora/set_parameters]

However, the GUI is listening ... (more)

2014-04-20 13:39:57 -0500 marked best answer Problem with turtlebot bringup minimal on Fuerte

I'm following the Turtlebot tutorial I am attempting to run the command:

roslaunch turtlebot_bringup minimal.launch

However, I get the following error:

Traceback (most recent call last):
  File "/opt/ros/fuerte/stacks/xacro/", line 35, in <module>
  File "/opt/ros/fuerte/stacks/xacro/src/", line 554, in main
    process_includes(doc, os.path.dirname(sys.argv[1]))
  File "/opt/ros/fuerte/stacks/xacro/src/", line 193, in process_includes
    filename = eval_text(elt.getAttribute('filename'), {})
  File "/opt/ros/fuerte/stacks/xacro/src/", line 409, in eval_text
  File "/opt/ros/fuerte/stacks/xacro/src/", line 397, in handle_extension
    return eval_extension("$(%s)" % s)
  File "/opt/ros/fuerte/stacks/xacro/src/", line 53, in eval_extension
    return substitution_args.resolve_args(str, resolve_anon=False)
  File "/opt/ros/fuerte/lib/python2.7/dist-packages/roslaunch/", line 203, in resolve_args
    resolved = _find(resolved, a, args, context)
  File "/opt/ros/fuerte/lib/python2.7/dist-packages/roslaunch/", line 139, in _find
    return resolved[0:idx-len(arg)] + r.get_path(args[0]) + resolved[idx:]
  File "/usr/lib/pymodules/python2.7/rospkg/", line 164, in get_path
    raise ResourceNotFound(name, ros_paths=self._ros_paths)
rospkg.common.ResourceNotFound: create_description
ROS path [0]=/opt/ros/fuerte/share/ros
ROS path [1]=/opt/ros/fuerte/share
ROS path [2]=/opt/ros/fuerte/stacks
ROS path [3]=/home/bennie/fuerte_workspace
while processing /home/bennie/fuerte_workspace/turtlebot-master/turtlebot_bringup/launch/includes/_robot.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [/opt/ros/fuerte/stacks/xacro/ '/home/bennie/fuerte_workspace/turtlebot-master/turtlebot_description/robots/create_circles_asus_xtion_pro.urdf.xacro'] returned with code [1]. 

Param xml is <param command="$(arg urdf_file)" name="robot_description"/>

Note that I am simply using a Create base and not an actual Turtlebot. The thing is that I was able to run the above command without problem before I upgrated Ubuntu (12.04) with:

sudo apt-get update
sudo apt-get dist-upgrade

I tried the following ( to fix my problem, but it didn't work. Any suggestions? Thanks!

2014-04-20 13:39:36 -0500 marked best answer Rosmake openni_camera on fuerte fails

I'm trying to make the openni_camera-fuerte-devel package, but it fails. Here is the output:

[ rosmake ] rosmake starting...                                                 
[ rosmake ] Packages requested are: ['openni_camera-fuerte-devel']              
[ rosmake ] Logging to directory /home/2010/bleona4/.ros/rosmake/rosmake_output-20130514-105639
[ rosmake ] Expanded args ['openni_camera-fuerte-devel'] to:
[rosmake-0] Starting >>> roslang [ make ]                                       
[rosmake-1] Starting >>> rosservice [ make ]                                    
[rosmake-2] Starting >>> rosbuild [ make ]                                      
[rosmake-1] Finished <<< rosservice  No Makefile in package rosservice          
[rosmake-0] Finished <<< roslang  No Makefile in package roslang                
[rosmake-3] Starting >>> roslib [ make ]                                        
[rosmake-1] Starting >>> roscpp [ make ]                                        
[rosmake-0] Starting >>> rospy [ make ]                                         
[rosmake-2] Finished <<< rosbuild  No Makefile in package rosbuild              
[rosmake-2] Starting >>> rosconsole [ make ]                                    
[rosmake-0] Finished <<< rospy  No Makefile in package rospy                    
[rosmake-3] Finished <<< roslib  No Makefile in package roslib                  
[rosmake-1] Finished <<< roscpp  No Makefile in package roscpp                  
[rosmake-2] Finished <<< rosconsole  No Makefile in package rosconsole          
[rosmake-2] Starting >>> smclib [ make ]                                        
[rosmake-0] Starting >>> message_filters [ make ]                               
[rosmake-1] Starting >>> dynamic_reconfigure [ make ]                           
[rosmake-1] Finished <<< dynamic_reconfigure ROS_NOBUILD in package dynamic_reconfigure
[rosmake-1] Starting >>> bond [ make ]                                          
[rosmake-3] Starting >>> pluginlib [ make ]                                     
[rosmake-2] Finished <<< smclib ROS_NOBUILD in package smclib                   
[rosmake-0] Finished <<< message_filters  No Makefile in package message_filters
[rosmake-0] Starting >>> std_msgs [ make ]                                      
[rosmake-2] Starting >>> geometry_msgs [ make ]                                 
[rosmake-1] Finished <<< bond ROS_NOBUILD in package bond                       
[rosmake-1] Starting >>> bondcpp [ make ]                                       
[rosmake-2] Finished <<< geometry_msgs  No Makefile in package geometry_msgs    
[rosmake-2] Starting >>> sensor_msgs [ make ]                                   
[rosmake-3] Finished <<< pluginlib ROS_NOBUILD in package pluginlib             
[rosmake-3] Starting >>> rostest [ make ]                                       
[rosmake-0] Finished <<< std_msgs  No Makefile in package std_msgs              
[rosmake-1] Finished <<< bondcpp ROS_NOBUILD in package bondcpp                 
[rosmake-1] Starting >>> nodelet [ make ]                                       
[rosmake-0] Starting >>> common_rosdeps [ make ]                                
[rosmake-1] Finished <<< nodelet ROS_NOBUILD in package nodelet                 
[rosmake-1] Starting >>> nodelet_topic_tools [ make ]                           
[rosmake-2] Finished <<< sensor_msgs  No Makefile in package sensor_msgs        
[rosmake-3] Finished <<< rostest  No Makefile in package rostest                
[rosmake-1] Finished <<< nodelet_topic_tools ROS_NOBUILD in package nodelet_topic_tools
[rosmake-1] Starting >>> image_transport [ make ]                               
[rosmake-3] Starting >>> test_nodelet [ make ]                                  
[rosmake-1] Finished <<< image_transport ROS_NOBUILD in package image_transport 
[rosmake-1] Starting >>> polled_camera [ make ]                                 
[rosmake-1] Finished <<< polled_camera ROS_NOBUILD in package polled_camera     
[rosmake-3] Finished <<< test_nodelet ROS_NOBUILD in package test_nodelet       
[rosmake-0] Finished <<< common_rosdeps ROS_NOBUILD in package common_rosdeps   
[rosmake-0] Starting >>> camera_calibration_parsers [ make ]                    
[rosmake-0] Finished <<< camera_calibration_parsers ROS_NOBUILD in package camera_calibration_parsers
[rosmake-0] Starting >>> camera_info_manager [ make ]                           
[rosmake-0] Finished <<< camera_info_manager ROS_NOBUILD in package camera_info_manager
[rosmake-0] Starting >>> openni_camera-fuerte-devel [ make ]                    
[ rosmake ] Last 40 linesenni_camera-fuerte-devel... [ 1 Active 25/26 Complete ]
  [rosbuild] Building package openni_camera-fuerte-devel
  [rosbuild] Including /opt/ros/fuerte/share/rospy/rosbuild/rospy.cmake
  [rosbuild] Including /opt/ros/fuerte/share/roscpp/rosbuild/roscpp.cmake
  [rosbuild] Including /opt/ros/fuerte/share/roslisp/rosbuild/roslisp.cmake
  -- checking for module 'libopenni'
  --   package 'libopenni' not found
  MSG: gencfg_cpp on:OpenNI.cfg
  Finding dependencies for /home/2010/bleona4/fuerte_workspace/openni_camera-fuerte-devel/cfg/OpenNI.cfg
  load_module did not return. Unable to determine dependencies for file listed above.
  Traceback (most recent call last):
    File "/opt/ros/fuerte/stacks/dynamic_reconfigure/cmake/gendeps", line 64, in <module>
      imp.load_module("__main__", f, srcfile, ('.cfg', 'U', 1))
    File "/home/2010/bleona4/fuerte_workspace/openni_camera-fuerte-devel/cfg/OpenNI.cfg", line 4, in <module>
      import roslib; roslib.load_manifest(PACKAGE)
    File "/opt/ros/fuerte/lib/python2.7/dist-packages/roslib/", line 62, in load_manifest
      sys.path = _generate_python_path(package_name, _rospack) + sys.path
    File "/opt/ros/fuerte/lib/python2.7/dist-packages/roslib/", line 93, in _generate_python_path
      m = rospack.get_manifest(pkg)
    File "/usr/lib/pymodules/python2.7/rospkg ...
2014-04-20 13:39:14 -0500 marked best answer Stage controller tutorial on Groovy

I'm trying to follow the stage controller tutorial here:

However, I run into the following errors:

err: Model type laser not found in model typetable (/tmp/buildd/ros-groovy-stage-1.6.7/debian/ros-groovy-stage/opt/ros/groovy/stacks/stage/build/stage/libstage/ CreateModel)

err: Unknown model type laser in world file. (/tmp/buildd/ros-groovy-stage-1.6.7/debian/ros-groovy-stage/opt/ros/groovy/stacks/stage/build/stage/libstage/ CreateModel)

I replaced laser with ranger in and got the following warnings:

warn: lookup of model name roomba.ranger:1: no matching name (/tmp/buildd/ros-groovy-stage-1.6.7/debian/ros-groovy-stage/opt/ros/groovy/stacks/stage/build/stage/libstage/ GetModel)

warn: Model roomba.ranger:1 not found (/tmp/buildd/ros-groovy-stage-1.6.7/debian/ros-groovy-stage/opt/ros/groovy/stacks/stage/build/stage/libstage/ GetChild)
Segmentation fault (core dumped)

Now I read this topic,, but the solutions are for fuerte. I tried them anyway, but it doesn't work. Is there a way to fix this? Or is there another similar tutorial that I could follow? I need to simulate a navigating robot (I will use an icreate), and eventually implement SLAM.

2014-04-20 13:39:12 -0500 marked best answer ROS_PACKAGE_PATH environment


I'm trying to set my ROS_PACKAGE_PATH variable permanently. I appended the following line to the etc/environment file: ROS_PACKAGE_PATH="/home/zayin/catkin_ws/src:/opt/ros/groovy/share:/opt/ros/groovy/stacks". Then, I logged out and back in. However, when I type echo $ROS_PACKAGE_PATH in the terminal, I get /opt/ros/groovy/share:/opt/ros/groovy/stacks, which is the initial setting. What have I forgotten to do? Thanks!

2014-04-20 06:55:32 -0500 marked best answer Turtlebot sensor_state all 0s with Gazebo on Fuerte

I am trying to access the bumps wheeldrops sensor from the Turtlebot sensor_state topic. However, the bump sensor is never activated. In fact, if I execute rostopic echo /turtlebot_node/sensor_state, all the sensor_state values are permanently set to 0. In addition, I noticed that the /odom Twist parameter remains 0 even when the robot is moving. Here is my launch file:

    <arg name="use_sim_time" default="true"/>
    <arg name="gui" default="true"/>

    <!-- start gazebo with an empty plane -->
    <param name="/use_sim_time" value="true" />

    <node name="gazebo" pkg="gazebo" type="gazebo" args="-u $(find turtlebot_gazebo)/worlds/" respawn="false" output="screen"/>

    <include file="$(find turtlebot_gazebo)/launch/robot.launch"/>

    <!-- start gui -->
    <group if="$(arg gui)">
        <node name="gazebo_gui" pkg="gazebo" type="gui" respawn="false" output="screen"/>


And here is the simple program that is running as a node:

#include <ros/ros.h>
#include <turtlebot_node/TurtlebotSensorState.h>
#include <geometry_msgs/Twist.h>
#include <ros/rate.h>
#include <iostream>
#include <stdio.h>                        

using namespace std;    
uint8_t bumper;

void bumperCallback(const turtlebot_node::TurtlebotSensorState::ConstPtr& msg);

int main (int argc, char** argv){       

    ros::Time start, end;
    ros::init(argc, argv, "bumper");    
    ros::NodeHandle nodeH;  
    ros::Rate loop_rate(10); //10 Hz.
    geometry_msgs::Twist twist;

    //Bumper subscriber.
    ros::Subscriber bumperSub = nodeH.subscribe<turtlebot_node::TurtlebotSensorState>("/turtlebot_node/sensor_state", 1000, bumperCallback);
    ros::Publisher movingPub = nodeH.advertise<geometry_msgs::Twist>("cmd_vel", 1000);

    //Twist set to navigate forward.
    double forwardSpeed = 0.15;
    twist.linear.x = forwardSpeed; 
    twist.linear.y = 0;
    twist.linear.z = 0;
    twist.angular.x = 0; 
    twist.angular.y = 0; 
    twist.angular.z = 0;

    start = ros::Time::now(); //Time when the robot starts moving.
        if(bumper != 0){
            end = ros::Time::now(); //Time when robot bumped into a wall.
            ROS_INFO("BOOM OUCH");

        else{ //Go forward until the robot bumps into a wall.
            ROS_INFO("Going forward");      

    return 0;

//Fetch the sensor state containing the bumper state.
void bumperCallback(const turtlebot_node::TurtlebotSensorState::ConstPtr& msg){

    bumper = msg->bumps_wheeldrops;
    ROS_INFO("Bumper is %d .", bumper);     

I verified that Gazebo is indeed publishing on "/turtlebot_node/sensor_state" and that my own node is subscribed to it. How can I solve this problem? I've researched similar topics, but I don't see anything wrong with my files based on these.

Note that the following warning is being reported by Gazebo, but I think it's irrelevant:

Warning [] ranges not constructed yet (zero sized)

[Edit] I just noticed these additional errors. I had not seen them before because the RaySensor warning is being displayed thousands of times. Gazebo seems to be running fine, though...

Warning [] Gazebo SDF has no gazebo element
On July 1st, 2012, this formate will no longer by supported
Convert your files using the gzsdf command line tool
You have been warned!

Error [] No Opaque set
[ INFO] [1375303568.841199057]: imu plugin missing <serviceName>, defaults to /default_imu
[ INFO] [1375303568.842760080]: imu plugin missing <xyzOffset>, defaults to 0s
[ INFO] [1375303568 ...
2014-04-20 06:55:00 -0500 marked best answer Comparing two Occupancy Grids

I am attempting to find a way of comparing two stage occupancy grids: the first one is generated by slam gmapping (published on the "map" topic) and the second comes from the rasterization of the stage floor model (myModel.Rasterize(myRasterArray, this->width, this->height, cellwidth, cellheight) - see this page I managed to access both of these grids, and I generated both grids with the same height, width and resolution. Now, I am wondering if both grids possess the same coordinates; for instance, would comparing the cells at position (1,2) correspond to the same cell on both maps? If not, is there a way of superimposing both grids?

[Edit] I printed the occupancy grids obtained, and the two aren't even oriented in the same way (see picture here #1 is the slam map, #2 is the map extracted from the Stage model, and the image to the right is the bitmap used to build the Stage map (yes, a smiley face!). Note that the robot is wandering inside the white area, which explains why image #1 is just the inside of the smiley face. All in all, I need to find a way of aligning the grids... Please help?

[Edit2] I'm attempting to use the debug option of mapstitch which is supposed to "save the current_stitch.pgm and current_map.pgm, i.e. the stitched maps and the current map as seen on /map.", but there is nothing being outputted. Is this a bug? Here's my launch file:

  <master auto="start"/>
  <param name="/use_sim_time" value="true"/>  
  <node pkg="mapstitch" type="ros_mapstitch" name="ros_mapstitch">    
    <param name="debug" value ="true" />
2014-04-20 06:54:56 -0500 marked best answer Callback with "this"

I'm trying to call a callback function with a "this" pointer in the following way:

ros::Subscriber sub = node.subscribe("map_metadata", 1, &Obstacle::metaDataCallback, this);

The Callback function is:

//Get the occupancy grid metadata.
void Obstacle::metaDataCallback(const nav_msgs::MapMetaData::ConstPtr& msg) {       
        this->width = msg->width;
        this->height = msg->height;
        this->resolution = msg->resolution;

When I try to print the width, height and resolution of "this" after the callback has returned, the values are always 0 (as when initialized). However, I know they should be 288, 288 and 0.1 respectively. Why aren't the parameters properly stored in "this"? How can I make it so?