Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Robotic Arm Movement

Robotic Arm Movement

Robotic Arm Movement

Hey all.

Long time NX user in need of some help. Running NX 10.

I have a robotic arm CAD model that has 7 separate joints in it. Each joint angle is controlled through expressions so I can say I want Joint 1 to be 45 degrees, Joint 2 to be 85 degrees, etc... This works great for quick CAD model changes but really hinders other operations.

Currently I am trying to determine if this arm can reach certain points in space. Controlling each joint through expressions is TERRIBLE for this. I basically have to guess on check on each joint angle and just hope I get close. I end up spending hours to figure out if one point is accessible.

Alternatively I have created a simplified model where each joint is its own component and each component is constrained at the joint. This lets me dynamically move the last joint of the arm and each joint updates along the move. This is extremely finicky at times because NX sometimes does not know what to do to allow a movement to happen. The joints will sometimes spasm out of control or you'll get very odd configurations.

Does anyone have a better way to do this? I basically have a robot arm with a fixed base and a fixed point in space and I need to connect the dots efficiently. Another aspect to this that I would like to add is rotational angle constraints to each joint. For example, joint 2 can only rotate between -100 and +90 degrees about joint 1. This information is imperative to my CAD checking to see if these positions are possible.

Is this possible? Am I asking too much from NX? Thanks!

RE: Robotic Arm Movement

We had the same problem, NX 11, or was is NX 12, you can put limits on those angles in your assembly. Which makes it nice. We were trying the same thing, and we just got our robot close enough to check for clearances. Siemens has a product called robot expert, or something like this. This a package where you can create code from the robot movements you do also. We never used it but it looks really nice. Just a quick thought.


RE: Robotic Arm Movement

If you want something simple and fully integrated into NX, take a look at Animation Designer.
You will of course need to upgrade to a version of NX that is in maintenance (NX12 or later).

RE: Robotic Arm Movement

I looked up that address that Sdeters showed, Clicked the "Overview video".
Now i know that one can zoom and pan and , would you imagine !, -Rotate the view!
Yep. But nothing about the robotics.
I assume that somebody linked the wrong video.

your Robot arm has 7 separate joints, can you upload an illustration on this arm ?
I imagine that the "wrist" is a couple of these 7, If you have this as an assembly with partially constrained components, You should be able to drag ( using the Move component) but then select the last link before the wrist to move the arm into position, then select the wrist adjust the gripper (or whatever attached?. ?
I have done this with a model of a skylift to illustrate access in a factory. I added the skylift to the factory assembly, then selected the basket of the skylift and RMB -Override position. Then drag the arm using the 3-axis handle.


RE: Robotic Arm Movement


I can not give a good illustration of my arm. Imagine it looks something like this Canada arm on the ISS

Each joint has a large range of motion (almost 360 degrees). I have done exactly what you talked about and have used move component to move the last link. This works partially but NX seems to freak out every so often. Its as if the joints will get into a spot and then no more moves can be made. Also, due to how complicated the assembly is, these moves take a long time.

I need an easy way to say whether or not the end of the arm can reach certain points in 3D space and understand what the joint angles are so I can know if the robot can actually maneuver into said position

RE: Robotic Arm Movement

You need an inverse kinematics solver for the linkage if you want to reach a specific point.

What I would do is to just map it. It's easy enough to run each joint in 5 or 10 degree increments and record the end effector position and orientation. that's 35^7 for 10 degree increments. That's 64,339,296,875 X,Y,Z,u,v,w real numbers. I think that's about 3 Terabytes of data.

If all you care about is reach, then you can break the result space into compartments of arbitrary size and just pass-fail for the ability to enter them. I found that such a thing gets smoother if the last degree of freedom is assumed to generate an arc and then evaluating each compartment along the arc.

RE: Robotic Arm Movement

No, what i am trying to say is that if you drag link after link,
starting from the (fixed?) base and outwards and adjust one at a time to a "roughly correct position".
The math should not get locked up. Or ?
When you are close to the final solution , you can probably drag the outermost link.
But if the arm have zillions of degrees of freedom, and you go straight for the last link and do radical changes, it might lock up pretty soon.
This is a quite large equation system with many unknown variables to solve simultaneously.


RE: Robotic Arm Movement

Toost, the only problem I have with that method is being able to quickly determine if the joint angles I manually put in are valid. For example, joint 4 may only have a range of motion between -120 degrees and +185 degrees. I could very easily exceed those numbers by manually moving each joint and then fine tuning at the end.

Is there anyway to have NX spit the joint angles out after I am done moving something?

Thanks for the help guys

RE: Robotic Arm Movement

What about :
If the rotation angle is left unconstrained , and you add a measurement using the "new" measure tool , create an angular measurement ( de-select the other types of dimensions) , tick "associative" and "display annotation" then those dimensions will update in real time when you drag. ( It can be a bit tricky to get the angle as desired)

Also i hope that you know that you can drag semi-constrained components when the assembly constraints dialog is on the screen.
place the cursor on top of a component and drag.


RE: Robotic Arm Movement

I like this method. One caveat. Can I have the measure angle tool output negative angles? Any angle it gives me is positive.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


White Paper - Strategies to Secure Connected Cars with Firewalls
White-hat hackers have demonstrated gaining remote access to dashboard functions and transmissions of connected vehicles. That makes a firewall a vital component of a multilayered approach to vehicle security as well as overall vehicle safety and reliability. Learn strategies to secure with firewalls. Download Now
White Paper - Model Based Engineering for Wire Harness Manufacturing
As complexity rises, current harness manufacturing methods are struggling to keep pace due to manual data exchanges and the inability to capture tribal knowledge. A model-based wire harness manufacturing engineering flow automates data exchange and captures tribal knowledge through design rules to help harness manufacturers improve harness quality and boost efficiency. Download Now
White Paper - What is Generative Design and Why Do You Need It?
Engineers are being asked to produce more sophisticated designs under a perfect storm of complexity, cost, and change management pressures. Generative design empowers automotive design teams to navigate this storm by employing automation, data re-use and synchronization, and framing design in the context of a full vehicle platform. Download Now
eBook - Simulation-Driven Design with SOLIDWORKS
Simulation-driven design can reduce the time and cost of product development. In this engineering.com eBook, we’ll explore how SOLIDWORKS users can access simulation-driven design through the SOLIDWORKS Simulation suite of analysis tools. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close