A demo to deliver Coke with mobile robots and manipulators
A demo to deliver Coke with mobile robots and manipulators
Demo video with details
📚 Task Sequence
PDDL
Planning domain was defiend, including below items.
types
robot: The robot we're going to use
object: The thing the robot needs to move
point: The points where the robot stops to pick up and placing the target object
position: Where the object is located and to be placed
predicates
at (robot) (point) : True if (robot) is at (point)
handEmpty: True if (robot)’s hand is empty
accessible (robot) (position): True if planning motion that (robot)’s end effector accesses to (position) is successful
holding (robot) (object): True if (robot) is holding (object)
on (object) (position): True if (object) is on (position)
front (position) (point): True if (position) is in front of (point)
found (object): True if the (object) is detected
actions
move: To command the robot to move
pickplan: To plan the motion trajectories for picking up the object
placeplan: To plan the motion trajectories for placing the object
pick: To execute the trajectories planned by ‘pickplan’ action
place: To execute the trajectories planned by ‘placeplan’ action
detect: To execute the object detection part
Planning problem was defined like below.
objects
point
start: The start point
pickpoint: The point where robot picks up the target object
placepoint: The point where robot places the target object
object
objA: The target object
robot
ur5e: The robot we use
position
ontable: The position where the target object is initially located
onchair: The position where the target object will be placed
init
at ur5e start
handEmpty
front ontable pickpoint
front onchair placepoint
on objA ontable
goal
on objA onchair
at ur5e start
handEmpty
found objA
ROSPlan Interface
The priority of tasks is planned by ROSPlan.
The interface connects ROSPlan to the necessary functions such as navigation, motion planning and recognition parts. Depending on the priority of the tasks, ‘action dispatch’ topic is published containing information about the task, and the interface subscribes it.