Giant robot arm

Yaskawa Motoman K10S

robot in sudoroom
humans bringing the robot to sudoroom
as it was found

robot axes and their directions robot homed position pose

You can even make the robot arm paint for you!


what is it for?

It's a six-axis CNC machine that is rated to move 10 kilograms around in any orientation, with 1mm accuracy.


software for communicating with the robot from a regular computer

https://github.com/jerkey/yasnac

Use motofile and motocommand while the REMOTE button on the robot is lit up. To enable the REMOTE button, you must enable remote operation first

Your computer must be connected to the robot over an RS232 serial cable. motofile lets you send job files to the robot, and motocommand lets you tell the robot what to do, as if you were pressing buttons on the control panels.
motomove can move the robot directly (without loading a job file) but it is poorly supported in the robot's firmware and was never considered complete by the manufacturer (they moved onto the MRC control system development for this) so use it with caution.

documentation

enabling relative job function and the communications option

Ben says:

"If I remember, press OP2, enter the magic code 24.#4.#2 then set these:

set SD079 to 1 for relative job (x,y,z coordinates)

set SD110 to 1 for data communication (remote mode)

and reboot the robot."

Getting the robot working if it has forgotten its purpose

  • There is a battery inside the connector compartment of the robot arm, and another next to the computer boards on the door of the control cabinet. If the batteries go dead or are disconnected, the robot will act stupid and refuse to boot up with some dumb error screen.
  • Homing https://pdfcoffee.com/erc-homing-pdf-free.html basically, pose the robot as shown above, press OP2, press 0 eight times, ENTER, and then you can tell it that it's presently homed. You can also home fewer than all axes by selecting which axes you want to home, before pressing the button for "Setting" which is how you tell it to save the present position. As of 2022/12/7 the absolute encoder values for SLURBT are: 5771,30829,-25795,-792,66,-1047. IF the physical limit switch (for example on the S axis) is hit, you have to HOLD the "overrun" bypass button next to the serial port while booting up and CAREFULLY jogging S- or S+ to fix that problem, and then you can let go of the button.
  • There is a switch inside the control cabinet on the edge of the CPU1 card which puts it into MAINT mode (switch up) or PARAM mode (switch down), normally the switch is in the middle. Hard-power cycling the robot is how you reboot it. picture of switch location close-up picture of switch
  • Homing the robot is easy compared to getting the robot to be in the mood to be homed, especially after replacing the memory batteries. Don't be like this guy: https://www.robot-forum.com/robotforum/thread/14021-erc-k6sb-make-abs-data/ the PDF mentioned therein: MotomanERChomePosition.pdf
  • after the robot is working, you will have to remind it that you paid for all the deluxe options, like rectangular coordinates and remote access serial stuff. The "magic code" is 24.#4.#2 and the instructions for entering it are above, recounted by Ben.
  • If the robot wakes up to a MAKE ABS DATA error it's probably having trouble communicating with some of the position encoders on the motors. The ABSolute position encoders are backed up by a battery and they can get into a state where they don't work right, that's what's described in the previous links is to get them to cooperate.
  • The controller wants to see eight position encoders. Six motors of the robot, a 7th giant heavy motor/gearbox assembly on the floor, and an 8th simulated by an arduino hanging by the wires from the circuitboard inside the cabinet. We formerly used hardware to get it to boot up without errors, but moving jumpers on one of the circuit cards allowed it to be content with only the 6 axes of the arm itself.

Electrical components

tech03_03_01.gif

motoman04.gif

Servo contactor wiring notes: coil 160 ohms, connector CN2 pins 2 and 6. CN2:6 is also on relay socket and CN5:7, assumed common. CN2:2 goes to CN5:8 and on to CN2CN:4 (near main on/off switch) where it gets jumped to CN2CN:3 by RLY12

Coordinate conversion and 3d model

https://github.com/sudoroom/sudo-robot-arm

Cool Projects

Drawing with the Robot Arm Project

Substack and Jake went ahead and hacked the robot (see the blog post ). now you can upload simple drawings and get it to draw for you.

 

15:25 <@Rab> No small matter unfortunately, unless you get really imaginative on the CAM side and utilitize the robot's axes of movement in very simple ways. 15:27 <@Rab> I think it'll probably need to be somebody's brilliant custom CAM because open-sores CAM is pretty seriously limited, and more than 3-axis commercial CAM is insanely expensive. 15:28 <@Rab> PyCAM might be a start, that's what I'll use if I do anything 3D. 15:38 <@Rab> Autodesk Fusion 360 includes Autodesk's 3+2 CAM, which is probably the best and most usable CAM you'll find anywhere for zero dollars. But fuck that proprietary cloud shit. 15:42 <@Rab> CAM is one of those software applications which is so hard, anybody skilled enough to do it right also wants to get paid. That's a direct challenge to Sudo Room BTW. 15:45 <@Rab> You could join ##linuxcnc on feenode and see if anybody has any ideas.

Serial port pinout to connect to a regular PC (DTE) 9-pin socket

DB25 pins DE9 holes Signal (DE9 end) RJ45 pin#
2 2 RX 2
3 3 TX 3
4 1 DCD 1
5 4 DTR 4
7 5 GND 5