Coder Social home page Coder Social logo

utexas-bwi / eband_local_planner Goto Github PK

View Code? Open in Web Editor NEW
102.0 102.0 84.0 728 KB

ROS Local planner based on the eband approach. Based on the original implementation by Christian Connette and Bhaskara Marathi. This local planner has been adapted primarily for differential drive robots, but still supports the original holonomic drive controls.

Home Page: http://wiki.ros.org/eband_local_planner

CMake 0.83% C++ 97.24% Python 1.92%

eband_local_planner's People

Contributors

gkouros avatar jack-oquin avatar maxsvetlik avatar mikaelarguedas avatar piyushk avatar zhuyifengzju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eband_local_planner's Issues

ROS Melodic Morenia release

I am really need this package for my robot. Unfortunately I plan to upgrade my robot to ROS Melodic Morenia soon. Would you kindly release the compatible version?

catkinize

All stacks apart from control_toolbox have catkin equivalents available. Proceed with converting groovy_devel to catkin as control toolbox is only used in holonomic drive control.

move_base dose not put SUCCEEDED status (move_base/status or move_base/result)

The flowing code(return goal_reached_;) dosen't work correctly.

bool EBandPlannerROS::isGoalReached(){
  ....
  return goal_reached_;
  ....
}

Why did you comment out next lines?
from here
// nav_msgs::Odometry base_odom;
//...
to here
//return is_goal_reached;

bool EBandPlannerROS::isGoalReached()
{
  // check if plugin initialized
  if(!initialized_)
  {
    ROS_ERROR("This planner has not been initialized, please call initialize() before using this planner");
    return false;
  }

  return goal_reached_;

  // // copy odometry information to local variable
  // nav_msgs::Odometry base_odom;
  // {
  // 	// make sure we do not read new date from topic right at the moment
  // 	boost::mutex::scoped_lock lock(odom_mutex_);
  // 	base_odom = base_odom_;
  // }

  // geometry_msgs::PoseStamped global_pose;
  // costmap_ros_->getRobotPose(global_pose);

  // // analogous to dwa_planner the actual check uses the routine implemented in trajectory_planner (trajectory rollout)
  // bool is_goal_reached = base_local_planner::isGoalReached(
  //     *tf_, global_plan_, *(costmap_ros_->getCostmap()),
  //     costmap_ros_->getGlobalFrameID(), global_pose, base_odom,
  // 		rot_stopped_vel_, trans_stopped_vel_, xy_goal_tolerance_,
  //     yaw_goal_tolerance_
  // );

  // return is_goal_reached;

}

Missing file eband_local_planner/EBandPlannerConfig.h when catkin build the ros-autom fork

I was trying to build the fork ros-autom/eband_local_planner without doing sudo apt-get install ros-indigo-eband-local-planner. I have an error about the missing file eband_local_planner/EBandPlannerConfig.h.

But if I install the the release version of the original utexas-bwi/eband_local_planner first by $ sudo apt-get install ros-indigo-eband-local-planner first, I can build the ros-autom fork.

I think it might be a bug? But I am not sure about your implementation structure though :)

I really like the ros-autom fork because it has the dynamic reconfigure function.

Thank you!

release!

The hysteresis loop in the current release is broken, but was fixed in 36cd9ee

We need to do a minor/patch release for this package.

holonomic drive control broken (control_toolbox catkinization issue)

  1. The holonomic drive trajectory controller makes use of a PID from control_toolbox, which has not been catkinized yet (ros-controls/ros_control#39). To proceed with catkinization and using the hydro-devel branch for navigation, the holonomic part of the trajectory controller has been broken. Once control_toolbox gets catkinized, fix holonomic drive control
  2. Additionally, replace the custom PID in the differential controller with the one from control_toolbox

Lunar and melodic release

It would be great if the eband_local_planner could be released into Lunar. I've just tested the package on Lunar, and it compiles without problems. So this should just be a matter of running bloom, no changes to the source code required.

Excessive INFO messages when planner frequency is high.

I'm trying to use a planner frequency of 1.0 to speed-up local re-planning around many obstacles, and this message displays excessively:

[ INFO] [1427384535.102261903, 99.359000000]: Global plan set to elastic band for optimization

Change it to debug.

Obstacle information to eband_local_planner !

Hello guys

I found this tool really interesting, i have a ROS node which is giving x,y obstacle information , in short can any one please explain me how can i give the obstacle information from my ros node to this local planner ??
so as to get the obstacle free path from this planner !!

Thanks

Planner often aborts mission

Hi,
The planner often makes move_base abort since the robot footprint is in an obstacle at some point in the global plan. I understand that work needs to be done in convertPlanToBand to repair the band. But in the meantime, would it be best if we break out of the loop as long as there is some part of the band that can be achieved by the robot? This also allows the robot to wait for dynamic obstacles to pass and then continue, rather than aborting.

For example, rather than returning false on distance<=0.0, we could use:
if(band.size()) break;
else return false;

robot footprint

Hi,
Is the robot footprint considered when converting the plan to band? Or is this planner solely for a point robot?

I have a robot that is 1.7mx0.6m and it often hits walls.

Bubbles dont' change size

Hello, my bubbles won't change size when I used the EBand planner. Sometimes they go through walls for some reason as well. Rarely, when they do change size, they\re smaller than the robot and the robot keeps going. I thought the algorithm would halt the robot if that happened.

I am using ROS Melodic.

How to increase the robot's velocity

I use the eband_local_planner as the base_local_planner for my four mecanum wheels base, and the eband_local_planner_params is as follows:

EBandPlannerROS:
   xy_goal_tolerance: 0.03
   yaw_goal_tolerance: 0.05
   rot_stopped_vel: 0.01
   trans_stopped_vel: 0.01
   marker_lifetime: 0.5
   eband_min_relative_overlap: 0.7
   eband_tiny_bubble_distance: 0.01
   eband_tiny_bubble_expansion: 0.01
   eband_internal_force_gain: 1.0
   eband_external_force_gain: 2.0
   num_iterations_eband_optimization: 3
   eband_equilibrium_approx_max_recursion_depth: 4
   eband_equilibrium_relative_overshoot: 0.75
   eband_significant_force_lower_bound: 0.15
   costmap_weight: 10.0


   max_vel_lin: 0.8
   max_vel_th: 0.6
   min_vel_lin: 0.1
   min_vel_th: 0.0
   min_in_place_vel_th: 0.2
   in_place_trans_vel: 0.0
   k_prop: 4.0
   k_damp: 3.5
   Ctrl_Rate: 10.0
   max_acceleration: 1.0
   virtual_mass: 0.75
   max_translational_acceleration: 1.0
   max_rotational_acceleration: 1.2
   rotation_correction_threshold: 0.5
   differential_drive: false
   bubble_velocity_multiplier: 2.0
   rotation_threshold_multiplier: 1.0
   disallow_hysteresis: false

From the above configure parameters, I have set the max_vel_lin is 0.8 m/s . But in the test, I have found that the robot's max_speed is only 0.43m/s. I have tune some parameters: k_drop, k_damp, eband_tiny_bubble_distance, etc. I have increase and decrease such parameters, but the robot's max_speed is also about 0.43 m/s. I don't know how to tune which parameters to increase the robot's speed. By the way , I use dwa_local_planner the robot's max_speed can meet the requirements.

eband_local_planner lack of documentation

Hello !
I didn't find anywhere a documentation about the list of available parameters for the eband_local_planner.
It would be nice if anyone can provide it.
Thanks.

infinite initial rotation

during the 1st rotation step in the differential drive trajectory follower, sometimes the next bubble is too close and we start doing an infinite jitter rotation.

This bug is a bit hard to reproduce

Error while trying cuts the plan off (reduces it to local window)

I want to reduce my global plan to the local window, using this function:

eband_local_planner::transformGlobalPlan(*tf_, global_plan_, *costmap_ros_, costmap_ros_->getGlobalFrameID(), transformed_plan_, start_end_counts);

But I have this error:

undefined symbol: _ZN19eband_local_planner19transformGlobalPlanERKN7tf2_ros6BufferERKSt6vectorIN13geometry_msgs12PoseStamped_ISaIvEEESaIS8_EERN10costmap_2d12Costmap2DROSERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSA_RS4_IiSaIiEE
Thank you in advance for your help

EBand cannot avoid dynamically added obstacles in any path (global/local)

Good evening people and thanks for that stable planner.
everything is working fine except the dynamically avoidance of an obstacle

what i do:
Scenario 1)
*Using DWA for global planner and Eband for local planner
Scenario 2)
*Using Eband for both global and local planner

i give a goal to the robot via rviz.Robot start moving smoothly.
i add an obstacle via gazebo,on the global planner green line.
i get warnings:

Calculation of Distance between bubble and nearest obstacle failed. Frame 24 of 203 in collision. Plan invalid
[ WARN] [1500970819.269624973, 141.404900000]: Conversion from plan to elastic band failed. Plan probably not collision free. Plan not set for optimization
[ WARN] [1500970819.670180554, 141.805300000]: Optimization failed - Band invalid - No controls availlable

robot is moving forward like there is no obstacle

any ideas ?
thanks in advance

Duplication of Costmap layer plugins

As many have probably realized, in order for the robot deal with dynamic obstacles with this planner, it's necessary to duplicate the costmap obstacle layers on both the local and global maps. This becomes a big resource hog when using computationally intensive layers like 3d voxel layers. It would be great if this planner took the global plan and acted on it solely based on its own local cosmap layers, and it didn't require all layers to be on both global and local planners.

Official Kinetic support?

Hi,

I'm wondering if you have any plans for official ROS Kinetic support (ie, binaries). I was able to compile this code from source with absolutely 0 problems under Ubuntu 16.04 + ROS Kinetic.

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.