magazino / move_base_flex

Move Base Flex: a backwards-compatible replacement for move_base
https://uos.github.io/mbf_docs/
BSD 3-Clause "New" or "Revised" License
422 stars 154 forks source link

Costmap Safety Check Doesn't Quite Work as Expected #297

Open Jmeyer1292 opened 2 years ago

Jmeyer1292 commented 2 years ago

Greetings. MoveBaseFlex is an excellent piece of software. Thank you for the hard work in creating and maintaining it.

I wanted to report an issue: In brief the safetyChecks are not working as expected.

Blue is a velocity command (linear/x). Red is measured robot twist (linear/x). oscillation Figure 1

A very quick glance through the source code shows this section of code as the point where our checks are applied.

It appears that the safety check fails (as expected), a zero velocity is published, and the thread sleeps. It then proceeds to go and run the controller and issue a command anyway. I suggest the inclusion of a continue in the loop where the safety checks fail.

I'm happy to make this edit, but I acknowledge that this may have been done on purpose. I can certainly see the value in still running controllers at regular intervals and just letting them know that things are kinda broken.

Again thank you for being open source maintainers.

corot commented 1 year ago

Thanks for the thorough analysis. I agree, at first glance, looks like a continue; is missing. I'll try myself and see if there's any good reason for not having it (we wrote that logic long time ago, and I don't remember the rationale)