Jump to content
  • Advertisement
Sign in to follow this  
robot_builder

[.net] .NET 3D Robot Arm Control

This topic is 3196 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Okay, I've been researching for a week (30+ hours) and I have still not skinned this cat yet. I figured it's time to ask for the help of some experienced people. End Goal Summary: I need to create a custom control for use in C# and vb.net forms which has a robot arm model in it that has it's variables/functions/etc exposed to the form for controlling the arm. For example: The form would have a set of sliders for controlling the individual joints of the robot arm through calls like this robotcontrol.arm.joint(2).position = 45 We are experienced .NET coders so I'm not looking for any advice in that arena. What I'm trying to figure out is the most intelligent way to get a custom 3D model control into the .NET world. So far I have researched the following methods: 1) Use a 3rd party control which imports and renders 3D CAD files. We have gotten pretty far with this one, but a major stumbling point is that there is no relational child/parent structure for the parts or joints between them. We essentially have to fake it redrawing the entire arm with every degree of movement. It's a mathematical nightmare and total CPU hog. What is nice about this is that the control comes with the default features build in. Pan/zoom/rotate/import files etc. 2) Use Blender/Maya/similar to model the arm then create control around model I've been able to successfully convert 3D CAD files in Blender and am learning how to make constraints between them, but this is as far as I've gotten. I haven't been able to find any info on how I could create a .NET control which controls the model and opens up access to my arm joints to do something like this: robotcontrol.arm.joint(2).position = 45 (I did find this software http://www.leadwerks.com/ which seems like it could help with this approach.) Is this method possible? Can I expose things like individual joints on Blender models in .NET? 3) Build the whole control including arm from scratch using OGRE or DirectX This seems like a ton of work and a last resort. It seems we would be reinventing the wheel here. We can't be the first trying to create something like this... Any sage wisdom out there on what tools and technologies would best accomplish our goal? I've spent many blurry eyed nights already and still feel lost in the forest on this one! :P robot_builder

Share this post


Link to post
Share on other sites
Advertisement
Using the "use the 3rd party thing that doesn't know about joints" part, would it be less of a CPU hog if you didn't recompute the entire arm each time? With one mouse, you can only change one slider at a time, leaving two parts of the arm which are temporarily static: the base which *is* static while you move that slider, and the parts that are on the OTHER side of the joint which are moving around as a group in space.

As far as using .NET sliders, I'm in a not-that-dissimilar boat, and I'm using WPF for the controls (and I think they dropped sliders as a control, although apparently there's some other control that you can change the style of sufficiently so it's basically a slider, possibly the scrollbar) and rendering DirectX inside an Image with the source d3dImage. That's working pretty well, except for message handling (I can't get my mouse messages while in my C++ code that handles the rendering), and it was straight-forward.

I'm sorry if I skipped something like proper grammar, but I'm having a 5-year-old trying to talk to me about the hole in her pants and the sparkles on her boo-boo, kind of distracted.

Share this post


Link to post
Share on other sites
This may or may not be pertinent, but there is a project called monoBOTICS, which:
Quote:
[...] aims to become to an OpenSource Framework, to facilitate the tasks of design, simulation and implementation of solutions for areas of Robotics and Automation, both for people with basic knowledge of programming, as for more advanced developers.


It seems to rely on C#. I don't know anything more about this project, but it might be worth checking it out.

Share this post


Link to post
Share on other sites
Just thinking out loud: would it be possible to convert the model to an X model (DirectX) including the joints? In that case adding a DirectX control (SlimDX?)to render the arm might not be that difficult.

Did you have a look at Microsoft Robotics Studio?

Share this post


Link to post
Share on other sites
Can one of the 3rd party controls render multiple CAD files in one window? If you had a separate CAD file for each part of the robot and rendered them at separate positions and locations, that should do the trick.

Otherwise, have you looked at XNA? This is like your last resort, but I've found that it's ridiculously easy to get something up and running in XNA, and you only need really basic functionality for what you're asking.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!