Posted by @naveenrobo:
Currently we are using RMF in an industrial environment. We need the robot to go in curved path. We don’t want to give intermediate milestones. Intermediate milestones makes the robot stop for a while after reaching then proceeds to another milestone. If we have option to bend the lane we can reach the final destination in single go.
Our current scenario is like this A → B → C. Here B is the intermediate milestone to make the robot rotate in particular orientation to reach C. This causes the robot to stop for a moment at B and then proceeds to C. If we could draw a lane with curvature, we can go from A → C without stopping at B it would be great.
Posted by @mxgrey:
We don’t have a clean way to support this in the current generation of Open-RMF although this is a capability that I’m keen on supporting in the next generation.
In the meantime, there are two workarounds you can consider:
- If
A
is the only waypoint that connects into C
then you could give C
a dock_name
property and make the traversal from A
→ C
a docking maneuver, which you have total freedom to give any shape/trajectory to. This also allows traffic conflict detection to work while the “docking” is happening.
- If you aren’t too concerned about traffic conflict detection for the motion from
A
→ C
then you can just add code into your adapter to identify when the robot is being asked to do this traversal and handle that as a special case.
- This is easiest to do if you use the
EasyFullControl
API because you will receive a Destination
that directly tells you the waypoint’s name
. You’d be able to just check the name and choose to command the robot along the desired curved path.
- Also if you use the
EasyFullControl
API you can override the schedule similarly to how docking maneuvers work, which may be helpful if there’s a risk of traffic conflicts.
Posted by @naveenrobo:
Thanks for the reply @mxgrey. We will try out both the options and updated here.