Moveit2 Servo (Real-time Servo-ing) and MotoROS2. #344
Replies: 1 comment 5 replies
-
Hello @cboostpverwimp
Any points whose time is not in the "future" will be discarded. So the robot will not attempt to move to that point. However, it looks like the
It is fifo. The last request is appended to the queue.
For real time servoing, I don't think that MotoROS2 (in its current form) is going to work well. In the future, we'd like to add such capability. But it's not there yet. You may want to look at another ROS2 implementation, such as https://github.com/adv4ncr/motoman_ROS2 |
Beta Was this translation helpful? Give feedback.
-
Setup
MotoROS2: humble 0.1.3
Controller: YRC1000micro
Robot: Yaskawa Motomini
Situation
What I am trying to achieve is (near) real-time servoing using MoveIt Servo.
MoveIt Servo publishes
JointTrajectory
to a set topic, (in my configuration) usually containing around 6JointTrajectoryPoints
from the current/joint_states
to a target position.Currently I am calling the
/queue_traj_point
service to share theJointTrajectoryPoints
generated by MoveIt Servo.These points contain a
time_from_start
fromT=0.0
toT=0.165
which resets every update (0.033 s). Which causes some issues, jittery motion from time to time, warnings from the controller;Warning: Group 0 - Time difference between endTrajData (0) and startTrajData (0) is 0 or less.
, and trailing behind the planned motion.I have tried decreasing the amount of
JointTrajectoryPoints
to the last 2 generated every update and lowering thetime_from_start
to aboutT=0.033
andT=0.066
which drastically improves the movement, reduces jitter and trailing. Sadly it is not yet at a point where it is reliable and responsive enough for my application. I have noticed that the controller does not move to every calledJointTrajectoryPoint
but seems to skip some. Which is beneficial for reaching near real-time speeds, but is is not clear to me how the controller handles theseJointTrajectoryPoints
.Current DEBUG looks something like this:
Questions
/queue_traj_point
calls when thetime_from_start
in a new request is smaller than request which are already queued up?JointTrajectoryPoints
get deleted from the queue?time_from_start
or does the last request get added to the end of the queue?Beta Was this translation helpful? Give feedback.
All reactions