Developing custom server for industrial Robot mitsubishi-PA10
Hi everyone!
I am developing the packages to integrate our robot Mitsubishi-Pa10 within the ros-Industrial environment. I am using ros-indigo distro and ubuntu 14.04 for this purpose.
I am also trying to develop a proper server on the real controller side of the robot. For hardware requirement of the robot we need to develop it in Windows.
however I am now stucked with the communication protocol of the simple_message
used by ROS. Since I have already developed the most part of the server, I now want to understand how the process of enqueing and sending points of a point trajectory works for the industrial_robot_client
package.
My error occurs when I send a trajectory from de Rviz plugin of moveit throughout the industrial_robot_client
package. The server accepts de communication decodes de message and starts to perform the trajectory, it performs 2 of the points of the trajectory and suddenly the ROS side aborts the trajectory and sends a trajectory of 0's to all the joints.
In the terminal I only get:
ROS_WARN: Controller handle reports status ABORTED.
It is not due to an ROS_PATH_GOAL
constraint because otherwise it will show the Warning related to that issue.
I have tried looking for the topics of the state of the controller in the ROS side and de goals of the joint_trajectory_action
controller. And the main difference between the simulation and the real implementation seems to be that in the real movement the status of the ros controller doesn't pass to Status=1 when it is performing the trajectory, it automatically pass from void to 3 to 4 and aborts.
On the other hand in simulation the status pass from 1 when it is performing the trajectory to 3 (success).
I think it is because when I receive on the server side the trajectory_point from ros as a SERVICE_REQUEST
, I answer from the server to the ROS client side as a JOINT_TRAJ_MSG
type as a SERVER_REPLY
and as a REPLY_SUCCESS
. but if I don´t reply the industrial_robot_client
don´t send me the next point of the trajectory.
Is this message correct? Should the server only response with the Reply type set to INVALID
?
I have found (too late btw) the repository of gavanderhoorn ( https://github.com/gavanderhoorn/rep-... ). But it doesn't answer my question of the which value should I set of the Reply type of the simple_message
.
Thanks in advance.
Edit: Hello gvdhoorn! I have already tried what you advice me however it is not working. I don get any message similir to the one you said me :
Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was X.Y seconds). Stopping trajectory.
I only get the message that controller aborted:
[ INFO] [1494837002.085272612]: Execution request received for ExecuteTrajectory action.
[ WARN] [1494837003.193947175]: Controller handle reports status ABORTED
[ INFO] [1494837003.194048098]: Execution completed: ABORTED
[ INFO] [1494837003.194413494]: ABORTED: Solution found but controller failed during execution
Finally I have solved the issue ...