UbiquityRobotics / move_basic

A minimal navigation node
BSD 3-Clause "New" or "Revised" License
69 stars 21 forks source link

RootRework: Rotational Collisions #98

Open MoffKalast opened 2 years ago

MoffKalast commented 2 years ago

I suppose this is something that we all know about, but nobody ever brought it up as an actual issue.

Here's a worst case scenario example:

https://user-images.githubusercontent.com/9977799/138290844-c99feae5-af33-458e-a6a2-a8d1d6eed770.mp4

Like how many times has a magni scraped a wall or hit something with the rear end when turning? Happens so often that I even set up foam bumpers on this one months ago without even thinking about it too much.

When we were only using sonars this wasn't really possible to detect or fix, but now that we have lidar support this should probably be added to prevent "magni in a china shop" situations.

The interesting thing is that it does actually slow down in these cases, which would imply it's actually detected something, but it doesn't really stop. So you get slow scraping against walls instead of fast scraping at least 😄.

JanezCim commented 2 years ago

I think this might be already built into move_basic. Maybe make the min_side_dist larger?

dorkamotorka commented 2 years ago

Correct, this is missing. During turning robot only decreases speed in case of obstacles but does not stop.

MoffKalast commented 2 years ago

Sounds like it would be an easy fix to just have the speed go to zero instead?

MoffKalast commented 2 years ago

Okay so I've got some client complaints about this very thing recently, so we should elevate the priority:

The Magni platform pivots around a point midway between the two driven wheels. This causes the rear section to swing out during pivots. EZ-Map does not appear to be aware of the location of the Magni's perimeter. In close quarters, this produces collisions when pivoting, even though sufficient map data is present. This needs to be addressed