I'm tried train AR3 by my hand without change code and structure, supprisingly it is working. It is not very user friendly, by modify source code I think can make it reasonable user friendly.
How I train 3 step program as above video: 1. Put arm at rest position
2. record new position
3. press emergency stop
4. move arm J1/J2/J3/J4/J5/J6 by hand
5. remain emergency stop button, go to AR3 software, click jog J1 (to force application reload position from encoder)
6. teach new position in ar3 software.
7. move arm J1/J2/J3/J4/J5/J6 by hand
8. click jog J1 again
8. record new position
9. add 1 row jump back to tap1.
10. release emergency button
11. done and you can run your program
During setup you will receive warning say some join no calibrated or what, I simply ignore it cause it will be fine.
to make training become more efficient, i added 1 button at arm so that it can send trigger back
i borrow 5v and ground from limit switch 6 and connect to button.
when press button, it return 5v to electronic enclosure.
i connect ground to all encoder (except J4) "ena-", and this button's cable connect to all "ena+"
I'm tested, the J4 only have 1 ENA port and NPN. We have to use NOT gate to reverse the signal (Ground to 5V, 5V to Ground) before connect into this ENA port, or else the J4 will fail to operate. If you feel J4 is not important in training, can simply leave it's ENA not connected
I think using emergency stop button is not kind of good approach, it is just a prove of concept.
we may overall upgrade the software and structure like: 1. use enable pin to do that to avoid use too much emergency button. Like add a 'training button' at robot arm
2. upgrade software to make it naturally support train by hand.
3. when e-stop, whole arm weight will collapse the position, so it is more advisable to have 6 physical switch within arm to allow us disable specific motor without collapse whole body.