-
Notifications
You must be signed in to change notification settings - Fork 196
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
MotoROS v1.7.0 #191
MotoROS v1.7.0 #191
Conversation
ted-miller
commented
Jan 10, 2018
- Implement velocity feedback for DX200 and YRC1000 controllers.
- Remove unneeded validation check from RosSetupValidation.xLib.
- Fix starting position check for SLUBT robots.
- Implement velocity feedback for DX200 and YRC1000 controllers. - Remove unneeded validation check from RosSetupValidation.xLib. - Fix starting position check for SLUBT robots.
Eric Marcil will do additional testing this week. |
- On systems with multiple control groups, only one reboot will be required after activating the speed feedback registers. - Fix calculation of speed feedback for linear axis.
Updated based on testing by Marcil. |
motoman_driver/MotoPlus/Controller.c
Outdated
@@ -227,7 +227,7 @@ BOOL Ros_Controller_Init(Controller* controller) | |||
if(grpNo < controller->numGroup) | |||
{ | |||
// Determine if specific group exists and allocate memory for it | |||
controller->ctrlGroups[grpNo] = Ros_CtrlGroup_Create(grpNo, controller->interpolPeriod); | |||
controller->ctrlGroups[grpNo] = Ros_CtrlGroup_Create(grpNo, (grpNo==(controller->numGroup-1)), controller->interpolPeriod); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this line get a bit more of a comment?
It probably becomes clearer when looking up the declaration of Ros_CtrlGroup_Create(..)
, but what is the boolean there?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New commit has additional comments.
long pulsePos[MAX_PULSE_AXES]); | ||
UCHAR Ros_CtrlGroup_GetAxisConfig(CtrlGroup* ctrlGroup); | ||
BOOL Ros_CtrlGroup_IsRobot(CtrlGroup* ctrlGroup); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These have moved to the header?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously, they were located in both the header and the source. I removed the duplication.
motoman_driver/MotoPlus/CtrlGroup.c
Outdated
dblRegister *= ctrlGroup->pulseToRad.PtoR[i]; //pulse/sec | ||
if (ctrlGroup->axisType.type[i] == AXIS_ROTATION) | ||
{ | ||
dblRegister /= 10000.0; //deg/sec |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion: use 1e4
(and 1e5
below)?
Or: 1e-4
(and 1e-5
) and multiply.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok
- Add comments for clarity.
- Remove obsolete parameter from the setup-validation library (DX100 only).
Just tested this on our FS100. No regressions as far as I've tested. I cannot test velocity reporting, nor the new SLUBT starting position check. |
- Fix initialization of curPos and prevPulsePos when using B axis compensation (for SLUBT robots).
The latest SLUBT update has been tested on a live controller in simulation mode. It has not been tested on physical arm. (But I am very confident that it will be ok.) |
@ted-miller wrote:
you'll have to teach me how to do that one day. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes have been tested as best we can, let's iterate on improvements in new PRs.
I'll wait on Travis to complete and then merge. 💯 @ted-miller: this is a really nice implementation of velocity feedback I believe. |
This would be something for a follow-up PR, but: would there be some way to implement a UI / settings panel of some sorts using MotoPlus? You mentioned in a private email that the implementation of the velocity feedback is quite 'resource intensive' (M-registers) and that it could complicate integration of MotoROS with other jobs on the controller. Would it be an idea to give users a choice, so that they can disable the feedback if they're not interested in it and avoid the resource usage (which would be unneeded in that case)? |
Unfortunately, the Yaskawa password is required to reconfigure your controller for a different arm. |
This is definitely possible. There is an SDK available to develop a custom GUI application on the programming pendant. The development kit is a paid option, but the compiled binary and installer could be posted online. Let me know if you have some ideas for things that would be good to have configurable, beyond just the velocity feedback. Maybe enable/disable torque feedback? Or display a diagnostic monitor screen? Perhaps display all the controller information that is calculated at startup (max speeds, pulse->radian, etc)? |
@ted-miller: I've opened #193 to discuss the UI. |
so ... ? ;) |
This is a very nice addition to MotoROS @ted-miller. Thanks for this. Now all I need to do is find a DX200/YRC1000 somewhere .. |