Hi all (expecially Erwin),
I am trying to use the Path_RoundedComposite class for the trajectory
generator
- first of all:
any of you have an example to share?
- i am getting out quite a lot of nan...
how i do catch the Error_MotionPlanning_Not_Feasible() ?
- i do not quite grasp how to use the RotationalInterpolation_SingleAxis
(if i have to configure it is configured by the constructor of
Path_RoundedComposite)
and the eqradius (if it is 0, it means that the rotation is not taken
into account in computing the path length? )
------------------------------------------
here is the code...
class variables...
KDL::Trajectory_Segment* Trajectory_pt;
KDL::RotationalInterpolation_SingleAxis RISA;
//std::vector<KDL::Path_Line *> Path_line_pts;
//KDL::Path_Composite Path;
KDL::VelocityProfile_Spline m_mot_prof;
KDL::Path_RoundedComposite * Rounded_path;
bool m_is_trajectory;
double radius;
double eqradius;
...
configure hook
Rounded_path = new KDL::Path_RoundedComposite(radius,eqradius,&RISA);
for (int i=0; i<(via_pose.size());i++)
{
Rounded_path->Add(via_pose[i]);
}
Rounded_path->Finish();
m_mot_prof.SetProfileDuration(0,0,Rounded_path->PathLength(),0,via_time[0]);
Trajectory_pt= new KDL::Trajectory_Segment(Rounded_path, &m_mot_prof);
update hook
m_time_passed = os::TimeService::Instance()->secondsSince(m_time_begin);
if (m_time_passed > Trajectory_pt->Duration()) //DONE!
{
m_position_desi_local =via_pose.back();
log(Info)<<"updateHook: Trajectory ended in "<<
Trajectory_pt->Duration()<<endlog();
...
}
else //computing trj.
{
m_position_desi_local=Trajectory_pt->Pos(m_time_passed);
m_velocity_desi_local=Trajectory_pt->Vel(m_time_passed);
}
--------------------------------------------
PS: the orocos website has no documentation about
KDL::VelocityProfile_Spline
http://people.mech.kuleuven.be/~rsmits/kdl/api/html/group__Motion.html
On 06/01/2012 08:16 AM, Erwin Aertbelien wrote:
> ok for me
>
> On 06/01/2012 08:15 AM, Joris De Schutter wrote:
>> Half an hour is probably short. I have another meeting at 14.30.
>> Would it be possible to start at 13.30?
>> Joris
>> -----Original Appointment-----
>> *From:* Gianni Borghesan
>> *Sent:* vrijdag 25 mei 2012 13:28
>> *To:* Gianni Borghesan; Dominick Vanthienen; Tinne De Laet; Erwin
>> Aertbeliën; Herman Bruyninckx; Joris De Schutter
>> *Subject:* RoboHow Meeting
>> *When:* vrijdag 1 juni 2012 14:00-14:30 (GMT+01:00) Brussels,
>> Copenhagen, Madrid, Paris.
>> *Where:* Joris Bureu
>> Quando: venerdì 1 giugno 2012 14.00-14.30. ((UTC + 1.00 h) Amsterdam,
>> Berlino, Berna, Roma, Stoccolma, Vienna
>> Dove: Joris Bureu
>> *~*~*~*~*~*~*~*~*~*
>> Agenda:
>> Organization WS in July
>> Current state of the work...
Path and trajectories
On 06/01/2012 11:10 AM, Gianni Borghesan wrote:
> Hi all (expecially Erwin),
> I am trying to use the Path_RoundedComposite class for the trajectory
> generator
> - first of all:
> any of you have an example to share?
> - i am getting out quite a lot of nan...
> how i do catch the Error_MotionPlanning_Not_Feasible() ?
> - i do not quite grasp how to use the RotationalInterpolation_SingleAxis
> (if i have to configure it is configured by the constructor of
> Path_RoundedComposite)
> and the eqradius (if it is 0, it means that the rotation is not taken
> into account in computing the path length? )
>
> ------------------------------------------
> here is the code...
>
> class variables...
>
> KDL::Trajectory_Segment* Trajectory_pt;
>
> KDL::RotationalInterpolation_SingleAxis RISA;
> //std::vector<KDL::Path_Line *> Path_line_pts;
> //KDL::Path_Composite Path;
> KDL::VelocityProfile_Spline m_mot_prof;
> KDL::Path_RoundedComposite * Rounded_path;
> bool m_is_trajectory;
> double radius;
> double eqradius;
>
> ...
>
> configure hook
>
> Rounded_path = new KDL::Path_RoundedComposite(radius,eqradius,&RISA);
>
> for (int i=0; i<(via_pose.size());i++)
> {
> Rounded_path->Add(via_pose[i]);
> }
> Rounded_path->Finish();
>
> m_mot_prof.SetProfileDuration(0,0,Rounded_path->PathLength(),0,via_time[0]);
> Trajectory_pt= new KDL::Trajectory_Segment(Rounded_path,&m_mot_prof);
>
>
> update hook
>
> m_time_passed = os::TimeService::Instance()->secondsSince(m_time_begin);
> if (m_time_passed> Trajectory_pt->Duration()) //DONE!
> {
> m_position_desi_local =via_pose.back();
> log(Info)<<"updateHook: Trajectory ended in"<<
> Trajectory_pt->Duration()<<endlog();
> ...
> }
> else //computing trj.
> {
> m_position_desi_local=Trajectory_pt->Pos(m_time_passed);
> m_velocity_desi_local=Trajectory_pt->Vel(m_time_passed);
> }
>
>
> --------------------------------------------
>
> PS: the orocos website has no documentation about
> KDL::VelocityProfile_Spline
> http://people.mech.kuleuven.be/~rsmits/kdl/api/html/group__Motion.html
If anyone is interested in investing some time in this?
We can hire (here in Leuven) a job student to put some work in this over the summer. (contact Erwin or Herman)
>
>
>