data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADyUlEQVR4nO3Sz2vbdRzH8a9QvbQMQY+W0REvtXas/0DPQ/DgxaPpRTwKSlZDV4Z4EWq3YuKl4MmDIKQ7hBZzaCNiQ8yPQoKQ7LSbhW2s5Zu0Sbt8Xx5cI/XSHdbvK7DnA958v1/48v2++fAMJKlWq6lSqajdblumXq8rl8sJr56gXC6r1Wqp3W5feO33+8p//LYef/HOS5vO08fD72cyGfd5IGZBsVhUs9lUo9HQxMSEFhYWlM1mtbi4qKWlJWWzWY2NjanZbKpa+l1halKD/Qc6+jGpKHyi7toHw+fB/gMd//y5uvdu6qT6i/o7P6jz9Q1FRwcK78wq6jzRs4dVnf5VUHTSU5iaVHR0MPx/o9FwnwdiFpRKJVWrVdVqNU1NTWlubk7z8/NKJpPKZDJKJBIaHx/X3t6eKn/8pjA1qeONJUUnx+p+/6Gi/tHw+ewadZ8qvD2t/k5Wg0cP1blzXdHhvrr3bip6diINBucCPPt/tVp1nwdiFmxtbalUKml3d1etVku1Wk2NRkOHh4dqtVrqdDqq1+sql8v683mAva1vFabfVe/+ksJ04r/n59fotK8wnfh3FqfUy3+j8Ktr6t1f1vFPnylcfk/h8vQwwLP/l0ol93kgZsHm5qaKxeILzc6veYWpyYvn1tUXey81qYNHfw+/n06n3eeBmAWSlM/nlcvlVCgULpzt7e2XOoVCQRsbG1pZWXGfBQyCs5soiqyDV1Nw8SvA5SFAWBEgrAgQVgQIKwKEFQHCigBhRYCwIkBYESCsCBBWBAgrAoQVAcKKAGFFgLAiQFgRIKwIEFYECCsChBUBwooAYUWAsCJAWBEgrAgQVgQIKwKEFQHCigBhRYCwIkBYESCsCBBWBAgrAoQVAcKKAGFFgLAiQFgRIKwIEFYECCsChBUBwooAYUWAsCJAWBEgrAgQVgQIKwKEFQHCigBhRYCwIkBYESCsCBBWBAgrAozR7RtvulcYOQQYk/X1da3NcNz/x4nEZHX2da3NBOqEoXuVkUKAMVmbCc7N3etvuFcaCQQYg+T0W+fi+2j2qnulkUGAMbg789owvr1qxb3OSCHAS7a6ujqM7/T01L3OyCHAS/bd+2P6cuaKe42RRYCX7Nann7hXGGkECCsChBUBwooAYUWAsCJAWBEgrAgQVgQIKwKEFQHCigBhRYCwIkBYESCsCBBWBAgrAoQVAcKKAGFFgLAiQFgRIKwIEFYECCsChBUBwooAYUWAsCJAWBEgrAgQVgQIKwKEFQHCigBhRYCwIkBYESCsCBBWBAgrAoTVP0fP1TX1oxtUAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC<#1>Context >> a CommandBlockMorph ("script variables %scriptVars...") a VariableFrame {}Context >> a CommandBlockMorph ("script variables %scriptVars...") a VariableFrame {}Context >> a CommandBlockMorph ("script variables %scriptVars...") a VariableFrame {}Return a list of motors which are grouped in the input alias
group_name
Return a list of all available motors
Return a list of all motors present positions, in the order of "$robot all motors" block list. Usefull for some advanced programs.
110i
Get a defined <register> <value> of one motor. Example of some registers : torque_limit, angle_limit, present_temperature, present_position... For more informations about registers, look at the online documentation : http://$robot-project.github.io/pypot/
present_positionposition=present_position speed=present_speed load (force)=present_load temperature=present_temperature voltage=present_voltagemotor_namem1
Return the index of a motor name in the "$robot all motors" block list
motor_namei1Motor < > is not in the available motors of your robot :
For internal use only
Compliance property make motors activly become soft and movable. You need to activate the compliance if you want to record a movement by demonstration. The motor(s) input can accept : - string of a motor name - string of many motors separed with spaces - a Snap! list of motors like the reporter block "$robot all motors"
motor_namecompliantcompliant stiff
set motor to the desired position (angle) in the desired time. The motor(s) input can accept : - string of a motor name - string of many motors separed with spaces - a Snap! list of motors like the reporter block "$robot all motors"
0motor_name2mi1querry_URL/motors/set/goto/:;#1#2:
Reset the simulation in V-rep. It is usefull if you have connection issues with V-rep.
robotrobot simulation
Return a list of all previous records filename.
Take any number of input lists, and create a new list containing the items of the input lists. So APPEND [A B] [C D] where the [,,,] are lists reports the list [A B C D] not [[A B] [C D]].
11111
Reports a new list containing the items of the input list, but in the opposite order.
1inputresult
Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.
1
Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot. For a list of numbers, using < as the comparison function will sort from low to high; using > will sort from high to low.
1even itemsmerge11#1#2
Set a defined <value> to a defined <register> of one or many motors. Example of some registers : torque_limit, angle_limit, safe_compliant, compliant... For more informations about registers, look at the online documentation : http://$robot-project.github.io/pypot/ The motor(s) input can accept : - string of a motor name - string of many motors separed with spaces - a Snap! list of motors like the reporter block "$robot all motors"
position=goal_position speed=moving_speed max torque(%)=torque_limit compliancy(True or False)=compliantmotor_namevalue(s)m/motors/set/registers/::;#1#2::
allall running
Play the movement of a previous recorded move. The <record_name> input is the name of a .record filename which should be in the same directory where you started the web server (with the command "$robot-snap $robot-ergo" for example). You can change the play speed with the <speed> input.
move_name1ugly wait to stop feature. TODO : change with a looking at running primitive
All reports input are run concurently. You can use this block to play concurently many recorded move
iterator1
1datamapmany1data lists
1
1
1
Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of adding them all, so ISUM (4) (100) (8)) reports 112.
1
Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of multiplying them all, so (PRODUCT (4) (100) (8)) reports 3200.
1
Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE only if all of the inputs are TRUE, otherwise FALSE. Like AND but for multiple inputs.
1
Takes any number of Boolean (true/false) inputs (use the left and right arrowheads to adjust the number of input slots) and reports TRUE if at least one input is TRUE, otherwise FALSE.
1
Create and start the record of a defininied move.. The <record_name> input is used to store the recorded move. The move is stored in the directory where you started the web server (with the command "$robot-snap $robot-ergo" for example), and can be replayed even if you close Snap! The motor(s) input can accept : - string of a motor name - string of many motors separed with spaces - a Snap! list of motors like the reporter block "$robot all motors" If the motor(s) input is empty, all motors will be recorded.
move_namemcompliant/primitive/MoveRecorder//start/;#1#2
Stop recording the desired move record. Be careful, you must have previously defined a move record with the "create move ... with motor(s) ..." block
move_name
move_name
Works as the map block (see map help), but it proceeds iterations concurently.
1
Play previous recorded move concurently. Inputs can be : * move name (string) * many moves name separated by whitespace * any reporter block, like sequential or play sequentialy
itemtmp_reporterTODO : understand why a sequential input blocks return items on a list rather than separated with whitespace
Play previous recorded moves sequentialy. Inputs can be : * move name (string) * many moves name separated by whitespace * any reporter block like concurent or play concurently
1
Return a list of all aliases. Alias is a keyword for representing many motors at once.
Return a sublist which contains items in the interval of 2 input numbers. Original list is not modified.
0elem1
Play in reverse the movement of a previous recorded move. The <record_name> input is the name of a .record filename which should be in the same directory where you started the web server (with the command "$robot-snap $robot-ergo" for example). You can change the play speed with the <speed> input.
move_name1ugly wait to stop feature. TODO : change with a looking at running primitive
Return the index of a item in a list
i10
3.5031
startstart stop pause resume
methodesmethodes properties
0.1Your robot host is unreacheble
Play the movement of a previous recorded move. The <record_name> input is the name of a .record filename which should be in the same directory where you started the web server (with the command "$robot-snap $robot-ergo" for example). You can change the play speed with the <speed> input.
move_name1ugly wait to stop feature. TODO : change with a looking at running primitive
motor_nameoffoff red green yellow blue pink cyan white
cariboucaribou tetris lapin
poppy.local6969