0
$\begingroup$

Rosanswers logo

Hi,

This is a continuation of the conversation from the github issue of fanuc_driver as per the request of the maintainer. You can find the original conversation here.

Answer to the questions raised by gavanderhoorn there:

Ok, so steps 1 & 2 of Running the ROS-Industrial programs on your Fanuc robot are successful? The robot visualised in RViz shows the same motion as the real one.

Yes. I made sure that the RVIZ was reading the robot states and as I manually moved the robot joints using the pendant, I could see it move on RVIZ.

Is this still with only rosstate running on the robot?

Again: you're only running rosstate at this point?

If you answered yes to all my questions, then you should essentially move to step 3 of the tutorial I linked ("On the TP, start the ros TPE program"). In order for the robot to execute your trajectories, you need to be running the ros TP program. rosstate, as the name implies, only broadcasts joint states, it cannot perform any motion.

Yes. I was only running rostate at that point. After reading your response I ran ros from TPE (which, correct me of I'm wrong, has RUN ROS_STATE, RUN ROS_MOVESM, CALL ROX_RELAY). RIVZ is still able to read the states from the robot but even now sending commands to the robot does not work.

For example, I still get controller takes too long error:

[ INFO] [1438288838.217184191]: ParallelPlan::solve(): Solution found by one or more threads in 0.122578 seconds
[ INFO] [1438288838.217382544]: manipulator[RRTkConfigDefault]: Starting planning with 1 states already in datastructure
[ INFO] [1438288838.217470676]: manipulator[RRTkConfigDefault]: Starting planning with 1 states already in datastructure
[ INFO] [1438288838.232510276]: manipulator[RRTkConfigDefault]: Created 9 states
[ INFO] [1438288838.272224274]: manipulator[RRTkConfigDefault]: Created 37 states
[ INFO] [1438288838.272384298]: ParallelPlan::solve(): Solution found by one or more threads in 0.055077 seconds
[ INFO] [1438288838.274225942]: SimpleSetup: Path simplification took 0.001782 seconds and changed from 3 to 2 states
[ERROR] [1438288841.993446399]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 3.708576 seconds). Stopping trajectory.
[ INFO] [1438288841.993557245]: MoveitSimpleControllerManager: Cancelling execution for 
[ INFO] [1438288842.099845429]: ABORTED: Timeout reached

If you can tell me which particular variant of the M-710iC you have, I might have an unreleased support pkg for it.

Let me know if you need any more details about the robot.

I just realized when setting things up, for the TPE Programs section, I just left everything at default. I am referring to this because I didn't know how to edit it using the teach pendant (in particular, I didn't know how to get the colon in 1:ROS-I rdy). I'm not sure if this will cause any problems but thought I should let you know about it.

EDIT

Ok. Please tell me exactly how you setup your workspace, which versions of the packages you installed, what you installed, and what you are trying to run (launch files, etc). Please update your original question with that information.

I followed the tutorials fully. The file I'm trying to run is moveit_planning_execution.launch under anuc_lrmate200ic_moveit_config. I have all the directories relating to lrmate200ic and have removed the others (I assumed this would be the closed to the one I have).

After powering on the controller, I launch the ros TPE program and get the following:

229354 RSTA Waiting for ROS state prox
29354 RREL Waiting for ROS traj relay

After launching moveit_planning_execution.launch, I get the following:

29398 I RSTA Connected
29398 I RREL Connected

I noticed that after quitting Moveit! I get an error (in red):

29448 E RSTA jnt_pkt_srlise err: -67208

If I launch Moveit! again, I see that only RSTA launches and says waiting:

29448 I RSTA Waiting for ROS state prox

and RREL does not launch. I had to reboot the controller and launch roscore again to get everything right. Anyway, I set execution_duration_monitoring to false and ran execute from Moveit and noticed an error motn-049 attempt to move w/o calibrated. I found out how to calibrate it and actually saw the robot move after giving the robot command. Although the robot moved, where it moved and where Moveit! thought it moved did not match up (which I'm guessing is because I am using a different model for the robot 200ic instead of 700ic). Either way I think I have it somewhat working.

Forgive me asking, but how much experience do you have with these robots? Editing a TP program should not be too difficult.

I don't have any experience at all. I started working with these robots a week ago (part of my internship). I have a couple of questions:

  • I don't know how to run the robot in AUTO mode. Could you please direct me on how to do it?
  • Do you have the URDF for the M710ic/50 model? If you do, could you please share it.

Thanks!


Originally posted by Sudarshan on ROS Answers with karma: 113 on 2015-07-30

Post score: 0


Original comments

Comment by gvdhoorn on 2015-09-04:
@Sudarshan: could you please mark this question as answered?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Edit (2015-09-04): this turned out to be user error. Everything was installed and setup correctly, but as the controller was not in auto mode, the operator has to keep the deadman switch, and shift depressed, or else the programs running on the controller will be paused.

Failing to do so resulted in the issues described in this Q/A. An off-list troubleshooting session quickly got to the root cause of the problems described, and everything started to work correctly.


Ok. Please tell me exactly how you setup your workspace, which versions of the packages you installed, what you installed, and what you are trying to run (launch files, etc). Please update your original question with that information.

The manipulator we are using is Fanuc Robot M-710iC/50.

I like the large image you included, but just the model name would've sufficed :). We could be needing all that space for question updates pretty soon.

Yes. I was only running rostate at that point. After reading your response I ran ros from TPE (which, correct me of I'm wrong, has RUN ROS_STATE, RUN ROS_MOVESM, CALL ROX_RELAY).

The ros TPE program does start the programs you mention. Can you add what kind of feedback you get on the TP once you've started the ros program? I'm looking for things like

12345 I RSTA Connected
12345 I RREL Connected

If you don't see that, something is wrong, and trajectory execution will not work no matter what you try.

RIVZ is still able to read the states from the robot but even now sending commands to the robot does not work.

I'm just going to include this for completeness, but do know that if your controller is not in AUTO mode, you'll have to keep pressing SHIFT + keep the deadman depressed for trajectory execution to work.

[..] I still get controller takes too long error:

With the way the current driver works, you'll always get that error (we cannot get 100% performance out of the controller), so I'd advise you to either allow way more time for execution (use the scaling factor) or disable the execution monitoring completely. See the fanuc_driver/Troubleshooting - Robot stops at seemingly random points during trajectory execution section for info on how to that (the linked ROS Answers post has an example that shows how to edit your launch files).

I just realized when setting things up, for the TPE Programs section, I just left everything at default. I am referring to this because I didn't know how to edit it using the teach pendant

You'll want to make sure that none of the used flags, integer or position registers is used by other programs on the controller. If the fanuc_driver Karel and TP programs are the only one running on the controller, the defaults are probably free to use.

(in particular, I didn't know how to get the colon in 1:ROS-I rdy). I'm not sure if this will cause any problems but thought I should let you know about it.

Forgive me for asking, but how much experience do you have with these robots? Editing a TP program should not be too difficult.


edit:

I have all the directories relating to lrmate200ic and have removed the others (I assumed this would be the closed to the one I have).

The LR Mate 200 robots are some of the smallest Fanuc has, both in reach and in max payload. The M-710iC/50 is a moderately large robot with much lower (velocity) limits, so I would've gone for the files of the M-10iA for a first test.

I noticed that after quitting Moveit! I get an error (in red):

29448 E RSTA jnt_pkt_srlise err: -67208

That is normal, as closing RViz (not MoveIt actually) takes down all of the other nodes, including fanuc_driver, which then disconnects from the programs running on the controller. That is what that 'error' tells you.

If I launch Moveit! again, I see that only RSTA launches and says waiting:

29448 I RSTA Waiting for ROS state prox

and RREL does not launch.

That is not ok. Both RSTA and RREL should notice that you disconnected. Did you let go of either SHIFT or the deadman in the middle of a trajectory execution? If yes, it could be that RREL got hung up waiting for the last traj pt to be completed, which prevents it from detecting a closed socket.

Letting go of either SHIFT or the deadman causes the controller to pause both the ROS and ROS_MOVESM programs, so unless you continue or restart them, things will not work properly anymore.

Btw: neither of them 'launches': they are still running, just waiting for new connections.

I had to reboot the controller and launch roscore again to get everything right.

That is not necessary: just ABORT all programs on the controller by using Fctn→ABORT ALL on the TP. You might have to use that twice, depending on in which state the programs are. Then restart the ROS side if necessary.

I don't have any experience at all. I started working with these robots a week ago (part of my internship).

Then please do yourself a favour and spend some time getting familiar with the robot, controller and the TP (ideally by following a course, or learning from someone with experience) before attempting to use it with ROS. Without experience, judging what is 'normal' behaviour for the machine is hard, and you could end up damaging equipment, others or yourself. Using our tutorials is not a good way to learn how to handle these dangerous robots.

This may sound pedantic, but I've seen too many near-accidents with these things to ignore it.

  • I don't know how to run the robot in AUTO mode. Could you please direct me on how to do it?

This is typically done using the selector switch on the control cabinet. Please do read the safety instructions before using it.

  • Do you have the URDF for the M710ic/50 model? If you do, could you please share it.

I've just pushed a fanuc_m710ic_support package to the fanuc_experimental repository. Installation and use is identical to all other Fanuc support packages. No IKFast plugins nor MoveIt configurations are included at this time. See also wiki/fanuc_m710ic_support.

Note that this package is experimental: I've checked it as much as I can, but you are responsible for making sure that joint limits and the general configuration correspond to the specific variant you have there.


Originally posted by gvdhoorn with karma: 86574 on 2015-07-30

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.