Currently, the pick motion logic is structured like this (Lua code):
Code: Select all
-- horizontal move above the object
pos = {x, y, z + pickupheight}
sim.moveToPosition(end_effector, -1, pos, nil, linearVelocity, linearAccel)
-- vertical descent to pick the object
pos = {x, y, z}
sim.moveToPosition(end_effector, -1, pos, nil, linearVelocity, linearAccel)
-- move back up
pos = {x, y, z + pickupheight}
sim.moveToPosition(end_effector, -1, pos, nil, linearVelocity, linearAccel)
This sequence works, but each move is strictly linear and segmented.
What I would like to do is make the vertical descent blend smoothly with the previous horizontal move, so that the overall motion is more natural and similar to a real delta robot trajectory.
Specifically:
After moving above the target horizontally, I'd like the robot to automatically follow a smooth trajectory down (instead of stopping and then moving straight down).
Ideally, the trajectory would be calculated dynamically, possibly using a motion planner or smoother.
My questions are:
Is there a recommended way to create such smooth, blended trajectories in CoppeliaSim?
Are there built-in libraries or plugins (like OMPL, Reflexxes, etc.) that would be appropriate for this case?
Would it be better to manually generate the waypoints (e.g., arc or spline) or use something like sim.followPath?
Any best practices when simulating delta robot kinematics for pick-and-place tasks?
Any tips or suggestions would be really appreciated!