I'm trying to control the YuMi robot arm by a serial port. The serial port will give the information on what direction the end-effector should move and what is the velocity. What I would like to achieve is that the robotic arm will keep moving in the certain direction and velocity until the serial command changes. For example, if the serial port tells the robotic arm to move at velocity 1 in the x-direction, the robotic arm will not stop until the serial port changes the velocity to 0.

We are currently using the 'yumipy' python library (https://github.com/BerkeleyAutomation/yumipy) for this purpose, but it might not be suitable for real-time smooth motions in our application. Because it can only generate consecutive discrete pose commands by reading the serial commands, and there will be small time gaps between each pose command. Also, the RAPID server has to execute each command in full before execute the next command (which can cause a time delay as well).

Will External Guided Motion (EGM) be suitable for this application? Are there any other possible approaches and what would be the optimal one?

  • $\begingroup$ reading the serial commands where do the commands originate from? ..... it is unclear what you are trying to do $\endgroup$ – jsotola Jan 17 '19 at 4:42
  • $\begingroup$ It is from an Arduino board. @jsotola $\endgroup$ – user22088 Jan 20 '19 at 12:00

There is an open source ROS library, which implements controlling an ABB robot using the EGM. You can find the library here.

The library allows the definition of a trajectory and adding points to the trajectory. So might be what you want to do. The exact code which achieves this is the addTrajectoryPointFront() and addTrajectoryPointBack() function in the egm_trajectory_interface.h file. It is unclear if the currently executed trajectory can be altered using the functions above or not.

If the above method is not suitable, you can try using velocity goals. Velocity goals can be added using a fast_transition option which seems to enable what you are looking for.

Please note that I have not used the EGM Interface, I am also trying to implement a similar application, real-time trajectory control with EGM, but did not progress to actual implementation yet.

| improve this answer | |
  • $\begingroup$ Thank you for this. It's helpful. I'll check the library. $\endgroup$ – user22088 Jan 20 '19 at 12:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.