MoveP – Process Move Moving the Robot in Circular Move

The MoveP function is introduced for Process tasks.

The syntax for MoveP is two waypoints i.e. the next position and a via point and the radius as a parameter.

universal_robots_zacobria_moveP_1

The program below draws a circle.

universal_robots_zacobria_moveP_2

Program “Circle_min.txt”

Program
Robot Program
MoveP
Waypoint_1
CircleMove
Waypoint_2
Waypoint_3
Waypoint_3
MoveP
Waypoint_3
CircleMove
Waypoint_4
Waypoint_5

Program “Circle_min.script”

def circle_min():

set_analog_inputrange(0, 0)

set_analog_inputrange(1, 0)

set_analog_inputrange(2, 0)

set_analog_inputrange(3, 0)

set_analog_outputdomain(0, 0)

set_analog_outputdomain(1, 0)

set_tool_voltage(24)

set_runstate_outputs([])

set_payload(0.0)

set_gravity([0.0, 0.0, 9.82])

while (True):

$ 1 “Robot Program”

$ 2 “MoveP”

$ 3 “Waypoint_1”

movep(p[-0.5855971806671894, 0.20763167238928246, 0.07550319928745566, 0.6405873044452095, -3.071940616768458, 0.026070362768991707], a=1.2, v=0.25, r=0.025)

$ 4 “CircleMove”

$ 5 “Waypoint_2”

$ 6 “Waypoint_3”

movec(p[-0.6552053520364435, 0.20814432868498473, 0.05497712244299978, 0.6420954022873315, -3.0707961749619, 0.02459624334927117], p[-0.6566043998391788, 0.2770636231977118, 0.05506985067080796, 0.6423195981777231, -3.0742335265890093, 0.029393002058536455], a=1.2, v=0.25, r=0.025)

$ 7 “Waypoint_3”

movep(p[-0.6566043998391788, 0.2770636231977118, 0.05506985067080796, 0.6423195981777231, -3.0742335265890093, 0.029393002058536455], a=1.2, v=0.25, r=0.025)

$ 8 “MoveP”

$ 9 “Waypoint_3”

movep(p[-0.6566043998391788, 0.2770636231977118, 0.05506985067080796, 0.6423195981777231, -3.0742335265890093, 0.029393002058536455], a=1.2, v=0.25, r=0.025)

$ 10 “CircleMove”

$ 11 “Waypoint_4”

$ 12 “Waypoint_5”

movec(p[-0.5865144622138906, 0.2775296529322894, 0.05631928049682099, -0.6402521828636203, 3.073245510255796, -0.03566808080779445], p[-0.5854931145717062, 0.20761008476478102, 0.05712855652755951, 0.6409596020239017, -3.071863854166044, 0.02588460628260649], a=1.2, v=0.25, r=0.025)

end

end

Circle and Square test pattern.

Program “circle_sq_pat_fast.txt”

Result of drawing a circle test.

universal_robots_zacobria_moveP_4

Code for “circle_sq_pat_fast.txt”

def circle_sq_pat_fast():
set_analog_inputrange(0, 0)
set_analog_inputrange(1, 0)
set_analog_inputrange(2, 0)
set_analog_inputrange(3, 0)
set_analog_outputdomain(0, 0)
set_analog_outputdomain(1, 0)
set_tool_voltage(24)
set_runstate_outputs([])
set_payload(0.0)
set_gravity([0.0, 0.0, 9.82])
while (True):
$ 1 “Robot Program”
$ 2 “MoveJ”
$ 3 “Waypoint_9”
movej([0.6236825723301582, -1.477339167481995, 2.478097719134525, -2.5575642827418985, -1.5571205043625342, 2.781621040141847], a=1.3962634015954636, v=1.0471975511965976)
$ 4 “Waypoint_10”
movej([0.6236448619691226, -1.4474532845166352, 2.4859203692109046, -2.5962346800626244, -1.5571205043625342, 2.7815076214373375], a=1.3962634015954636, v=1.0471975511965976)
$ 5 “Waypoint_11”
movej([0.6236825723301582, -1.477339167481995, 2.4780882915442657, -2.5575642827418985, -1.5571205043625342, 2.781621040141847], a=1.3962634015954636, v=1.0471975511965976)
$ 6 “Waypoint_12”
movej([0.714226440276918, -1.5329328874650308, 2.5526487507978564, -2.5756847064367876, -1.5568450589372969, 2.874492455491799], a=1.3962634015954636, v=1.0471975511965976)
$ 7 “Waypoint_13”
movej([0.7142170126866592, -1.5033662386848032, 2.560409472791512, -2.6125336094298417, -1.5568450589372969, 2.874492455491799], a=1.3962634015954636, v=1.0471975511965976)
$ 8 “Waypoint_14”
movej([0.714226440276918, -1.5329328874650308, 2.5526487507978564, -2.5756847064367876, -1.5568450589372969, 2.874492455491799], a=1.3962634015954636, v=1.0471975511965976)
$ 9 “Waypoint_15”
movej([0.8252617221320047, -1.5918062775490593, 2.6108257966930766, -2.572964383256948, -1.5561244714621552, 2.985678738585739], a=1.3962634015954636, v=1.0471975511965976)
$ 10 “Waypoint_16”
movej([0.8252428669514869, -1.5604846269140245, 2.6186767359318197, -2.6124039880532592, -1.5561244714621552, 2.985678738585739], a=1.3962634015954636, v=1.0471975511965976)
$ 11 “Waypoint_17”
movej([0.8252617221320047, -1.591815705139318, 2.610816369102818, -2.572964383256948, -1.5561244714621552, 2.985678738585739], a=1.3962634015954636, v=1.0471975511965976)
$ 12 “Waypoint_18”
movej([0.7331083376267294, -1.3915349678072964, 2.3710384451741837, -2.5329090769218716, -1.5570318330824549, 2.89377095079202], a=1.3962634015954636, v=1.0471975511965976)
$ 13 “Waypoint_19”
movej([0.7331083376267294, -1.3690286317845626, 2.3773876236131737, -2.5608917627081453, -1.5570318330824549, 2.89377095079202], a=1.3962634015954636, v=1.0471975511965976)
$ 14 “Waypoint_20”
movej([0.7331083376267294, -1.3915443953975553, 2.3710384451741837, -2.5329090769218716, -1.5570318330824549, 2.8937547481199473], a=1.3962634015954636, v=1.0471975511965976)
$ 15 “Waypoint_21”
movej([0.8240010264130678, -1.441522985098124, 2.438002522909194, -2.5499123910921577, -1.5559948500855727, 2.9840840816670857], a=1.3962634015954636, v=1.0471975511965976)
$ 16 “Waypoint_22”
movej([0.8240198815935855, -1.4198678933641073, 2.443904539556929, -2.577150628811502, -1.5559948500855727, 2.9840840816670857], a=1.3962634015954636, v=1.0471975511965976)
$ 17 “Waypoint_23”
movej([0.8240010264130678, -1.441513557507865, 2.438002522909194, -2.5499123910921577, -1.5559948500855727, 2.9840840816670857], a=1.3962634015954636, v=1.0471975511965976)
$ 18 “Waypoint_24”
movej([0.9316529346760483, -1.4809353233841405, 2.491492413807992, -2.562170910937701, -1.554650891167726, 3.0918942647943353], a=1.3962634015954636, v=1.0471975511965976)
$ 19 “Waypoint_25”
movej([0.9316435070857895, -1.4579481738666173, 2.497083319977184, -2.590648221638516, -1.554650891167726, 3.0918942647943353], a=1.3962634015954636, v=1.0471975511965976)
$ 20 “Waypoint_26”
movej([0.9316529346760483, -1.4809353233841405, 2.4914829862177332, -2.562187113609774, -1.554650891167726, 3.0918942647943353], a=1.3962634015954636, v=1.0471975511965976)
$ 21 “Waypoint_27”
movej([0.8233087408834951, -1.311938526326118, 2.255112659994481, -2.492562122489485, -1.556570488360478, 2.9845130090606924], a=1.3962634015954636, v=1.0471975511965976)
$ 22 “Waypoint_28”
movej([0.8233087408834951, -1.291530644063278, 2.26065236316329, -2.5190874306534026, -1.556570488360478, 2.9845130090606924], a=1.3962634015954636, v=1.0471975511965976)
$ 23 “Waypoint_29”
movej([0.8233087408834951, -1.311938526326118, 2.2551032324042213, -2.4925459198174122, -1.556570488360478, 2.9845130090606924], a=1.3962634015954636, v=1.0471975511965976)
$ 24 “Waypoint_30”
movej([0.9122053691275309, -1.3541752492135488, 2.3195823187871376, -2.519265660046203, -1.5554524920032318, 3.074064614348338], a=1.3962634015954636, v=1.0471975511965976)
$ 25 “Waypoint_31”
movej([0.9122242243080487, -1.3334427702244058, 2.3253765732845233, -2.5457509049462597, -1.5554524920032318, 3.074064614348338], a=1.3962634015954636, v=1.0471975511965976)
$ 26 “Waypoint_32”
movej([0.9122053691275309, -1.3541752492135488, 2.31956346360662, -2.51924945737413, -1.5554524920032318, 3.074064614348338], a=1.3962634015954636, v=1.0471975511965976)
$ 27 “Waypoint_33”
movej([1.0127134202043575, -1.38483290347964, 2.365885279597575, -2.5321885014309546, -1.5538006823160018, 3.17258729881069], a=1.3962634015954636, v=1.0471975511965976)
$ 28 “Waypoint_34”
movej([1.0127417029751342, -1.3578360879722504, 2.373255398949942, -2.565830989097761, -1.5538006823160018, 3.17258729881069], a=1.3962634015954636, v=1.0471975511965976)
$ 29 “Waypoint_35”
movej([1.0127228477946164, -1.38483290347964, 2.365885279597575, -2.5321885014309546, -1.5538006823160018, 3.17258729881069], a=1.3962634015954636, v=1.0471975511965976)
$ 30 “Waypoint_36”
movej([0.7152056121717583, -1.534057538262842, 2.547377085205383, -2.559847121791548, -1.558505413376884, 2.877342400048221], a=1.3962634015954636, v=1.0471975511965976)
$ 31 “Waypoint_5”
movej([0.7152150397620171, -1.509649423991981, 2.5542070771391625, -2.590340370869133, -1.558505413376884, 2.877342400048221], a=1.3962634015954636, v=1.0471975511965976)
$ 32 “MoveP”
$ 33 “Waypoint_1”
movep(p[-0.16491422010377074, -0.2889616960490904, 0.08977820818409682, -2.990867253088674, 0.9112659997294901, -0.03714440710006258], a=1.2, v=0.25, r=0.025)
$ 34 “MoveP”
$ 35 “Waypoint_1”
movep(p[-0.16491422010377074, -0.2889616960490904, 0.08977820818409682, -2.990867253088674, 0.9112659997294901, -0.03714440710006258], a=1.2, v=0.25, r=0.025)
$ 36 “CircleMove”
$ 37 “Waypoint_3”

$ 38 “Waypoint_4”
movec(p[-0.11334423078220371, -0.33756318667154395, 0.0893106872941587, -2.9906295321371448, 0.9084318970986581, -0.03600700860586537], p[-0.16180156505488658, -0.38923336070997144, 0.09094760731659506, -2.9907473981412718, 0.9078415477539128, -0.03613806271628099], a=1.2, v=0.1, r=0.025)
$ 39 “CircleMove”
$ 40 “Waypoint_7”

$ 41 “Waypoint_8”
movec(p[-0.21343313150120966, -0.3409373476491314, 0.09104685832970001, -2.9908313209631068, 0.9091432987361415, -0.036845622903562865], p[-0.16566185083507928, -0.2896398133352871, 0.08977500519394872, -2.9869359356408522, 0.9066946880373195, -0.04171997485037223], a=1.2, v=0.1, r=0.0)
$ 42 “MoveJ”
$ 43 “Waypoint_2”
movej([0.7153133743221072, -1.5511373021998727, 2.53837858133081, -2.52716824969675, -1.5586913006893992, 2.875358878999821], a=1.3962634015954636, v=1.0471975511965976)
$ 44 “MoveL”
$ 45 “Waypoint_2”
movel([0.7153133743221072, -1.5511373021998727, 2.53837858133081, -2.52716824969675, -1.5586913006893992, 2.875358878999821], t=3.0)
$ 46 “Waypoint_9”
movel([0.6236825723301582, -1.477339167481995, 2.478097719134525, -2.5575642827418985, -1.5571205043625342, 2.781621040141847], a=1.2, v=0.25)
$ 47 “Waypoint_10”
movel([0.6236448619691226, -1.4474532845166352, 2.4859203692109046, -2.5962346800626244, -1.5571205043625342, 2.7815076214373375], a=1.2, v=0.25)
$ 48 “Waypoint_16”
movel([0.8252428669514869, -1.5604846269140245, 2.6186767359318197, -2.6124039880532592, -1.5561244714621552, 2.985678738585739], a=1.2, v=0.25)
$ 49 “Waypoint_34”
movel([1.0127417029751342, -1.3578360879722504, 2.373255398949942, -2.565830989097761, -1.5538006823160018, 3.17258729881069], a=1.2, v=0.25)
$ 50 “Waypoint_28”
movel([0.8233087408834951, -1.291530644063278, 2.26065236316329, -2.5190874306534026, -1.556570488360478, 2.9845130090606924], a=1.2, v=0.25)
$ 51 “Waypoint_10”
movel([0.6236448619691226, -1.4474532845166352, 2.4859203692109046, -2.5962346800626244, -1.5571205043625342, 2.7815076214373375], a=1.2, v=0.25)
$ 52 “Waypoint_9”
movel([0.6236825723301582, -1.477339167481995, 2.478097719134525, -2.5575642827418985, -1.5571205043625342, 2.781621040141847], a=1.2, v=0.25)
$ 53 “Waypoint_10”
movel([0.6236448619691226, -1.4474532845166352, 2.4859203692109046, -2.5962346800626244, -1.5571205043625342, 2.7815076214373375], a=1.2, v=0.25)
$ 54 “Waypoint_34”
movel([1.0127417029751342, -1.3578360879722504, 2.373255398949942, -2.565830989097761, -1.5538006823160018, 3.17258729881069], a=1.2, v=0.25)
$ 55 “Waypoint_35”
movel([1.0127228477946164, -1.38483290347964, 2.365885279597575, -2.5321885014309546, -1.5538006823160018, 3.17258729881069], a=1.2, v=0.25)
$ 56 “Waypoint_27”
movel([0.8233087408834951, -1.311938526326118, 2.255112659994481, -2.492562122489485, -1.556570488360478, 2.9845130090606924], a=1.2, v=0.25)
$ 57 “Waypoint_28”
movel([0.8233087408834951, -1.291530644063278, 2.26065236316329, -2.5190874306534026, -1.556570488360478, 2.9845130090606924], a=1.2, v=0.25)
$ 58 “Waypoint_16”
movel([0.8252428669514869, -1.5604846269140245, 2.6186767359318197, -2.6124039880532592, -1.5561244714621552, 2.985678738585739], a=1.2, v=0.25)
$ 59 “Waypoint_17”
movel([0.8252617221320047, -1.591815705139318, 2.610816369102818, -2.572964383256948, -1.5561244714621552, 2.985678738585739], a=1.2, v=0.25)
$ 60 “Waypoint_30”
movel([0.9122053691275309, -1.3541752492135488, 2.3195823187871376, -2.519265660046203, -1.5554524920032318, 3.074064614348338], a=1.2, v=0.25)
$ 61 “Waypoint_31”
movel([0.9122242243080487, -1.3334427702244058, 2.3253765732845233, -2.5457509049462597, -1.5554524920032318, 3.074064614348338], a=1.2, v=0.25)
$ 62 “Waypoint_13”
movel([0.7142170126866592, -1.5033662386848032, 2.560409472791512, -2.6125336094298417, -1.5568450589372969, 2.874492455491799], a=1.2, v=0.25)
$ 63 “Waypoint_12”
movel([0.714226440276918, -1.5329328874650308, 2.5526487507978564, -2.5756847064367876, -1.5568450589372969, 2.874492455491799], a=1.2, v=0.25)
$ 64 “Waypoint_18”
movel([0.7331083376267294, -1.3915349678072964, 2.3710384451741837, -2.5329090769218716, -1.5570318330824549, 2.89377095079202], a=1.2, v=0.25)
$ 65 “Waypoint_19”
movel([0.7331083376267294, -1.3690286317845626, 2.3773876236131737, -2.5608917627081453, -1.5570318330824549, 2.89377095079202], a=1.2, v=0.25)
$ 66 “Waypoint_25”
movel([0.9316435070857895, -1.4579481738666173, 2.497083319977184, -2.590648221638516, -1.554650891167726, 3.0918942647943353], a=1.2, v=0.25)
$ 67 “Waypoint_26”
movel([0.9316529346760483, -1.4809353233841405, 2.4914829862177332, -2.562187113609774, -1.554650891167726, 3.0918942647943353], a=1.2, v=0.25)
$ 68 “Waypoint_56”
movel([0.6857898048356728, -1.4664200301787766, 2.46424642229637, -2.5449893673746145, -1.559161190163735, 2.846549844953611], a=1.2, v=0.25)
$ 69 “Waypoint_57”
movel([0.6857615220648962, -1.444068600649273, 2.470539035193807, -2.572899572568657, -1.559161190163735, 2.846549844953611], a=1.2, v=0.25)
$ 70 “Waypoint_58”
movel([0.8261048491057192, -1.5164781056505041, 2.5586113980362324, -2.581101480220454, -1.5564732723280414, 2.984610237077354], a=1.2, v=0.25)
$ 71 “Waypoint_59”
movel([0.9584046264451206, -1.3853783998309852, 2.391893489228279, -2.54941865301026, -1.5525863447747374, 3.1224113744637076], a=1.2, v=0.25)
$ 72 “Waypoint_60”
movel([0.8235067202789316, -1.3332501533701404, 2.3080234092299854, -2.510748243705309, -1.5562626375910948, 2.984885682502591], a=1.2, v=0.25)
$ 73 “Waypoint_61”
movel([0.6852955050931232, -1.446474112621795, 2.463446381008035, -2.5477753760911632, -1.5608778105392558, 2.8467766823626297], a=1.2, v=0.25)
$ 74 “Waypoint_67”
movel([0.685314360273641, -1.4755653168399907, 2.455468818046839, -2.5103994428394225, -1.5608778105392558, 2.8467928850347026], a=1.2, v=0.25)
$ 75 “Waypoint_65”
movel([0.7512009251621345, -1.5109909093657465, 2.505013738595499, -2.5253220079446472, -1.558318639231726, 2.9114709918456603], a=1.2, v=0.25)
$ 76 “Waypoint_6”
movel([0.7512197803426524, -1.483377235442442, 2.5124875678323004, -2.56041422729832, -1.558318639231726, 2.9114709918456603], a=1.2, v=0.25)
$ 77 “MoveP”
$ 78 “Waypoint_62”
movep(p[-0.1654608094368805, -0.3050515583190921, 0.09074255506523285, -2.978974595500004, 0.9047540945859917, -0.047590010174714766], a=1.2, v=0.25, r=0.025)
$ 79 “CircleMove”
$ 80 “Waypoint_63”

$ 81 “Waypoint_64”
movec(p[-0.12918811512289607, -0.3388251479128196, 0.09159825532482757, -2.975159172094294, 0.9091969875160618, -0.047828483334255455], p[-0.16272947830853993, -0.37540537740146757, 0.09174121003793413, -2.9746820405209093, 0.9083317574827601, -0.04840660978457683], a=1.2, v=0.1, r=0.025)
$ 82 “CircleMove”
$ 83 “Waypoint_630”

$ 84 “Waypoint_640”
movec(p[-0.19926293395194192, -0.3409418682706826, 0.09118984712675672, -2.9760891489920756, 0.9128001319285083, -0.04836586638902162], p[-0.16547861949671744, -0.3050714752983104, 0.0907832937936452, -2.9791296124329074, 0.905101737557798, -0.04752396969079929], a=1.2, v=0.1, r=0.0)
$ 85 “MoveJ”
$ 86 “Waypoint_66”
movej([0.7511767010488593, -1.5140361935922029, 2.504185408144801, -2.5211119017983057, -1.5582299559674224, 2.911640676486103], a=1.3962634015954636, v=1.0471975511965976)
$ 87 “Waypoint_9”
movej([0.6236825723301582, -1.477339167481995, 2.478097719134525, -2.5575642827418985, -1.5571205043625342, 2.781621040141847], a=1.3962634015954636, v=1.0471975511965976)
end
end

Disclaimer: While the Zacobria Pte. Ltd. believes that information and guidance provided is correct, parties must rely upon their skill and judgement when making use of them. Zacobria Pte. Ltd. assumes no liability for loss or damage caused by error or omission, whether such an error or omission is the result of negligence or any other cause. Where reference is made to legislation it is not to be considered as legal advice. Any and all such liability is disclaimed.

If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.

Author:
By Zacobria Lars Skovsgaard
Accredited 2015-2018 Universal Robots support Centre and Forum.


Tweet

Follow @zacobria