On Tue, Jan 8, 2013 at 4:03 AM, marioprats <notifications@github.com> wrote:

> In planning_interface/robot_interaction/src/robot_interaction.cpp:
>
> > +  Eigen::VectorXd qmin(qlimits.size());
> > +  Eigen::VectorXd qmax(qlimits.size());
> > +  Eigen::VectorXd qrange(qlimits.size());
> > +  stvector.resize(qlimits.size());
> > +  stvector = Eigen::ArrayXd::Zero(qlimits.size());
> > +
> > +  for (std::size_t i = 0; i < qlimits.size(); ++i)
> > +  {
> > +    qmin(i) = qlimits[i].min_position;
> > +    qmax(i) = qlimits[i].max_position;
> > +    qrange(i) = qmax(i) - qmin(i);
> > +
> > +    //Fill in stvector with the gradient of a joint avoidance cost function
> > +    if (qrange(i) == 0)
> > +    {
> > +      //If joint range is zero, do not compute the cost. TODO: Is this always the case for continuous joints? should be set to zero too
>
> JointModel::JointType contains UNKNOWN, REVOLUTE, PRISMATIC, PLANAR,
> FLOATING, FIXED. Is a continuous joint of REVOLUTE type with limits -pi /
> pi ??
>
No. A continuous joint is a special case of the Revolute Joint. You
static_cast revolute joints to their type (RevoluteJoint*) and then call
isContinuous().


>  —
> Reply to this email directly or view it on GitHub<https://github.com/ros-planning/moveit_ros/pull/126/files#r2572831>.
>
>