Roles Founding Pro, Tactile Sensor Beta Testers
Full Name Matthew Bush
Job Title COO/Cofounder
Country US - United States
Company (optional) Hirebotics, LLC
Unfortunately, not if you are returning a list, it cannot contain anything other than numbers or poses. We have a feature request in to UR to support strings and Boolean in lists but it has not been released at this time.
Are you using a commercial xmlrpc server? We have our own that we use and just make sure that we aren't returning any types that are not accepted.
@rafaelrojas lists can only contain numbers or poses, not strings or lists. The error you are receiving is trying to tell you that you are returning the wrong type of value for the type of variable you have defined. Make the server return a list of numbers and you should not have any error.
Another thing to understand, variables are statically typed in URscript so once a variable is declared you cannot change the type of data being stored in a variable dynamically. For instance, if you declare variable "x" as 1 you cannot later change the value to "blue" without throwing a type error.
Here is a screen shot of a program in Polyscope that gets the current position of the TCP, creates a rotation vector list (rx,ry,rz) in radians and then uses rotvec2rpy() to generate the rx,ry,rz in Roll Pitch Yaw.
You can see the variables on the right side, here are screen shots from the move screen as well showing corresponding values for this position
Does that answer the question?
Lists (arrays, vectors, whatever you call them) are statically sized in UR. You have to predefine the size of array that you want to use before you can use it. Then you cannot dynamically change the size of the list while in operation and lists can only be around 250 elements long before there starts to be issues.
myList = [1,2,3,4,5,6,7.....n] #You have to actually predefine this, it does not care what the values are just so long as there are values i = 0 #counter for our while loop while i<length(myList): myList[i] = analog_in(0) i=i+1 sleep(0.5) end
Are you wanting to write random words or predefined words? If you want to write random words and use Polyscope you could use sub-programs and create one for each letter as well as space, then you could pass into the robot each individual letter of the word and call the appropriate subprogram. The issue that I see is that there is no use of strings in lists so you would need to pass each letter in individually or convert the letters to a number. If you convert to numbers that would also allow you to use switch case statement instead of subprograms.