ABB 2400 1997 to LinuxCNC controlled robot arm ?

More
05 Dec 2020 13:18 #191120 by morphxp
Hello all,

Recentry I got suggestion buy ABB 2400, 1997 robot arm. It looks OK, but one issue - no control box.

Mechanics looks good, but for control I am thinking buy 6 Nema34 12,5 Nm motors, and at first point I was thinking about any Chinese Mach3 6 axis break out board, and other general stuff as needed like "Turck" limit switch and etc. But... As long as I use Mach3 I start dont like it more and more...

So today I read about Linuxcnc. But CNC is simple - 4 axis (X,Y,Z and A along Y axis), so G code can be generated by Fusion360 or other CAD/CAM software. But there it will dont work...

Assuming, that I am fresh with LinuxCNC, as I understand that for this project I need remember linux (Debian, Ubuntu) for using LinuxCNC. Mesa 7i76e board should be perfect for this too. Installiation looks fine for me. Config... Well this where it become messy for me...

As I see there are several UI for LinuxCNC to choose. Maybe is there are any user interface for just robots ?

As I see in other posts, when using robot arm config, all regular axis like X,Y,Z,A,B,C disapperar and become... joints.For regular ABB robot programming is quite simple - capuring positions as J or L movement, plus other actions like set/reset and etc... But on the other hand, one guy using axes for it, and it moves perfect with i (
). But as I understand its part of Kinematics. Is there are any software to set-up kinematics and transfer params to LinuxCNC or it must do manually in LinuxCNC ?

Thanks for patience and help :)
The following user(s) said Thank You: thefabricator03

Please Log in or Create an account to join the conversation.

More
05 Dec 2020 15:36 - 05 Dec 2020 15:40 #191126 by Aciera
I'm also working on replacing a robot controller with LinuxCNC.
If you just want to use gcode to control the robot in joint mode (meaning you know the angles of all the joints to position and orientate your tool) then you don't need anything but the regular LinuxCNC and a breakout board to drive the motors and to handle position feed back.
If you want to be able to command a move in cartesian world space then you will need to use a kinematic called "genserkins" that comes with LinuxCNC but has to be adapted to your specific robot geometry. This is done through the "DH-parameters".

Here is the part about the kinematics and how to derive the DH-Parameters:

forum.linuxcnc.org/10-advanced-configura...th-simulation#158467

First thing to think about is how you want to drive the motors and how to get the position feedback into LinuxCNC. So find out what kind of motors and what kind of encoders are used in the arm.
On the ABB arm it might be possible to replace the motors as most seem to be fairly regular servos. On my MELFA it's pretty much impossible because all the motors are mounted inside the arm and most have hollow shafts to feed the cabling through.
Encoders are usually absolute type and might be compatible with linuxCNC or not.

The other thing you should be aware of is that usually the things you see on youtube is really "just" running a CNC gcode on a 6 axis robot. It looks cool but is actually of very limited use as these arms are not built for machining. Very few cams are able to deal with robotic arms and if one does it probably does not spit out gcode that can be used on LinuxCNC. The regular gcode that you see used in the youtube videos can only be run inside a limited area of the robots work space because the math inside the kinematic suffers from "singularities" where the solutions for the joint angles become infinite. All robot controllers have this problem not only LinuxCNC.
So in order to move beyond such a singular point you will need to control the robot in Joint mode which does not require a kinematic model. LinuxCNC does not regularly come with the ability to switch between different kinematic but there is a branch that can.
www.panix.com/~dgarrett/stuff/switchkins.html
Anyway, it's a fun project that provides a LOT of opportunities to learn but it will involve a fairly steep learning curve.

[edit]
And no there is no GUI that is specific for robots. Yet.
Last edit: 05 Dec 2020 15:40 by Aciera.
The following user(s) said Thank You: thefabricator03

Please Log in or Create an account to join the conversation.

More
10 Dec 2020 21:17 #191605 by newbynobi
I do not know any gcode command to control a joint move. Is that new?

How to move joint by 120 machine units?
G0 J1 120.000
Would be nice, as such commands could be used for handling units.

Norbert

Please Log in or Create an account to join the conversation.

More
11 Dec 2020 04:04 - 18 Jan 2022 16:33 #191640 by Aciera

I do not know any gcode command to control a joint move. Is that new?



Using the switchkins branch you can switch between trivial and nontrivial kinematics in gcode. Very useful, but [due to lack of user feedback and testing] there has been resistance to merge that with master.
Last edit: 18 Jan 2022 16:33 by Aciera.

Please Log in or Create an account to join the conversation.

Time to create page: 0.162 seconds
Powered by Kunena Forum