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

Problem with move_base and plugin

asked 2017-04-20 11:11:17 -0500

nico_b gravatar image

Hi,
I'm trying to set up my navigation stack as described in the navigation tutorial (3). I'm just using laserscanning data (topic: /scan) as input data. When launching move_base.launch I get the following error message:

[ INFO] [1492703004.522593034]: Using plugin "static_layer"
[ INFO] [1492703004.934024440]: Requesting the map...
[ INFO] [1492703008.961617911]: Resizing costmap to 4000 X 4000 at 0.050000 m/pix
[ INFO] [1492703009.729487121]: Received a 4000 X 4000 map at 0.050000 m/pix
[ INFO] [1492703009.773186553]: Using plugin "obstacle_layer"
[ INFO] [1492703009.846848125]:     Subscribed to Topics: laser_scan_sensor
[ INFO] [1492703010.106286438]: Using plugin "inflation_layer"
[ INFO] [1492703011.212133919]: Using plugin "obstacle_layer"
terminate called after throwing an instance of 'pluginlib::LibraryLoadException'
  what():  Could not find library corresponding to plugin costmap_2d::ObstacleLayer. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.
[move_base-3] process has died [pid 21563, exit code -6, cmd /opt/ros/kinetic/share/move_base/move_base __name:=move_base __log:=/home/ubuntu/.ros/log/5d670626-25d8-11e7-9af6-b827ebab1210/move_base-3.log].
log file: /home/ubuntu/.ros/log/5d670626-25d8-11e7-9af6-b827ebab1210/move_base-3*.log

What am I doing wrong? Where is my mistake... I searched the forum for quiet a long time now, but still havn't found a working answer.
Thanks in advance.


base_local_planner_params.yaml

TrajectoryPlannerROS:
  max_vel_x: 0.19
  min_vel_x: 0.095
  max_vel_theta: 0.256
  min_in_place_vel_theta: 0.192

  acc_lim_theta: 3.2
  acc_lim_x: 2.5
  acc_lim_y: 2.5

  holonomic_robot: true

costmap_common_params.yaml

obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[5, 5], [5, 15],[0, 10]]
inflation_radius: 0.55

observation_sources: laser_scan_sensor

laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

global_costmap_params.yaml

global_costmap:
  global_frame: /odom
  robot_base_frame: base
  update_frequency: 2.0
  static_map: true

local_costmap_params.yaml

local_costmap:
  global_frame: odom
  robot_base_frame: base
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
edit retag flag offensive close merge delete

Comments

I'm not trying to be a smart @ss, but did you follow the instructions in the error? "Could not find library corresponding to plugin costmap_2d::ObstacleLayer. Make sure the plugin description XML file has the correct name of the library and that the library actually exists."

billy gravatar image billy  ( 2017-04-20 12:06:10 -0500 )edit

Thanks for the answer and suggestion. I've seen the instruction as well, but I didn't know what that is telling me at all... Does the error message mean the costmap_plugins.xml file in my costmap_2d folder? Or do I have to mess around with the pluginlib.

nico_b gravatar image nico_b  ( 2017-04-20 12:12:18 -0500 )edit

Which version of ROS are you using?

billy gravatar image billy  ( 2017-04-20 14:02:56 -0500 )edit

The obstacle_layer plugin is compiled into the liblayers.so library. Check that this file is present. I just ran it on Kinetic with no problems, so it is possible that something has gone wrong in the environment settings on your computer. Are you running the nav stack from binaries or source?

Geoff gravatar image Geoff  ( 2017-04-20 19:55:28 -0500 )edit

I'm running on Kinetic as well. You mean /opt/ros/kinetic/lib/liblayers.so? I need to have a look at it. Currently I'm running from binaries, since installing from source was not possible on a Rasperry Pi, due to lack of RAM space...

nico_b gravatar image nico_b  ( 2017-04-21 00:40:04 -0500 )edit

What OS are you using on the Pi? Check if the file is at that path. If it is, check that, after setting up your shell for ROS, /opt/ros/kinetic/lib is included in LD_LIBRARY_PATH.

Geoff gravatar image Geoff  ( 2017-04-21 00:48:34 -0500 )edit

I'm running Ubuntu 16.04.2 LTS. /opt/ros/kinetic/lib is also included in LD_LIBRARY_PATH. liblayers.so is also existing. Any other suggestions?

nico_b gravatar image nico_b  ( 2017-04-24 07:51:31 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2017-04-21 13:11:38 -0500

billy gravatar image

I think that if you're using Kinetic, you need to be explicit with the setup pf the plugins and I don't see that in the code you posted.

plugins:
  - {name: static_map, type: "costmap_2d::StaticLayer"}
  - {name: obstacles, type: "costmap_2d::VoxelLayer"}
  - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

obstacles:
  observation_sources: laser_scan_sensor bumper_sensor

  laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}
  bumper_sensor: {sensor_frame: base_link, data_type: PointCloud2, topic: /pointcloud, marking: true, clearing: false}

inflation_layer:
  enabled:              true
  cost_scaling_factor:  10.0  # exponential rate at which the obstacle cost drops off (default: 10)
  inflation_radius:     0.3  # max. distance from an obstacle at which costs are incurred for planning paths.

Try setting up like this and see if it corrects.

edit flag offensive delete link more
0

answered 2017-04-26 10:35:14 -0500

nico_b gravatar image

I managed to compile the navigation package from source. By doing that, I solved that problem.
Thanks a lot for all your support.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-04-20 11:11:17 -0500

Seen: 1,770 times

Last updated: Apr 26 '17