[Bug 537] New: OCL:: CartesianGeneratorPos is hardcode to 6DOF - unable use with redundant robots

For more infomation about this bug, visit
Summary: OCL::CartesianGeneratorPos is hardcode to 6DOF - unable
use with redundant robots
Product: OCL
Version: trunk
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Motion Control
AssignedTo: orocos-dev [..] ...
ReportedBy: kiwi [dot] net [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

Would like to use it with a 7DOF robot. The other Cartesian components aren't
hardcoded for size.

Propose introducing "num_axes" property to CartesianGeneratorPos.

[Bug 537] OCL:: CartesianGeneratorPos is hardcode to 6DOF - unab

For more infomation about this bug, visit

Herman Bruyninckx <herman [dot] bruyninckx [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
CC| |herman [dot] bruyninckx [..] ...
| |ven.be

--- Comment #1 from Herman Bruyninckx <herman [dot] bruyninckx [..] ...> 2008-05-02 21:18:44 ---
Cartesian space _is_ 6 dimensional. There is a difference between generating a
trajectory in Cartesian space (= determining where the end frame of a robot has
to move) and a trajectory in joint space. The former is _always_ 6
dimensional, the latter has as many degrees of freedom as (actuated) joints.
The indication of how many DOFs you need is part of the IK (inverse kinematics)
and _not_ of the trajectory generator in Cartesian space...

Herman

[Bug 537] OCL:: CartesianGeneratorPos is hardcode to 6DOF - unab

For more infomation about this bug, visit

--- Comment #2 from S Roderick <kiwi [dot] net [..] ...> 2008-05-02 21:30:47 ---
(In reply to comment #1)
> Cartesian space _is_ 6 dimensional. There is a difference between generating a
> trajectory in Cartesian space (= determining where the end frame of a robot has
> to move) and a trajectory in joint space. The former is _always_ 6
> dimensional, the latter has as many degrees of freedom as (actuated) joints.
> The indication of how many DOFs you need is part of the IK (inverse kinematics)
> and _not_ of the trajectory generator in Cartesian space...

I completely understand this. In reexamining the code I figured out that it is
the comments that are confusing. The implementation is as you say - completely
in 6-DOF cartesian space.

The header file has
{{{
/// Property containing a vector with the maximum velocity of
/// each dof
RTT::Property< std::vector > _maximum_velocity;
/// Property containing a vector with the maximum acceleration of
/// each dof
RTT::Property< std::vector > _maximum_acceleration;
}}}
but these aren't per DOF (in a joint sense, as I read it), they are per
degree-of-freedom of cartesian space. Also, the corresponding .cpf file has
descriptions of "Axis 1", "Axis 2", ... Confusing to the reader who thinks of
Axes and DOFs as _joint_ space quantities.

Perhaps the above two files could be reworded to prevent future confusion?

Sorry.
S