The OCL motion_control/CartesianVelocityController component appears to mix up calculation of cartesian pose via forward kinematics, with the transformation of cartesian-space velocities to joint-space velocities. Because the second part of this component should only be running when you are in a cartesian-space motion, the FK results are not always available.
I'm wondering what people think of splitting this into two components?
- CartesianRobot that can be always calculating CartesianSensorPosition
- CartesianVelocityController, which has the same functionality as now except for the FK calculation.
This would allow you to have a CartesianRobot that is always producing the measured cartesian pose, while you could turn the other component off and on as necessary.
We'd certainly be happy to do this (in reality, we'll be doing it either way as we need this separation, but hope that the work would be useful to others?).
S

OCL CartesianVelocityController mixes two different concepts. Sp
On Tuesday May 13 2008 17:53:35 snrkiwi wrote:
> The OCL motion_control/CartesianVelocityController component appears to mix
> up calculation of cartesian pose via forward kinematics, with the
> transformation of cartesian-space velocities to joint-space velocities.
> Because the second part of this component should only be running when you
> are in a cartesian-space motion, the FK results are not always available.
The FK and IK are put together for two reasons:
The CartesianVelocityController is created as a wrapper around a
RobotnAxesVelocityController. The RobotnAxesVelocityController offers the
nAxesSensorPosition and receives the nAxesOutputVelocity. The
CartesianVelocityController translates this input from jointspace to
cartesianspace and vice-versa for the output.
For this translation the CartesianVelocityController needs the
kinematic-structure of the Robot. This kinematic-structure is the same for
the forward position kinematics as for the inverse velocity kinematics.
> I'm wondering what people think of splitting this into two components?
> # CartesianRobot that can be always calculating CartesianSensorPosition
> # CartesianVelocityController, which has the same functionality as now
> except for the FK calculation.
>
> This would allow you to have a CartesianRobot that is always producing the
> measured cartesian pose, while you could turn the other component off and
> on as necessary.
Maybe it is better to just add the ability to activate/deactivate the IK in
the existing component? It is less work, and results in a cleaner solution
IMO, because the kinematic calculations stay in one component.
> We'd certainly be happy to do this (in reality, we'll be doing it either
> way as we need this separation, but hope that the work would be useful to
> others?). S
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm