genserkins Hal-Parameter "unrotate"
29 Jan 2020 08:12 #156074
by Aciera
genserkins Hal-Parameter "unrotate" was created by Aciera
I've noticed there is an "unrotate" parameter that can be defined in the hal file:
Given its name I presume its not to be used like the THETA parameter.
Does anybody know what this is?
haldata = hal_malloc(sizeof(struct haldata));
if (!haldata)
goto error;
for (i = 0; i < GENSER_MAX_JOINTS; i++) {
if ((res =
hal_pin_float_newf(HAL_IO, &(haldata->a[i]), comp_id,
"genserkins.A-%d", i)) < 0)
goto error;
*(haldata->a[i])=0;
if ((res =
hal_pin_float_newf(HAL_IO, &(haldata->alpha[i]), comp_id,
"genserkins.ALPHA-%d", i)) < 0)
goto error;
*(haldata->alpha[i])=0;
if ((res =
hal_pin_float_newf(HAL_IO, &(haldata->d[i]), comp_id,
"genserkins.D-%d", i)) < 0)
goto error;
*(haldata->d[i])=0;
if ((res =
hal_param_s32_newf(HAL_RW, &(haldata->unrotate[i]), comp_id,
"genserkins.unrotate-%d", i)) < 0)
goto error;
haldata->unrotate[i]=0;
}
Given its name I presume its not to be used like the THETA parameter.
Does anybody know what this is?
Please Log in or Create an account to join the conversation.
31 Jan 2020 07:53 #156239
by bbsr_5a
Replied by bbsr_5a on topic genserkins Hal-Parameter "unrotate"
its like the Shortest WAY if your base is at 260deg and needs to go to 10deg best is positiv but unrotate prevent it
as DOF6 some Axis can do it some will break
as DOF6 some Axis can do it some will break
Please Log in or Create an account to join the conversation.
03 Feb 2020 09:18 #156428
by Aciera
Replied by Aciera on topic genserkins Hal-Parameter "unrotate"
I have found this snippet by the author of this feature in the mail archive:
Its still not really clear to me what this does but it looks like I need to reverse engineer the code to find out.
Shows the importance of documentation in software development though.
On Wed, Jan 12, 2011 at 4:35 PM, Stephen Wille Padnos <spadnos@...>wrote:
> Stuart Stevenson wrote:
> > I have to move the finger and hand axes while the wrist axis moves to be
> > able maintain orientation.
> > I tried this without the multiple subtraction line but was unable to hold
> > the hand orientation while the wrist moved.
> >
> Hmmm, so joints 4 and 5 (starting at 0) both need to have joint 3
> subtracted? The code I wrote can't do that. It would be possible to
> make another parameter that tells which joint to unrotate by. Something
> like base_joint. This would be a parameter ranging from 0 to (number of
> joints-1). The code would then be something like:
> if ((unrotate logic) && (base_joint<link_num) && (base_joint!= this_joint))
>
> joints[this_joint].theta-=joints[joints[this_joint].base_joint].theta *
> joints[this_joint].unrotate;
> (or so :) )
> - Steve
Its still not really clear to me what this does but it looks like I need to reverse engineer the code to find out.
Shows the importance of documentation in software development though.
Please Log in or Create an account to join the conversation.
Time to create page: 0.159 seconds