Open techmanjeet opened 1 month ago
I'm not too familiar with the details of the mutex implementation but have you tried doing a composed task made of a simple goto place (for the coe
waypoint) followed by a perform action (for the teleop
)?
Generally, during the "perform_action" mode, RMF has minimal interactions with the robot and I wouldn't be surprised if that also means it won't lock any mutexes. By contrast, doing normal dispatch patrols should.
Before proceeding, is there an existing issue or discussion for this?
OS and version
Ubuntu 24.04
Open-RMF installation type
Source build
Other Open-RMF installation methods
No response
Open-RMF version or commit hash
latest on jazzy
ROS distribution
Rolling
ROS installation type
Binaries
Other ROS installation methods
jazzy ros2
Package or library, if applicable
No response
Description of the bug
i am having ros2 jazzy on ubuntu 24.04. i installed the ros in binary and open rmf as source build. My requirement is that on a waypoint where i am performing an action like conveyor dock and transfer, i dont want another robot to go to that place and kept waiting before certain waypoint.
I tried to simulate this using office demo launch file and assigned the task to perform teleop action on coe waypoint. i gave command two bot ronot to go there.
I applied the mutex group to the waypoints going to the coe end.
What i faced is that upon reaching suppose tinyRobot1 to coe, after certain seconds the tinyRobot 2 is also accquiring the same spot and robot goes in deadlock scenario.
i am attaching the building.yaml files office.building.zip
Steps to reproduce the bug
1.Launch Rmf using ros2 launch rmf_demos_gz office.launch.xml 2.ros2 run rmf_demos_tasks dispatch_action -F tinyRobot -R tinyRobot1 -a teleop -s coe --use_sim_time 3.ros2 run rmf_demos_tasks dispatch_action -F tinyRobot -R tinyRobot2 -a teleop -s coe --use_sim_time
Expected behavior
One robot should wait till the other finished the teleop operation and has mutex lock acquired. i want to use this as a transfer use case via conveyor or any medium. need a custom action to dock and than finish request.
And i also found that after giving task request rmf takes a while to start task, some times one minute and sometimes give api response but dont start Screencast from 2024-07-13 12-35-15.webm
Actual behavior
how can i achieve this use case in rmf framework. i tried using mutes, let me know how can i achieve this, its a good project where i can use this.
Additional information or screenshots
No response