
Before powering up a joint module for the first time, don't rush to mount it on the robot
I compared "buying an integrated joint module" vs "assembling a joint myself from motor, reducer, encoder, driver" — actually ran through it. Conclusion first: with the self-assembled setup, just sorting out the wiring and getting the encoder readings to line up ate a whole afternoon; with the integrated module, once it's out of the box, what's left for me is basically four things — mount it, power it, communicate with it, jog it. But simple doesn't mean you can just power it up carelessly — my first power-up tripped the supply into protection.
Let me first clarify what this thing is. An integrated joint module packs four things — motor, reducer, angle sensor, driver — into one metal housing. The motor turns, the reducer converts "fast and weak" into "slow and strong," the angle sensor (i.e., the encoder) tells the controller where it's currently rotated to, and the driver listens to commands and sends current. The wires coming out are usually just three groups: power, communication, ground.
A humanoid robot's knees and hip joints rely entirely on these. A while back, the integrated joints over at "Tiangong" entered a full physical-checkup phase — same component they were talking about; high integration means less hassle, but the downside is it's hard to disassemble and repair when it breaks.
For prep, set up the bench first. Fix the module to a vise or aluminum extrusion, output end facing out — don't try holding it with your hand; the first jog has a sudden acceleration you can't hold onto.
Use an adjustable DC power supply, voltage per the module's nominal rating, and turn the current limit down to a small fraction of rated current first. Connect the communication line — CAN or EtherCAT depending on the interface on your unit — mind the common ground, and use the vendor's bundled debugging tool on the host PC; no need to write your own. Keep the emergency stop or power switch within reach, not on the other side of the desk.
After power-up, the order is: read first, then turn. I did control power first, then power power — the reverse and some drivers will just error out.
Open the host software, select the right communication channel and baud rate, click scan. Normally you'll see a node ID list — a single node is correct. If it won't scan, it's probably a wiring or common-ground issue; more on that below.
Once it scans, don't rush to send motion commands. First step is reading the encoder — there'll be a real-time position readout on the interface; slowly turn the output shaft by hand and watch whether the number changes continuously and in the right direction. This step verifies the sensor; one full turn should complete one full cycle of readings.
If readings are normal, do zero calibration. Stop the shaft at the mechanical zero you want, click zero, then power-cycle and read again to confirm the zero was saved.
Only then jog. First give a very small command in current mode, see whether the shaft moves and in which direction. If it moves, switch to position mode, give a small step of a few degrees, and see whether it settles stably after reaching position or oscillates back and forth.
Three pitfalls I hit. First, current limiting — I didn't set it the first time, and the instant I powered up the supply tripped into protection; I thought the module was broken and wasted half an hour, then lowered the current limit and everything was fine. Startup current and steady-state current are not the same thing.
Second, zero point — switching to position mode without zeroing, the zero degrees written in the command and the mechanical zero are simply not the same position, and the shaft rushes straight at the limit; when you hear the impact, cut the power.
Third, communication — couldn't scan the node, I checked the software for ages, and in the end it was the communication line not sharing ground; this kind of problem is invisible at the software level, you can only measure it with a meter.
As an aside, I wrote a piece last month about how commands need to be re-aligned after swapping the body. Same with joint modules — swap a module, or even disassemble and reassemble the same module once, and the zero point and direction both need re-aligning; don't think you can reuse the previous unit's config.
Once you've learned this, the next step is to try stringing two modules on the same communication bus and doing a master-slave follow — turn one by hand, the other follows. This step forces you to figure out ID assignment and cycle synchronization, an unavoidable hurdle before moving toward a whole machine.
Do these three things in order before power-up — current limit, mounting, zero point — and you'll save yourself the pitfalls I hit.
Physix Frontier