vcHelperJointMove Error

I am currently working on a project with Visual Components. I’ll walk you through what I am trying to achieve.

Step 1: Forklift delivers engines to 4 disassembling stations (No issue)
Step 2: Large generic robots “lift” engine to conveyor belt via works process
Step 3: Smaller generic robots “arbitrarily disassemble” into generic components which are conveyed out (No issue)

For Step 2, the first time the generic robot “carries” the engine to the Works Process works there are totally no issues. However, when the forklift delivers another engine to the same robot, there is an error while “carrying” to the works process.

There error message “GenericRobot #2::GenericRobot #2::Executor: vcHelperJointMove: P1: Position is out of reach of the robot.”

It affects all the generic lifting robots during the second round of delivered engines from the forklift. How do I solve this issue? Thanks a lot!

Please upload your layout again or provide a screenshot. In Generic Robot #2, enable its Envelope property and access the Program tab. Run the simulation and verify where P1 is located. Is the position inside the envelope? If yes, check the orientation of the second engine as well as the color of P1. If it is red then there is a problem. Hard to tell without the layout though.

Apologies for that. There was an error with the uploaded file.

OK. The error occurs around 6:14. Robot is executing task named pick888. Error is shown in the following image. Note that you can right-click the image and view it at larger scale in separate tab using Chrome.

Quite a large layout, so I hid a bunch of stuff.

Ask yourself why this is happening.

  • You have 4 stations needing ProdID 888.
  • So naturally, a robot executing a Feed task for ProdID of 888 will try to place the engine at a station requesting it.
It is not your fault, my friend. Your solution just needs more logic. You want your large robots to go where you want them not where they think they can go.

So how to fix this?

Well, to avoid too much work, you could change the ids before feeding the engines and then change them back once they reach the stations. {888,888,888,888} -> {A888,B888,C888,D888}. That could be as simple as creating a GlobalID list in the Works Task Controller and then executing a GlobalID task in each of the affected stations.

At the stations feeding the engines to robot, you have a ChangeID task already listed in each process. So a quick edit of Task notes in 8 stations could fix this and get you going onto the next step.

I don’t want to save and reupload a large layout, so to prove the concept, edit Works Process #19 and 20 as shown in the attachment.


Wow did not realise it was such a trivial issue. Thanks a lot! Really appreciate the prompt replies :slight_smile:

Hello I have a similar problem in the simulation
After a few minutes of running the simulation will stop
The simulation stops saying that position is out of reach?
Even though the robot is in comfortable reach position

GenericRobot #3::GenericRobot #2::Executor: vcHelperJointMove: P1: Position is out of reach of the robot.” [ error of this kind]

Can you please help me with thisSimulation.vcmx (1.9 MB)
I have also attached a simulation of the visual components file

Thanks and regards
Jeson Floyd Miranda