-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Robots Entering Shared Docking Lane Simultaneously Despite Mutex Configuration #514
Comments
Hello @osama-z-salah ! May I understand your navigation graph better - which waypoints are assigned the mutex group? What is the mutex group called, and is the name consistent across the relevant waypoints and lanes? Lastly, may I check if you launched the mutex group supervisor node? If not, you may try adding these lines to your own common.launch.xml:
|
Hello @xiyuoh, thanks for your response! My goal is to pick up an object from the ato_dock waypoint, which serves as a docking waypoint. I’m still trying to fully understand how to properly use mutexes. I've added a mutex property to both the lane leading to the docking waypoint and the waypoint itself. I named the mutex for the waypoint the same as the waypoint (ato_dock), while for the lane, I used a different name, docking_lane. Regarding the mutex_group_supervisor, I have added it to the common. One more thing I'm struggling to understand is the use of override_schedule. Should I apply it when performing actions at the docking waypoint, even if I'm not moving (e.g., jacking up the load), or is it sufficient to use it just for the docking itself? Could this be related to the current conflict I'm experiencing? |
I see! For areas where you want only 1 robot to occupy, you'll have to assign a uniquely-named mutex group to all the waypoints and lanes within this area. In other words, each mutex "area" is defined by the mutex group name. Seems like the issue here is the waypoint and lane carrying different mutex group names, so both robots could access them at the same time. Can you try making the mutex group name identical for both the docking waypoint and the lane leading to this waypoint? You might also want to assign the same mutex group name to the entry waypoint adjacent to the docking waypoint, to ease the deconfliction process. When you run this, you should be able to see something like "robot2 waiting for the mutex held by robot1" printed on the fleet adapter terminal. Let me know if this works! |
Thanks! Yes, it works now, but I'm facing another issue with override_schedule. After it finishes, it re-plans and makes my robot attempt to dock again, even though it’s already docked. Also, one last question: is it necessary to apply override_schedule when performing actions at the docking waypoint, even if the robot isn't moving (e.g., jacking up the load), or is it sufficient to use it just for the docking itself? |
You can try removing the And no, you don't have to apply |
Before proceeding, is there an existing issue or discussion for this?
OS and version
Ubuntu 22.04
Open-RMF installation type
Source build
Other Open-RMF installation methods
No response
Open-RMF version or commit hash
iron
ROS distribution
Iron
ROS installation type
Source build
Other ROS installation methods
No response
Package or library, if applicable
No response
Description of the bug
I am simulating a scenario where two robots need to pick up objects from a shared docking station. However, both robots are entering the docking lane simultaneously, causing them to collide with each other. I've already configured the lane and waypoint as mutually exclusive (mutex) in the traffic editor, but the collision still occurs. The attached video demonstrates the issue.
Screencast from 08-21-2024 05:33:36 PM.webm
Steps to reproduce the bug
Expected behavior
No response
Actual behavior
No response
Additional information or screenshots
No response
The text was updated successfully, but these errors were encountered: