actually the obstacle detect is the easy bit... just need to monitor the current draw by the motor over a few open/close cycles to learn the profile... any deviation from that is a 'stop & back off, wait, try again' cycle (exactly how my lift doors do it).

The harder bit is working out the actual mechanism. Standard units don't use ballscrews, just a motor and gearbox turning a shaft and an articulating (low torque/more complex engineering) or sliding (simpler, but higher torque and higher maintenance/wear) arm.