Motoman K6SB Retrofit
Attached to the servos in the arm are two right angle transmitions that drive the belts, I need to make a adapter for the transmitions to the 8mm shafts and mounting points on my new steppers. Should be a fun project in itself.
Ethercat is a nice choice.
The retrofit will result in a nice robot.
Kuka has hardware limit switches if position is lost, a external reference calibrate point is another option.
About the software i have a few questions.
1. Will you drive the robot by g-code? For example teached in g-code or cam generated g-code?
2. What kind of interpolation are you intending to use for the rapids, so that the robot output looks dynamic.
3. Can the drives give trough the motor current? To stop the bot in case of a collision, or to play with external offsets.
4. It would be nice if you can get your hands on a interpolation model with external axis included, to move harmonic.
Good luck ! and nice project !
I was hoping you would pop in in case I needed help with the EtherCAT setup.
1: I dont know if normal G-Code will work as well as I hope but I will give it a go. I know it is limited as its not made for six axis robots. I was hoping to try to develop a open source hybrid. I have two working newer Motoman robots I am going to reverse engineer to get a working code setup. I will study robot language and try to come up with something that works.
2.,3,4, I am not exactly sure on at this stage. My plan is to get the robot retrofitted with the new motors installed, new grease on the joints and a new coat of paint then dive into the software side. I am sure its going to be a huge learning experience! But I have to get the robot working with external axises workinkg together. That is one of my main goals and EtherCAT will be a big part of that.
I can help with ethercat setup, but i have no experience with your drives. It looks like a PID setup instead of a step-dir signal.
Trough hal you have all things connected to linuxcnc with your field i/0, external axis and robot.
Without that you have to build on top of the etherlab-software, and that would be much more work, i have tried it, and it works.
But it's bare c.
The easyest way is to write everything on top of the external offsets branche.
Then you are free to move joints where you want to. The external offset branche overwrites more or less everything.
Then construct a robot Linux gui that give's commands via hal, where you connect the gui to the external offset parameters from joint 0 to 5 to your bot.
The nice thing about hal is, that we can do also real time calculation's with a component, eventually for rapid path calculations trough spline points. Or constructing interpolation models in several component's.
Here come's also a little invention above the water line for me. The real spline, wich output gives the same path if moving the robot
backward's (reverse interpolation) with the Linux reverse branche. So you have to go with negative adaptive speed.
What is the current state of negative adaptive speed? Is it already in linuxcnc? If not i got it for you. This is what you need :
I will explain a few things :
1. Reverse Adaptive Speed.
This has value 1 for 100% forward program speed, value -1 for 100% negative program speed.
So while the program is running and the robot moves, you can stand still at value 0. You can move forward or backward in the program, without starting at a previous program line. Very handy for robots.
2. External offsets.
You can give a joint a position and it will go there. Just like the hardware PID works, but then in the software.
With this app you have the power to correct welding path's real time trough input data from welding source or scanner on top of your arm. This app has many applications. For example milling machines can make z axis wave form's without coding them in g-code.
So with your robot you can do a pendle welding without coding it. Just select the screen button and give up the welding amplitude.
3. I will look for a interpolation model in coming time.
Steppers are a lot slower than servos. They also lose a lot of torque on the high end. Unlike ac servos. You get max torque around 800rpm and max rpm is around 1500. Compared to a servos 3000-3500. Keep that in mind when configuring it, you should also know the reduction ratios of the gearboxes so you can calculate the final drive ratios and speeds. It might be good to also take the reducers apart and clean them thoroughly.
You also need to build homing switches to the robot for homing. Either joint encoders, switches or use the drives builtin feature(not the best idea though). You can also manually set the home each time by hand but this isn't really repeatable unless you you something like a dial indicator etc.
I have also brought a copy of RoboDK to plan out my work cells in 3D. I will use that when I get to the stage of creating programs but like PlasmaC, I want it to be able to work on its own and not be tied to any one CAM program. This will be a pretty big project but one I hope will pay dividends in the future.
I have worked with robodk and the big issue with linuxcnc is that I couldn't find a way to turn a CIRC command(I'd, an arc) into either G2 or G3 command. You'd have to find a pythonic way(the post processors are in python) to evaluate the arc command determine if it's clockwise or counter-clockwise. Or somehow remap the linuxcnc interpreter so it understands singular arc command. Joint and linear commands are fairly easy to set as long as you configure inverse kinematics correctly.
The other issue I haven't really figured out is how to deal with multiple reference frames in linuxcnc. Robots use multiple and I don't know how this would really work and how you'd set up the additional reference frames used.
Depending if you want to program microcontrollers or not, check out these modules if you want to build custom applications for interacting with ethercat. www.bausano.net/en/hardware/ethercat-e-arduino/easycat.html I have an idea for an ethercat remote for linuxcnc
I made notes of the arc issue you mentioned in my linear rail thread and I have been keeping that in mind.
With the steppers I am going to be powering them with 80Vac with is nearly equivalent to 100VDC. They should be good for more than 1500 RPM at those voltages. But even so with the large gear reductions in the harmonic drives I do not think ultra high speeds will be necessary for my welding application so they should be fine I hope. We will see.
I have looked in the AB&T modules and I have brought three to experiment with.
I have not had much time to play with them yet as I have a few other projects going on but I want to try to get the EasyCAT set up to control these drives, I have high hopes for the modules.