Project in mine, zero experience

I am a web developer slash java programmer. I have always wanted to play around with automation that interacts with real world environment. There is a tedious hand-made process I would like to automate. Don’t laugh, it is sort of like knitting or crocheting, but on a slightly smaller scale. The human task is very repetitive and extremely time consuming.
I was thinking of using this project simply as a means to learn about robotics, hardware, low level programming, etc.

At a high level, I envision two robotic arms hovering over the workspace like an arc welder would in industrial environment. One arm would manipulate a thread, the other would manipulate the needle. I wish to control the arms from a PC, with a software I could write with Java since that is a language I am fluent with. The movements seem pretty complex to me, so to program them in, I would need to have a training environment to assist with servo movement instructions.

A perfect training environment would allow me to manually move one arm, record and servo positions and repeat it on the other arm. It would allow me to also replay the steps at reduced speed, and allow me to replay the steps like a debugger, one instruction at a time, go back an instruction, go forward, pause, edit, repeat, etc. A more high end trainer would allow to plot a virtual path in the desktop app, that translates it to servo instructions. Is this what FlowStone is about?

I am totally new to this. What platform would be the best for something like this? I would like the platform to be the most widely used, documented and discussed, like Arduino. But is SSC32 all I would need? In the future I would like to introduce machine vision to the project, so which platform would support all of this considering my lack of experience in this field. Compatibility out of the box is important.

Precision robotic arms that could work with typical thread/needle hardware will be very $$$+ (check ebay for industrial grade arms). Servo based hobby robotic arms are less precise, but can be used in projects like below with appropriate programming.

youtube.com/watch?v=quN37YskoaM

The SSC-32 is great for controlling R/C servo motors with signals sent from your computer or a microcontroller. If you opt for a more industrial-type arm, it likely cannot be used. The AL5 series arms offer incredible value for their capability, and you can certainly consider them, though if you want to operate them 7 days a week 365, then you might consider something more industrial, since RC servos need time to “rest”. To control motors (which are used in robotic arms) from a computer, you only need the appropriate motor controller (does not need onboard intelligence). If you plan to add machine vision later on, your computer should be the one taking care of this - not need to connect it directly to the arm or the controller.

Thanks for the link zoomkat (an incredible precision for a 6 legged, walking cnc gantry).

CBenson, that makes sense, the servos for hobby level projects cannot scale up to mass production usage. I did not realize they needed cool off periods. I read some servo motors report about their internal temp, but even so, they probably still suffer from fatigue. So what is the difference between industrial and hobby level motors? Are they stepper motors, DC with complex gearing and positioning? How would a hobbyist scale up a prototype to industrial level machine?

I read a document put out by Drexel university about the makeup of the Da Vinci medical robot. The technical aspects are beyond imaginable - total of 48 dof!! Each arm is 7dof. Miniaturization is equaliy impressive. I see from product shots that they used pulley systems. It is amazing but is probably infinitely more difficult than mounting a servo on a bracket :slight_smile:
image.jpg

The electronics and actuators used can be quite different; small hobby servo motors vs industrial servo motors.

Depends on the arm; some can use geared steppers, though most use brushless motors with feedback.

It does not scale well; the smaller hobby arm would give you a solid foundation as to how an arm is built, but then you’d need start fresh with the industrial arm hardware and communication protocol.

I suppose same can be said about software development. A proof of concept often must be completely redesigned to work at production level.

Has anyone attempted to write a program to translate the output of this m.youtube.com/watch?v=VnFIpp1W0Vk simulator to ssc-32 language?
There are some other arm simulators out there too. Maybe some others haveintegrated with lynxmotion?

You are way ahead of yourself. Don’t start out thinking about “platforms”. Think “software”. If you have extensive software experience I suggest writing the controller software in Java FIRST before you even think about building any hardware. Used a graphic 3D package to draw a simulation of the mechanical parts and get that to work. Now with a working virtual robot you can see how the motors needs to work and what can of speeds and annular precision is required.

I STRONGLY suspect that for your application hobby type servos are NOT going to work unless you augment them with some kind of measuring system to provide exact location feedback. Yes servos have this internally but your mechanical system will have flexure and the servos, even expensive ones are not 100% accurate. You will at the very least need some kind of micro-switch limit sensors for self-calibration. Think about an ink-jet printer when you turn it on, it runs a self-calibration by running some parts into limit switches and counting steps.

Next step is to buy one or to motor and build a very simple device and characterize it’s performance. Measure the precision you can set and the real life speeds and put this information into thou Java simulation.

I’m doing exactly this to build a hexapod. I just got mu Java class “Leg” to work. It does forward and inverse kinematics and can draw a 2D diagram of the leg. My next task (for today) to to write a “body” class that stores the over all geometry and can translate between leg and bog cordite systems.

One HUGE advantage to using a PC (Well I’m using a Apple iMac) is the computer power. I’m working in double precision floating point and can do 600,000 inverse kinematic calculations per second using only one of the four CPU cores. That is an inside about of compute power ompared to a BASIC language controller normally used. I will likely end up using a TI “Launchpad” that has a ARM Cortex M4

But as I said about, do the software first. It would be a dumb mistake to select a hardware platform only to find it lacks the compute power you need to run all the loops.

Back to hardware. I but you will need to use stepper motors and not servos. but you will be able to figure this out if you have a working Java based simulation.

I guess I missed the post on the daVinci robot. I’ve worked with that and many of the other daVinci robot instruments. Yes, they are quite intricate and quite innovative (patented, of course!)

Alan KM6VV