I’ve seen the other topics relating to keeping the robot stationary while in force mode [1,2, etc] and have implemented all the suggestions within them, so I’d like to get some confirmation on whether this has ever been successfully accomplished. The intended goal is to have the robot stationary while staying in force mode. I have a UR10e, but open to hearing any success stories.
Here is the code I use to setup force mode, it is in python but the same happens with native URScript.
rtde_c.stopJ(2)
t_start = rtde_c.initPeriod()
rtde_c.waitPeriod(t_start)
rtde_c.zeroFtSensor()
rtde_c.forceModeSetDamping(1)
rtde_c.forceMode([0,0,0,0,0,0], [1,1,1,1,1,1], [0,0,0,0,0,0], 2, [.1,.1,.1,.01,.01,.01])
I then print out the TCP pose every ~10 seconds and see this:
[-1.162784275451543, -0.1795275136159148, -0.032580914070126685, 0.7033926913957578, -1.4163658225402154, -1.225266909268566]
[-1.1633267610131885, -0.17176590440961353, -0.03517282841343023, 0.6996997874784475, -1.4104053350235302, -1.2235251808709535]
[-1.1649057331903072, -0.1639007447397231, -0.03807288685626284, 0.6933049794429287, -1.4030572600984692, -1.221628472938659]
[-1.1663080102504628, -0.15623243875654766, -0.04118496794248601, 0.6869217431885766, -1.3956396608028907, -1.21981476955693]
[-1.1685606503208985, -0.14775714533232023, -0.044648193857640336, 0.6799488821938982, -1.3870631623412486, -1.2180343093732748]
[-1.1718633588432181, -0.13910621653168248, -0.0479037723327346, 0.6730598805449364, -1.3780160607639163, -1.2163581839517281]
[-1.1742456616820807, -0.13140202307287235, -0.05116198889601506, 0.6674420323246675, -1.3697125453538297, -1.214861996721621]
[-1.1779076773897597, -0.12337183672391631, -0.054051994271425506, 0.6623707266616156, -1.3615408308528003, -1.2139316240993685]
[-1.1822975274224785, -0.11481730499668728, -0.057043725914551584, 0.6559575511496071, -1.3523560146058768, -1.2131468189809387]
[-1.1881478790445552, -0.10618664553391415, -0.05969821316840036, 0.6490344739983362, -1.3422069576718365, -1.2124876560458935]
Since the trend for each joint is in the same direction throughout the process I can tell this is unintended drift. I set the damping to the max value (even at the default value this behaviour is exhibited) and ensure no one touches the robot. Visually I can also see the robot drifting slowly.
P.S. I am sure I set my tool weight and CoG correctly because setting the robot in freedrive mode yeilds consistent TCP poses and no visual drifting. I’ve also experimented with other speed limit values but the result is the same.