NUbots / robocup

The NUbot's RoboCup Code
GNU General Public License v3.0
34 stars 17 forks source link

Robot #4 - Motor Issues #12

Closed mmetcalfe closed 11 years ago

mmetcalfe commented 11 years ago

Motors id#1 (R_SHOULDER_PITCH) and id#11 (R_HIP_PITCH) of robot No.4 aren't working. They're not stuck + i can move them around fine, but they return errors and dxl_monitor fails to connect to them:

[ID:200(SUB_BOARD)] scan

 Check ID:1(R_SHOULDER_PITCH)     ... FAIL
 Check ID:2(L_SHOULDER_PITCH)     ... OK
 Check ID:3(R_SHOULDER_ROLL)      ... OK
 Check ID:4(L_SHOULDER_ROLL)      ... OK
 Check ID:5(R_ELBOW)              ... OK
 Check ID:6(L_ELBOW)              ... OK
 Check ID:7(R_HIP_YAW)            ... OK
 Check ID:8(L_HIP_YAW)            ... OK
 Check ID:9(R_HIP_ROLL)           ... OK
 Check ID:10(L_HIP_ROLL)          ... OK
 Check ID:11(R_HIP_PITCH)         ... FAIL
 Check ID:12(L_HIP_PITCH)         ... OK
 Check ID:13(R_KNEE)              ... OK
 Check ID:14(L_KNEE)              ... OK
 Check ID:15(R_ANKLE_PITCH)       ... OK
 Check ID:16(L_ANKLE_PITCH)       ... OK
 Check ID:17(R_ANKLE_ROLL)        ... OK
 Check ID:18(L_ANKLE_ROLL)        ... OK
 Check ID:19(HEAD_PAN)            ... OK
 Check ID:20(HEAD_TILT)           ... OK
 Check ID:111(UNKNOWN)            ... OK
 Check ID:112(UNKNOWN)            ... OK
 Check ID:200(SUB_BOARD)          ... OK

Things I tried:

josiahw commented 11 years ago

Are 111 and 112 the foot sensor codes? If not, I would say motors 1 and 11 have reset their IDs, and will need the numbers changed. I expected this with 11 as it's a new motor with no joint ID assigned.

On Fri, Mar 22, 2013 at 10:35 PM, Mitchell notifications@github.com wrote:

Motors id#1 (R_SHOULDER_PITCH) and id#11 (R_HIP_PITCH) of robot #4https://github.com/nubots/robocup/issues/4aren't working. They're not stuck + i can move them around fine, but they return errors and dxl_monitor fails to connect to them:

[ID:200(SUB_BOARD)] scan

Check ID:1(R_SHOULDER_PITCH) ... FAIL Check ID:2(L_SHOULDER_PITCH) ... OK Check ID:3(R_SHOULDER_ROLL) ... OK Check ID:4(L_SHOULDER_ROLL) ... OK Check ID:5(R_ELBOW) ... OK Check ID:6(L_ELBOW) ... OK Check ID:7(R_HIP_YAW) ... OK Check ID:8(L_HIP_YAW) ... OK Check ID:9(R_HIP_ROLL) ... OK Check ID:10(L_HIP_ROLL) ... OK Check ID:11(R_HIP_PITCH) ... FAIL Check ID:12(L_HIP_PITCH) ... OK Check ID:13(R_KNEE) ... OK Check ID:14(L_KNEE) ... OK Check ID:15(R_ANKLE_PITCH) ... OK Check ID:16(L_ANKLE_PITCH) ... OK Check ID:17(R_ANKLE_ROLL) ... OK Check ID:18(L_ANKLE_ROLL) ... OK Check ID:19(HEAD_PAN) ... OK Check ID:20(HEAD_TILT) ... OK Check ID:111(UNKNOWN) ... OK Check ID:112(UNKNOWN) ... OK Check ID:200(SUB_BOARD) ... OK

Things I tried:

  • recompiled the darwin.a library on the robot (with debug printing turned on in CM730.cpp):
    • showed that motors 1 and 11 were returning RX_TIMEOUT
  • using fimrware_installer to reinstall the firmware for the motor board + all motors:
    • motors 1 and 11 were simply skipped during the install. All other motors installed just fine.
  • Using roboplus on windows + the USB2Dynamixel adapter to check the motors individually:
    • (I couldn't get the adapter to find any motors at all. I must be doing something wrong there)
  • Unplugging both legs before the hip to check whether motor 1 would work while motor 11 wasn't present:
    • motor 1 still failed in dxl_monitor

— Reply to this email directly or view it on GitHubhttps://github.com/nubots/robocup/issues/12 .

shannonfenn commented 11 years ago

Fixed, for some reason motor 1 had reverted to baud rate 34 and motor 11 had never been configured and as such was also ID1 baud rate 34. The dxl_monitor obviously only scans at baud rate 1.