-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trajectory start position doesnt match current robot position on CSDA10F dual arm robot #217
Comments
I wouldn't say that is a 'known solution' actually. It's just an alternative approach to the trajectory-based interface.
You'll indeed need to make sure to update MoveIt's start state before planning so that it coincides with the current state of the robot. I don't see that anywhere in the example you link, so that is probably why you get the error. |
@Danfoa Dose this happen only for a consecutive move or do you see the error also if you are moving for the first time after the robot was at standstill for some seconds? One problem that we at Xamla identified is that the joint-feedback of the robot is about 100-150ms behind the joint-command position (e.g. there might be a moving average filter inside the motor controller). A problem could be that when you read out the position of the robot directly after a trajectory execution was completed to plan the next segment the read-out position might be not the final position (especially when executing fast moves). |
Good day @gavanderhoorn
I though the current joint state was taken as the start pose as default, nevertheless now I hardcoded it before every planning, and also waited after each motion as @andreaskoepf suggested. Thanks by the way. But the problem is still present and it seems that it only occurs when we try to perform motion of the two arms or the 15DoF of the robot, It seems that planning with this motion groups through the GUI also fails with the same error... has anyone experienced this before?. PS: Sorry for the late and uncompleted feedback, although we are developing the tests are being performed by other engineer. |
@Danfoa Maybe in order to narrow the problem down a bit it you could enable the telnet debug-connection of your robot and view the MotoPlus driver output which is printed in the error case here which prints the start and the current position. This should give you some hints about which joints are causing the deviation. To enable telnet debugging set the robot parameter Just guessing I could imagine that the shared Base-Joint of the torso could cause a problem. |
@andreaskoepf Thank you very much
We have successfully planned and move the torso move group of the robot, will that discard the this as the source problem ? or it could still be a problem. I will follow your instructions thank you again. PS: In one of our early test we checked the joint_state topic to understand if robot state information was coming "correctly", and we were getting recursively joint state of torso_b2, then torso _b1 and then the arms state, and both torso joints seem to follow the "mirror" restriction.
|
See #251. |
Good day,
We have been operating the CSDA10F robot with Moveit GUI interface, and it works properly. Nevertheless when we use the
MoveGroupInterface
on a c++ Node, we are getting the error:It seems that on-the-fly point streaming (#88 and #215 )is a known solution to this problem (synchronization problem as far as I understand) but as mention in PR #88 this solution does not work for dual arm systems.
What seems odd to me is that, while performing planning and motion with Moveit and Rviz GUI, this problem seems not present. Cloud it be possible that we are generating malformed motion request? The file with which we are testing it is this (which by the way works perfectly on a simulated robot, with the demo.launch of our robot's Moveit's package) and basically follows the guidelines from Moveit MoveGroupInterface tutorial.
So the question will be Is it a drivers problem, or syncronization issue ? or are we doing something wrong wuile using the MoveGroupInterface class ?, in order to help clarify the second I am attaching how move below.
On our test Node we defined the move groups:
Set a given pose as target and execute
Shall we somehow hardcode into the Motion Plan the current robot state?
robot_state::RobotState start_state(*arm_left_move_group.getCurrentState());
The text was updated successfully, but these errors were encountered: