Skip to content
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

ABB IRB120 does not move when trajectory command is sent from Moveit #158

Closed
jclinton830 opened this issue Dec 12, 2018 · 16 comments
Closed

Comments

@jclinton830
Copy link

Hi,

I followed this tutorial to configure ROS and an ABB IRB120 robot to work together.

I then launched this launch file:
roslaunch abb_irb120_support robot_interface_download_irb120_3_58.launch robot_ip:=192.168.125.1

and then this launch file:
roslaunch abb_irb2400_moveit_config moveit_planning_execution.launch robot_ip:=192.168.125.1

Then I am able to mirror the movement of the actual robot on RViz accurately when the robot moves during jogging or running existing rapid programs in the controller.

But when planning a motion using Rviz and sending it to the robot controller, it says that Sending 20 points to MOTION task

But the robot does not move at all.

Anyone know why this might be happening? I am using ROS Kinetic and working on ubuntu 16.04.

Thanks in advance!

@gavanderhoorn gavanderhoorn transferred this issue from ros-industrial/abb_experimental Dec 12, 2018
@gavanderhoorn
Copy link
Member

gavanderhoorn commented Dec 12, 2018

Three things to check:

  1. you've made sure to start the motion task (also required in Auto mode, refer to wiki/Running the ROS Server: Robot Motion Task)
  2. you're using current kinetic-devel of abb_driver (specifically: with driver: only check axes that are present #155)
  3. you're starting a motion where the first trajectory point coincides with the current state of the robot (if you don't, there is a very long duration (10 sec) slow motion included which you may see as the robot "not moving"). See also Trajectory takes a long time to begin execution #142 and #146.

@jclinton830
Copy link
Author

HI @gavanderhoorn,

Thank you for the quick reply.
I was trying the motion execution on manual mode. I have already tried it in Auto mode as well and it doesn't work either.

In this tutorial it is mentioned that

If T_ROB1 has existing motion-control modules, you may need to rename the main() routine in ROS_Motion.mod to ROS_main(). In this case, set the Entry point for T_ROB1 task to ROS_main().

Is this a compulsory change? When I tried this it did not work either.

I am guessing its to do it with how I run the ROS server from the teach pendant. When I go in to the production window and press PP to main, and enable the motors and press play the robot starts to execute an old piece of rapid code stored in the controller.

@gavanderhoorn
Copy link
Member

You'll have to make sure that the driver does not interact/interfere with other code present on the controller.

I cannot help you with that, as it's very specific to your setup.

@gavanderhoorn
Copy link
Member

@jclinton830: for now, I'm going to assume this is a configuration issue on your side (ie: the controller) and not something with these packages.

I'll close this issue here for now, but if you feel there is something we should change or improve then please feel free to comment here.

@jclinton830
Copy link
Author

Hi @gavanderhoorn

I did a complete re setup of the ros workspace last night and tried again this morning on the actual robot.

Now the robot is receiving the trajectory, but a STOP command is issued before any motion is executed. I thought #62 fixed this issue. But seems like there is still a problem.

img_20181213_112650

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Dec 13, 2018

I've already commented on #41 where you also posted this (could you please not do this in the future?). From #41 (comment):

Please see How do I disable execution_duration_monitoring ?. The robot is too slow and MoveIt cancels execution of your trajectory because of that.


Edit: related: #114, #110.

@jclinton830
Copy link
Author

Hi @gavanderhoorn,

Sorry about that will not happen again! Thanks that fixed the problem for shorter paths but the problem persists for longer motion paths. Is there a parameter that can be edited within the move_group cpp source files to solve this?

Thanks.

@gavanderhoorn
Copy link
Member

Thanks that fixed the problem for shorter paths but the problem persists for longer motion paths.

Then I'm guessing you changed the scale / value, but did not disable.

Is there a parameter that can be edited within the move_group cpp source files to solve this?

No. And you should not look for that either. This is configuration work, not the "edit the source code" side of things.

@jclinton830
Copy link
Author

jclinton830 commented Dec 14, 2018

Did both but was still having problems, figured out it was to do with the namespaces.

I had to include move_group/trajectory_execution/ in front of both execution_duration_monitoring and allowed_execution_duration_scaling

Anyway I got it to work after that. Although the motions are always executed after a delay of 20 seconds after the motion is planned. Do you know what triggers this delay? It always takes 20s to execute the trajectory, I have timed it a few times.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Dec 14, 2018

Did both but was still having problems, figured out it was to do with the beachnamespaces.

"beachnamespaces"?

In any case: if you're using rqt_reconfigure, you'll have to redo that every time you start everything up. Dynamic reconfiguration changes are not persisted.

Although the motions are always executed after a delay of 20 seconds after the motion is planned. Do you know what triggers this delay? It always takes 20s to execute the trajectory, I have timed it a few times.

Can you check bullet 2 in #158 (comment)?

@jclinton830
Copy link
Author

Can you check bullet 2 in #158 (comment)?

@gavanderhoorn Sorry about my late reply, I checked the branch name and it is kinetic-devel.

screenshot from 2019-01-08 14-17-34

In any case: if you're using rqt_reconfigure, you'll have to redo that every time you start everything up. Dynamic reconfiguration changes are not persisted.

Do you think this causes an issue with the delay? If so then how do I find out if rqt_reconfigure is in use?

Still having the 20 seconds of delay before the execution of a trajectory. Any help would be much appreciated. Thank you.

@gavanderhoorn
Copy link
Member

Can you check bullet 2 in #158 (comment)?

@gavanderhoorn Sorry about my late reply, I checked the branch name and it is kinetic-devel.

It's important that it's not just kinetic-devel, but actually a (very) recent checkout.

Can you make sure you have 4b11bf6 in your clone and installed on the robot?

@jclinton830
Copy link
Author

Can you make sure you have 4b11bf6 in your clone and installed on the robot?

@gavanderhoorn After looking through the ROS_Motion.MOD file on both clone and the robot controller I can confirm that it matches with 4b11bf6.

Any other suggestions??

@gavanderhoorn
Copy link
Member

Just to diagnose this: can you completely remove everything related to the driver from your controller and try this version?

I don't understand the 20 seconds, as that is specified nowhere in the code (10 seconds is though).

@jclinton830
Copy link
Author

We tried this, and that did not help either :(

@gavanderhoorn
Copy link
Member

Ok.

I don't understand where the 20 seconds come from, as that is not a nr used anywhere in the code afaict.

Can you please provide a complete description of:

  • versions of code used (ROS, abb_driver (git rev-parse HEAD) , other ABB pkgs) including local changes to pkgs
  • your workspace (how you created it, what pkgs are in it, etc)
  • your robot controller: RW version, any special software options
  • how you run everything, both:
    • on the ROS side (roslaunch commands, any RQT UIs used and how, how you command motion)
    • on the robot/controller side (buttons pressed (on both the controller and the TP), controller's mode, etc)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants