-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Phantom_Phoenix MX28T Setting #4
Comments
Hi, Phoenix_Code.h Phoenix_Driver_AX12.h #define cPwmMult 512 // modif /!\ cPinTable Phoenix_Input_Commander.h Phoenix.h BioloidEX.cpp BioloidEX.h Hex_Cfg.h //-------------------------------------------------------------------- #define cRMCoxaMin1 -750 //Mechanical limits of the Right Middle Leg, decimals = 1 #define cRFCoxaMin1 -750 //Mechanical limits of the Right Front Leg, decimals = 1 #define cLRCoxaMin1 -750 //Mechanical limits of the Left Rear Leg, decimals = 1 #define cLMCoxaMin1 -1000 //Mechanical limits of the Left Middle Leg, decimals = 1 #define cLFCoxaMin1 -750 //Mechanical limits of the Left Front Leg, decimals = 1 #define cTurretRotMin1 -1500 //-------------------------------------------------------------------- #define X_COXA 60 // MM between front and back legs /2 //#define X_COXA 60 // MM between front and back legs /2 #define cRROffsetX -60 //Distance X from center of the body to the Right Rear coxa #define cRMOffsetX -100 //Distance X from center of the body to the Right Middle coxa #define cRFOffsetX -60 //Distance X from center of the body to the Right Front coxa #define cLROffsetX 60 //Distance X from center of the body to the Left Rear coxa #define cLMOffsetX 100 //Distance X from center of the body to the Left Middle coxa #define cLFOffsetX 60 //Distance X from center of the body to the Left Front coxa Thank's you ! |
I modify properly values but have motor blinking on red... |
Sorry currently busy with other stuff, so don't have time/energy to help much. One main difference as you already know is the conversion of Angles to servo units, as used in the values:
One of the difficulties with some of these conversions is that the code could maybe overflow integer math: Depending on which board you are using on size of long... Conversion update is probably wrong.. i.e. you did not actually change the resolution. You multiplied both Mult and Div by 4 and when you divide these two numbers it simply cancels out... You probably only needed to change Mult to 512... For what it is worth: I have been playing with a version of the PhantomX that runs on OpenCM boards and either uses AX like servos or XL430 like servos:
The reason that it is not simply a multiply of 4 1024->4096, there is also a change in the ranges of degrees (0-300) -> (0-360). I believe it is the same for the MX servos. Note: I do not own any MX servos (except one MX12W that is floating around here somewhere...) Other issues with MX might include: a) Are you using Protocol 1 or Protocol 2? If Protocol 1, then same packet formats... If Protocol 2, then packets are different. Bioloid code in this project is Protocol 1 only... The other project I listed here has code for both Protocol 1 and 2... But uses different library... b) Other control table differences? like different default baud rate for servos... Sorry got to run. |
Forgot to mention, about blinking lights... The Phoenix code - does blink the leds on the servos, when it is NOT receiving any valid packets from the XBee (Commander). That code was added as I killed a couple of batteries, when I turned off the commander, which caused the robot to sit down and turn off the torque to the servos, but then I forget to actually turn off the power to the robot... |
Hi KurtE, |
Hi KurtE ^^ |
Again, if you do not have an XBee hooked up to the board... I have an adapter that I plug into Serial2 and that XBee is not receiving properly formatted messages from Arbotix Commander (or something generating similar messages), the code will put the Robot into sort of an idle mode, and with the code will blink the different servos as a reminder to me, that I have not yet turned the power off... As for servo firmware versions, again I don't have any of these servos... But have seen some reports on Robotis forum. That is the first firmware version that Protocol 2 was started from is 40, but that does not necessarily imply a servo with Protocol 1, will have a firmware version < 40... If I looked at stuff I think the current version is something like 40 for protocol 1 and 43 for protocol 2 |
Hi Kurt, |
Hi KurtE,
My name is Guillaume, and I am doing a PhD on Robotics and AI.
I am ok with IK and I have already all the measure of the hexapod for settings.
I am working on a Hexapod which runs MX28T instead of AX18.
I saw that Zenta used this range for his MX-Phoenix.
I tried some things, but I am still stick on the MX28.
Did you have a MX28 version of Phoenix code please ?
If not, do you have a list of variables or the .h files I need to modify to implement it please?
I saw on the code the MinMax values are noted as 650 , -700 i.e. Is it using a neutral pose as reference ?
Do I need to modify it using an arbitrary mx28 setting ?
Thank's you so much for any tips and helps you can provide.
Best regards,
Guillaume,
The text was updated successfully, but these errors were encountered: