Asked — Edited

This Is For All The Scripters Out There

hi guys, I am new to the EZ world and i just had a suggestion for anyone experimenting with the EZ-B

While I was working on a project of mine, I was wondering if there was a way to control servo movements of a robot through a 3d model

I had 3d models of my robot created in blender, an open source 3d animation program but I didn't know how to control it. The biggest problem was that blender is in python and EZ- Builder is C++ and i don't know how to use a compiler.

The process would be that:

when you move parts of the 3d model, blender would constantly send out movement scripts to the ARC, ARC would then send scripts to the EZ-B which will then move the servos to specific degrees

some guy did this on a robotic arm but with an arduino

It's too complicated for me to learn. Remember, this is just a suggestion, if anything goes wrong in an attempt, I hold no responsibilities. If anyone tries and succeeds..... congratulations

let me know if you succeed:D


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

#1  

@wallekid1,

That sounds really cool...if blender can execute python scripts then you might want to try a python script I use in Eventghost. Eventghost is a clever automation program that does alot of cool automation tasks, including executing python scripts. It is not an elaborate script but it works. This python script sends ARC commands via TCP/IP connection. You are limited by the commands within ARC but those commands are becoming very robust and will probably do what you need.

Your challenge will be to get the variable from Blender (like the desired servo position) into the script.

There might be an better way through the SDK, but I that will not be any easier especially since you would need to compile code.

This script will connect to a localhost (or any IP you wan) that is running ARC on port 6666:

##client.py from socket import * import time HOST = 'localhost' #or the IP address of the machine where ARC server is running PORT = 6666 #our port from before ADDR = (HOST,PORT) BUFSIZE = 4096 cli = socket( AF_INET,SOCK_STREAM) cli.connect((ADDR)) data = cli.recv(BUFSIZE)

cli.send('enter your ARC command here\n') ## like 'Servo(D4,65)\n'

cli.send('say(how are you today)\n') cli.close()

I hope this helps you and good luck.

v/r

Kevin

PRO
USA
#2  

Great idea, something I have always thought about as i use Lightwave 3D. You'd have to get each 3D part that moves locally,( rotation and translation) and have those values be translated to servo positions (1 thru 140 steps). That my friends would be pretty cool indeed. One better. How about a telemetry suit you wear with potentiometers at all the moving joints, then have that motion repeated on your robot?!

Will

#3  

Guys, I really appreciate the tips but i only know the basics of python (watched like 44 youtube tutorials) http://www.youtube.com/watch?v=4Mf0h3HphEA&feature=relmfu

other than that, i have no knowledge of scripting what so ever

your advice is probably quite helpful but it's like rocket science to me at the moment

this is the guy who did it with an arduino

http://justindailey.blogspot.com/2011/03/real-time-controlled-robotic-arm.html

i have experience with blender (for 3d modeling) so i recommended it

if anyone ever makes a template with EZ-B and blender, i might give it a shot but for the time being, i'll just leave to the professionals