# Force control for a Grinding application

**URL:** <https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282>\
**Category:** RAPID Programming\
**Tags:** force-control\
**Created:** [January 20, 2020, 12:02pm UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282 "2020-01-20T12:02:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![WoundedFox](https://avatars.discourse-cdn.com/v4/letter/w/c68b51/32.png) [@WoundedFox](https://tech-community.robotics.abb.com/u/WoundedFox)\
**Post date:** [January 20, 2020, 12:02pm UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282/1 "2020-01-20T12:02:19Z")

</div>

HI,

Am working on a project with force Control to do a grinding operation ( IRB 4600, IRC5 controller, Robotware\_6.09.0154)

when the grinder turned on my force value is fluctuating, it goes like -200 to 200N(in mid air)

how do i stabilize this?

Did i miss anything ? please help me correct this.

var num nforce;

var num nAngleY;

nforce=10

TempLoad:=FCLoadID(\LoadidErr:=nFcloadErr);

FCCalib TempLoad;

!Grinder On

FCPress1LStart reltool(Apoint,0,0,0\Ry:=nAngleY), v20\Fz:=nForce, 80\ForceFrameRef:=FC\_REFFRAME\_WOBJ \ForceChange:=50 \DampingTune:=100 \TimeOut:=5 \UseSpdFFW,\PosSupvDist:=10, z1, t4inGrinder\WObj:=WbjGrind;

FCPressL reltool(ABpoint,0,0,0\Ry:=nAngleY),v20,nForce,z1,t4inGrinder\WObj:=WbjGrind;

FCPressL reltool(Bpoint,0,0,0\Ry:=nAngleY),v20,nForce,z1,t4inGrinder\WObj:=WbjGrind;

FCPressEnd rGrindingEnd\_1,v50\DeactOnly,t4inGrinder\WObj:=WbjGrind;

!Grinder Off

And to check the force real time am using the instruction Fcgetforce(\contact force)

Thank you

---

<div class="post-metadata">

**Author:** ![graemepaulin](https://avatars.discourse-cdn.com/v4/letter/g/258eb7/32.png) [@graemepaulin](https://tech-community.robotics.abb.com/u/graemepaulin)\
**Post date:** [January 20, 2020, 6:45pm UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282/2 "2020-01-20T18:45:59Z")

</div>

I think you need to add identify the load and calibrate, from the Force Control manual the basic approach to creating a program is:

1 Identify the load.  
2 Move to a point close to contact but not in contact.  
3 Calibrate.  
4 Setup force control directions and start movement.  
5 Move linear or circular with contact.  
6 Leave surface.

Example below is with force Z with a movement in x-direction  
PROC press1()  
PERS loaddata TestLoad:=[0.001,[0,0,0.001],[1,0,0,0],0,0,0];

! Identify the load using the sensor  
TestLoad:=FCLoadID();

! Move close to contact  
MoveJ offs(B,0,0,2) , v100, fine, tool0; !! start 2mm above contactpoint

! Calibrate the force sensor  
FCCalib TestLoad;

! Approach surface and start move to robtarget C at 50% of  
! 60 N i.e 30 N  
FCPress1LStart C, v100, \Fz:=60, 50, z30, myTool;

! Move Linear from C to D1 with a Force of 50 N in the z-direction  
FCPressL D1,v100,50,z30,myTool;

! Move Linear from D1 to D2 with a Force of 70 N in the  
! z-direction  
FCPressL D2,v100,70,z30,myTool;

! Leave surface and move to robtarget E, Force control  
! is disabled after this instruction  
FCPressEnd E, v100,myTool;  
ENDPROC

---

<div class="post-metadata">

**Author:** ![WoundedFox](https://avatars.discourse-cdn.com/v4/letter/w/c68b51/32.png) [@WoundedFox](https://tech-community.robotics.abb.com/u/WoundedFox)\
**Post date:** [January 21, 2020, 9:31am UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282/3 "2020-01-21T09:31:02Z")

</div>

I understand this part, my problem is when i turned on the grinder in force value is fluctuating drastically because of that when i tried applying constant force robot is going in random direction.

---

<div class="post-metadata">

**Author:** ![graemepaulin](https://avatars.discourse-cdn.com/v4/letter/g/258eb7/32.png) [@graemepaulin](https://tech-community.robotics.abb.com/u/graemepaulin)\
**Post date:** [January 21, 2020, 7:53pm UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282/4 "2020-01-21T19:53:42Z")

</div>

You should have the grinder running before doing the calibration.

---

<div class="post-metadata">

**Author:** ![WoundedFox](https://avatars.discourse-cdn.com/v4/letter/w/c68b51/32.png) [@WoundedFox](https://tech-community.robotics.abb.com/u/WoundedFox)\
**Post date:** [January 24, 2020, 6:46am UTC](https://tech-community.robotics.abb.com/t/force-control-for-a-grinding-application/9282/5 "2020-01-24T06:46:28Z")

</div>

yes it worked , Thankyou
