<br clear="all">Pozdrawiam<br>Konrad Banachowicz<br>
<br><br><div class="gmail_quote">2010/9/18 Herman Bruyninckx <span dir="ltr"><<a href="mailto:Herman.Bruyninckx@mech.kuleuven.be">Herman.Bruyninckx@mech.kuleuven.be</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Sat, 18 Sep 2010, Konrad Banachowicz wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
My solution splits the trajectory generation into two parts.<br>
One part is hard-RT and do interpolation between two points (with non zero velocity<br>
at both ends). It can be used with sensor feedback (servo vision).<br>
Second part is feeding first one with points along complex trajectory, it do all<br>
"trajectory joining", joints reordering ...<br>
</blockquote>
<br></div>
Ok, that sounds ok. From the software point of view, at least. But what is<br>
the use of the "complex trajectory" if you have to react to visual data in<br>
realtime?<br></blockquote><div>Second part would be used for interfacing with ROS node like move_arm.<br>For reacting to visual data in realtime first component is all you need.<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Pozdrawiam<br>
Konrad Banachowicz<br>
</blockquote>
<br>
Herman<div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
2010/9/18 Herman Bruyninckx <<a href="mailto:Herman.Bruyninckx@mech.kuleuven.be" target="_blank">Herman.Bruyninckx@mech.kuleuven.be</a>><br>
On Fri, 17 Sep 2010, Konrad Banachowicz wrote:<br>
<br>
Hi,<br>
I'm working on integration of orocos RT-controller with ROS<br>
manipulation pipeline.<br>
I already done joint_state_publisher and oro_action_server. Next on<br>
my list are<br>
joint_trajectory_action and JointSplineTrajectoryController.<br>
I have some concerns about real-time behaviours of those, and way<br>
of implementation<br>
in orocos.<br>
<br>
joint_trajectory_action :<br>
It receive goal containing trajectory (variable size, unbounded<br>
size), then check<br>
constraints and send to JointSplineTrajectoryController.<br>
<br>
JointSplineTrajectoryController:<br>
It loop generating interpolated position for joint regulator.<br>
When it receive new trajectory it reorder joints in received<br>
trajectory (memory<br>
allocation, iterating on unknown size array) and try to compose<br>
current trajectory<br>
with newly received (memory allocation, iterating on unknown size<br>
array).<br>
It have to by done between two sequential interpolations (in my<br>
system 1ms).<br>
<br>
My solution :<br>
Data transmited between joint_trajectory_action and<br>
JointSplineTrajectoryController<br>
contains only single point (constant size).<br>
<br>
joint_trajectory_action do joint reordering and compose<br>
trajectories and is feeding<br>
JointSplineTrajectoryController with trajectory points.<br>
<br>
JointSplineTrajectoryController interpolate between two points<br>
(have one point<br>
buffer)<br>
<br>
This solution should work with trajectories when time between<br>
points is >> 1ms.<br>
<br>
What do you think about doing this this way ?<br>
What is alternative solutions ?<br>
What do you think about re-usability of this solution in yours<br>
systems ? <br>
<br>
<br>
I do not know whether I fully understand your approach and solution, but<br>
here are some comments nevertheless about what I have learned about<br>
trajectories the last 20 years:<br>
- if you have a system with hard realtime constraints to connect<br>
trajectories together within 1ms, it makes sense to add another level of<br>
trajectory generation, in the form of a "trajectory joining" component.<br>
That component can do the joining already before the trajectory is<br>
finished, in a separate thread/process. It will not be a trivial<br>
extension to the current approach, though.<br>
- do you really the kind of joint space trajectories that are currently<br>
being used? With 1ms latency, it seems that you are looking for<br>
trajectories that can be joined also at non-zero velocity, in contrast to<br>
our current implementations...<br>
If you have indeed a need for other trajectory types, please start a<br>
discussion on this topic, since one of our PhD students. Wilm Decré, is<br>
doing his research on this topic; and he has already some results, but<br>
they have not yet been integrated in Orocos code.<br>
<br>
Herman<br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br>
<br>
<br>
<br>
</blockquote>
<br></div></div><div><div></div><div class="h5">
--<br>
K.U.Leuven, Mechanical Eng., Mechatronics & Robotics Research Group<br>
<<a href="http://people.mech.kuleuven.be/%7Ebruyninc" target="_blank">http://people.mech.kuleuven.be/~bruyninc</a>> Tel: +32 16 328056<br>
EURON Coordinator (European Robotics Research Network) <<a href="http://www.euron.org" target="_blank">http://www.euron.org</a>><br>
Open Realtime Control Services <<a href="http://www.orocos.org" target="_blank">http://www.orocos.org</a>><br>
Associate Editor JOSER <<a href="http://www.joser.org" target="_blank">http://www.joser.org</a>>, IJRR <<a href="http://www.ijrr.org" target="_blank">http://www.ijrr.org</a>></div></div><br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br>