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 aliasgroup_nameReturn a list of all available motorsReturn a list of all motors present positions, in the order of "$robot all motors" block list.
Usefull for some advanced programs.110iGet 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_namem1Return the index of a motor name in the "$robot all motors" block listmotor_namei1Motor < > is not in the available motors of your robot : For internal use onlyCompliance 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
stiffset 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
simulationReturn 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]].11111Reports a new list containing the items of the input list, but in the opposite order.1inputresultReports 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.1Reports 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#2Set 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
runningPlay 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 primitiveAll reports input are run concurently.
You can use this block to play concurently many recorded moveiterator11datamapmany1data lists111Takes 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.1Takes 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.1Takes 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.1Takes 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.1Create 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#2Stop recording the desired move record.
Be careful, you must have previously defined a move record with the "create move ... with motor(s) ..." blockmove_namemove_nameWorks as the map block (see map help), but it proceeds iterations concurently.1Play previous recorded move concurently. Inputs can be :
* move name (string)
* many moves name separated by whitespace
* any reporter block, like sequential or play sequentialyitemtmp_reporterTODO : understand why a sequential input blocks return items on a list rather than separated with whitespacePlay previous recorded moves sequentialy. Inputs can be :
* move name (string)
* many moves name separated by whitespace
* any reporter block like concurent or play concurently1Return 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.0elem1Play 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 primitiveReturn the index of a item in a listi103.5031startstart
stop
pause
resumemethodesmethodes
properties0.1Your robot host is unreacheblePlay 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 primitivemotor_nameoffoff
red
green
yellow
blue
pink
cyan
whitecariboucaribou
tetris
lapinpoppy.local6969