ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

enthusiast-robotics's profile - activity

2017-05-01 09:17:57 -0500 received badge  Famous Question (source)
2017-04-11 20:22:24 -0500 answered a question ROS Navigation. Global Costmap clears obstacles behind robot.

Dear Matlabbe,

Thank you for your answer! I was able to fix it by setting:

<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap">
    <param name="map_negative_poses_ignored" type="bool" value="true"/>
    (...)
</node>

This way, the obstacles behind the robot no longer disappear (Ubuntu 16.04, ROS Kinetic, Rtabmap compiled from Source Feb 2017).

Sadly, the "better fix" with:

<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap">
    <param name="flip_scan" type="bool" value="true"/>
    (...)
</node>

Did not work. Do you have any idea why?

Thanks!

2017-04-10 03:37:22 -0500 received badge  Student (source)
2017-04-10 02:56:36 -0500 received badge  Notable Question (source)
2017-04-07 13:09:01 -0500 received badge  Enthusiast
2017-04-06 11:05:12 -0500 commented question ROS Navigation. Global Costmap clears obstacles behind robot.

Also worth noting: without the obstacle layer added on the first EDIT, NULL laser scan topic values would clear any obstacles. E.g., an obstacle is added, costmap shows, I block the camera with my hand (without moving the robot) causing the topic to be null, and the costmap would clear the obstacle.

2017-04-06 10:55:53 -0500 commented question ROS Navigation. Global Costmap clears obstacles behind robot.

I will check next week by trying the flip_scan parameter set to true!

2017-04-06 10:30:18 -0500 commented question ROS Navigation. Global Costmap clears obstacles behind robot.

It may be worth noting that this happens during localization mode. When I just want to navigate the map, and create new obstacles as I navigate a known map.

2017-04-06 10:28:32 -0500 commented question ROS Navigation. Global Costmap clears obstacles behind robot.

Except that obstacles disappear when the robot is facing the opposite way from the obstacle. The screenshot would be similar to my previous [fixed] question here: http://official-rtab-map-forum.67519....

2017-04-06 10:26:05 -0500 commented question ROS Navigation. Global Costmap clears obstacles behind robot.

Dear matlabbe,

I am using Ubuntu 16.04 with ros kinetic. Rtabmap (and rtabmap ros) was compiled from source from the github code. Unfortunately, I will not have access to screenshots until next week. It looks like a perfectly normal map (no weird arc behind like in the link).

2017-04-06 08:07:43 -0500 received badge  Popular Question (source)
2017-04-06 01:22:56 -0500 received badge  Associate Editor (source)
2017-04-05 23:59:46 -0500 received badge  Scholar (source)
2017-04-05 23:58:30 -0500 answered a question ROS Navigation. Global Costmap clears obstacles behind robot.

So the problem was that I had not added the obstacle layer definition in the global_costmap_params.yaml. I changed it to this and it is now partly working:

global_costmap:
   global_frame: /map
   robot_base_frame: /base_footprint
   update_frequency: 1.0
   publish_frequency: 0.5
   static_map: true
   transform_tolerance: 0.5
   plugins:
     - {name: static_layer,            type: "rtabmap_ros::StaticLayer"}
     - {name: obstacle_layer,          type: "costmap_2d::VoxelLayer"}
     - {name: inflation_layer,         type: "costmap_2d::InflationLayer"}
   obstacle_layer:
      observation_sources: base_scan
      base_scan: {data_type: LaserScan, sensor_frame: /camera_depth_frame, clearing: true, marking: true, topic: /scan}

This prevents the costmap from clearing with NULL values. However, when the robot rotates 180 degrees, the obstacles behind also clear. Rotations under 90 degrees do not cause the obstacles to clear. Is there any way around this?

Here is the strangest thing. If I cover the sensor with my hand (causing NULL values), then rotating the robot 180 degrees does not clear the costmap...

2017-04-05 23:12:37 -0500 asked a question ROS Navigation. Global Costmap clears obstacles behind robot.

Hello!

So I am starting out in ROS 2D navigation (with RTABMap), and I have managed to create a database, saving it, and then have the turtlebot navigate on it (following the RTABMap navigation demo). I am using an Astra camera (following the 3dsensor.launch with the Astra SDK), and using the depthimage_to_laserscan to produce a scan topic.

Now, when I add a new obstacle in front of the camera, the global costmap updates and shows the area as an obstacle, wherever I place them, this is working fine. The problem is, that when I rotate the robot and it can no longer see the obstacle, the global costmap immediately updates and clears the obstacle from the map.

I have tried reading the navigation stack documentation, and I thought that raytracing only clears obstacles if the laserscanner sees that there's an unblocked view on where the obstacle used to be. It seems that it is just clearing any obstacle that is no longer in the laser scanner field of view.

I also tried going through the forum, but all the questions I could find were referring to actually clearing the obstacle (while my problem is that they are clearing when they shouldn't). Seems that the problem for most people is that the obstacles do not clear.

The problem I am having is:

  1. The global costmap clears any obstacle that it cannot see, even if the obstacle is outside of the field of view of the laser scanner.

Could someone provide me with some pointers to fix this? I tried changing the costmap_params (common, global), but the obstacles keep clearing.

This is my costmap_common_params.yaml

max_obstacle_height: 0.60  # assume something like an arm is mounted on top of the robot

# Obstacle Cost Shaping (http://wiki.ros.org/costmap_2d/hydro/inflation)
robot_radius: 0.20  # distance a circular robot should be clear of the obstacle (kobuki: 0.18)
# footprint: [[x0, y0], [x1, y1], ... [xn, yn]]  # if the robot is not circular

map_type: voxel

obstacle_layer:
  enabled:              true
  max_obstacle_height:  0.6
  origin_z:             0.0
  z_resolution:         0.2
  z_voxels:             2
  unknown_threshold:    15
  mark_threshold:       0
  combination_method:   1
  track_unknown_space:  true    #true needed for disabling global path planning through unknown space
  obstacle_range: 2.5
  raytrace_range: 3.0
  origin_z: 0.0
  z_resolution: 0.2
  z_voxels: 2
  publish_voxel_map: false
  observation_sources: bump
  bump:
    data_type: PointCloud2
    topic: mobile_base/sensors/bumper_pointcloud
    marking: true
    clearing: false
    min_obstacle_height: 0.0
    max_obstacle_height: 0.15
  # for debugging only, let's you see the entire voxel grid

#cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns
inflation_layer:
  enabled:              true
  cost_scaling_factor:  5.0  # exponential rate at which the obstacle cost drops off (default: 10)
  inflation_radius:     0.5  # max. distance from an obstacle at which costs are incurred for planning paths.

static_layer:
  enabled:              true

Thank you!

EDIT1: So one of the problems was that I had not added the obstacle layer definition in the global_costmap_params.yaml. I changed it to this and it is now partly working:

global_costmap:
   global_frame: /map
   robot_base_frame: /base_footprint
   update_frequency: 1.0
   publish_frequency: 0.5 ...
(more)
2017-03-06 17:58:45 -0500 received badge  Famous Question (source)
2017-02-08 00:06:03 -0500 received badge  Notable Question (source)
2017-02-07 00:31:14 -0500 answered a question Astra Pro with ROS & rtabmap

Issue solved! Please refer to https://github.com/introlab/rtabmap_r...

There were two problems when setting the Astra Pro, Ubuntu 16.04, ROS Kinetic with RTABmap:

  1. There was no default RGB calibration file. Simply run the monocular calibration procedure ( http://wiki.ros.org/camera_calibratio... ; requires a checkerboard) and obtain a .yaml file. Then edit this .yaml file to match with the camera_name(head_camera by default), and place it inside the $ROS_HOME/camera_info folder.
  2. Since Astra Pro did not seem to have direct access to the RGB camera on the Astra SDK, I used the usb_cam package to access the data ( https://github.com/bosch-ros-pkg/usb_cam ) However, usb_cam uses by default the name "head_camera" for the frame_id and camera_name. Simply change the frame_id to "camera_rgb_optical_frame", and remake the package.

Cheers!

2017-02-06 14:34:44 -0500 received badge  Popular Question (source)
2017-02-06 03:04:36 -0500 edited question Astra Pro with ROS & rtabmap

Hello,

Has anyone been able to use the Astra Pro camera with ROS Kinetic and rtabmap? I was able to get the Astra Pro camera working with rviz (RGB image stream + Depth) using the usb_cam node and the Astra SDK.

However, I keep getting a strange error when using rtabmap_ros. I described the error in the following link: https://github.com/introlab/rtabmap_r...

Has anyone been able to do so, and if so, would you mind providing some guidance on the topic?

Thank you!

EDIT: Attached important information from the described link:

I am using Ubuntu 16.04 and Kinetic ROS.

I am using an Astra Pro Camera. Since RGB is not supported for OpenNi for the Pro version, I am using the Astra SDK for the Depth, and the usb_cam_node for the RGB camera: https://github.com/orbbec/ros_astra_c... https://github.com/bosch-ros-pkg/usb_cam

I installed rtabmap first from the binaries and did not work. Then I deleted everything and installed from Source and I still get the same error. I made sure to change the topics for the rtabmap launch, but I am getting the following error:

/rtabmap/rgbd_odometry subscribed to (approx sync): /usb_cam/image_raw, /camera/depth_registered/image_raw,
/usb_cam/camera_info terminate called after throwing an instance of 'UException' what(): [FATAL] (2017-02-06 16:37:20.365) CameraModel.cpp:77::CameraModel() Condition (fx > 0.0) not met! [fx=0.000000]

Followed by the following:

[ WARN] [1486366640.733577972]: odometry: Could not get transform from camera_link to head_camera (stamp=1486366640.510289) after 0.200000 seconds ("wait_for_transform_duration"=0.200000)! Error=". canTransform returned after 0.201911 timeout was 0.2."

I tried creating a calibration file, but it seems that if I go to Window->Preferences->Source it doesn't allow me to change any of the parameters (everything is dark).

My launch commands are as follows (none of them work):

roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start" rviz:=true rtabmapviz:=false rgb_topic:=/usb_cam/image_raw depth_topic:=/camera/depth_registered/image_raw camera_info_topic:=/usb_cam/camera_info

roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start" rgb_topic:=/usb_cam/image_raw depth_topic:=/camera/depth_registered/image_raw camera_info_topic:=/usb_cam/camera_info

EDIT1: It seems that the /usb_cam/camera_info topic is giving me zero for most of the values. Perhaps something to do with the Astra Pro driver that is not passing the RGB camera info to the usb_cam node?

-- header:    
seq: 528   
stamp: 
    secs: 1486431518
    nsecs: 934969955   
frame_id: head_camera 
height: 480 
width: 640
distortion_model: '' 
D: [] 
K: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 
R: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 
P: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 
binning_x: 0 
binning_y: 0 
roi:   
x_offset: 0   
y_offset: 0   
height: 0 
width: 0   
do_rectify: False
---
2017-02-06 03:04:36 -0500 received badge  Editor (source)
2017-02-06 03:04:19 -0500 commented question Astra Pro with ROS & rtabmap

Sorry about that! Updated the post with the same details as the issue on the tracker!