It is currently Wed Oct 21, 2020 4:40 pm




Post new topic Reply to topic  [ 13 posts ] 
 New Motion Control Software 
Author Message

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post New Motion Control Software
Hi - I have developed some new software for realtime, stop motion and timelapse applications. This software is adaptable to any existing hardware. More information is on this site :

http://www.bfg-motion.com

I am very interested to hear feedback on usability and features.

Basically I have two software versions.

One is programmed by keyframes - at this stage just point to point but with controllable ramps, smoothing and offsets. Playback can be at any fps plus single frame and timelapse modes. It can also directly trigger DSLR's and control shutter speed.

The other program will record moves made with encoder handwheels then play them back at varying speeds etc. It is designed mainly for remote repeat head applications.

The software will run on a laptop and requires an offboard USB processor to interface to motor drivers and camera. I would like to make the software as cheap as possible, but the cost of the controller plus the need to recoup atleast some effort means it will not be free... :cry:

Please feel free to ask questions or offer suggestions...


Wed Jan 20, 2010 5:10 pm
Profile
Post Re: New Motion Control Software
Hey welcome, very cool!

How does it connect to stepper drivers and or connect with a camera?

oh nevermind I see: "offboard USB processor to interface to motor drivers and camera"

I'd encourage you to consider making it 'openmoco friendly' :-)


Wed Jan 20, 2010 5:35 pm

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Hi...

Unfortunately the software does not work by itself - it requires a dedicated microprocessor to ensure strict timing and coordination of events. The processor was designed for CNC and has inbuilt functions for creating smooth ramps and coordinating axes accurately. Generally this approach is necessary for realtime motion control systems and means you have to pay for the hardware even if the software is free...

Actually the reason I never got involved with open moco is because it seems committed to the Arduino which I checked out and discovered is very limited in number of channels, and maximum step rates are very low - maybe adequate for timelapse but not fast enough for realtime motion control. For example - my processor can output step rates in excess of 2Mhz with 8 motor channels running simultaneously. So I think it has plenty of headroom...

Even so this solution is not expensive compared to commercial systems like Kuper and Flair.
Also it is kind of "open" given it can be used to drive any off the shelf motors and drivers, so it's not tied to any particular mocon rig hardware. I will include the cost of the motion control card and connections with the software, and it will be sold as a package - though upgrades will be free.

G


Wed Jan 20, 2010 8:48 pm
Profile
Post Re: New Motion Control Software
geraldft wrote:
Hi...

Actually the reason I never got involved with open moco is because it seems committed to the Arduino which I checked out and discovered is very limited in number of channels, and maximum step rates are very low - maybe adequate for timelapse but not fast enough for realtime motion control. For example - my processor can output step rates in excess of 2Mhz with 8 motor channels running simultaneously. So I think it has plenty of headroom...


G


While I can neither support or counter any argument about number of pins available, I do take some issue with the statement that the arduino is too slow. An arduino duemilinova is capable of producing pin change rates at 2.66 Mhz using poorly-optimized code, and as high as 8Mhz - that's 8 million steps per second, which no offense - I don't know of any steppers that would even allow such speeds. Now, if one's code is poorly optimized, and steps through motor by motor, then yes, this could be an issue. However, it's fairly easy to define efficient code. (Understanding that some things are OK in a high-level language, and some things are just better written in assembly.)

See: http://www.arduino.cc/cgi-bin/yabb2/YaB ... 286016/all

I'm not going to make any demagogical statements here about the amount of processing capability in the arduino vs. anything else, but I do want to counter the statement about its inability to do something. It's perfectly capable of doing real-time interactive stepper control, you just have to understand how to do it. (And using the built-in pinMode is not the way.)

Either way, it's coming in a future version of the OM engine, and will run on an arduino - so it'll settle its self then. =)

!c


Mon Feb 08, 2010 10:40 am

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Hi

With due respect this is not just a question of Mhz, though I used that example previously.
The device I use is a dedicated motion controller designed for CNC applications. It features sophisticated dedicated processing for creating time critical coordinated motion of multiple channels (8) simultaneously. (Think of the speed and precision required for efficient machining with multiple axes coordinated to create subtle move profiles at high speed.)

One of the ways it achieves this is through onboard memory - so that move profiles and c-routines can be uploaded to the device and executed on command. The controller executes the moves with inbuilt motion algorithms using the data stored in its' memory. It is not relying on updates received via serial or USB link. This means the PC controlling it does not have to be concerned with critical timing/synchronisation issues or be responsible for potential jitter in the output. And I'm not just talking about creating a certain Mhz step rate. The rate is being constantly recalculated and adjusted on the fly at a 90usec rate. If you are using servo motors it is also doing all the processing to monitor and control the PID feedback loops. This is not trivial. And the result is a smoothness of control I have not seen in most other motion control software to date.

So - it's not just Mhz but mathematical precision combined with processor grunt and hardcoded motion control algorithms.. and being able to control 8 stepper or servo motors simultaneously and in sync, as well as handle numerous IO's for camera trigger and encoder feedback. For my own professional work this is a prerequisite.

I'm not an expert but it doesn't seem the Arduino could handle so much simultaneous activity. :o

The nice thing is that I have been able to create a full piece of software which does about 90% of what I need in a relatively short space of time. ;)


Tue Feb 16, 2010 4:03 am
Profile
Post Re: New Motion Control Software
Gerald, to be clear - I have no issue with anything you've done! It sounds like you've achieved your goals within your desired timeframe, and with your desired capabilities.

I had only taken offense to the statement "arduino can't run steppers in real-time." I hear that a lot, and it's quite false. In fact, "arduino" is a programming environment, there are "arduino boards" which make the chipset easy to utilize, but underneath it all is an ATMega processor that drives many CNC applications. It's of no less or more value than the pentium processor in my laptop - it's all about what you put on it. Clearly, you had a need to do as little dev on the board as possible - I understand that, and I make no qualms with your choice. I just had issue with "arduino is not capable" of driving steppers in real-time. Mind you, the standard approach with low-cost boards (I can get a brand new mini pro 328 for $15) is to loosely-couple functionality (i.e. use multiple ones with specialized roles and well-defined interface between them). Just as your application has done, and that is the standard approach. One wouldn't normally try to do everything in the world with a single chip.

Also note, it seems like you think that my arduino-based system requires constant interaction from the control interface? That is not correct, just like you mentioned, what I have done is simply configured built-in algorithms from an external source. So, our implementations are very similar in that regard. =) BTW, unless there are multiple processors, or the CPU on that chip has hyperthreading, nothing is happening simultaneously *grin* - it's just well-laid-out-execution path. And, yes, if there's enough memory, it can handle all of that - you just have to be a good developer.

Please don't take my statements as in any way derogatory towards your work. I just took issue with the singular statement.

!c


Tue Feb 16, 2010 7:42 am

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Ok. I'm not sure where this leaves things though. Some things are a little academic I guess
- but can you summarise what the Arduino is capable of in terms of number of channels running synchronised motion profiles?


Fri Feb 19, 2010 7:45 pm
Profile
Post Re: New Motion Control Software
On the AVRs, you can set up to eight ports low or high at one time in 2 instructions to the CPU (motor step pulse), and turn on or off any of the 8 at one time, again using two instructions. So that's ten instructions for the pulsing/enabling or disabling - allow one twenty to forty instructions to do the math on which pin should be enabled as far as a ramp goes and run a loop. Given 16M instructions per second, we hit around 363k cycles like that.

Well-written code would allow for driving 8 motors at a maximum (absolute most, in practice I'd say) step rate of 363 Khz, and allow for pre-programmed ramping. Taking full steps on a 1.8' motor, that would allow each motor to move 1,815 rotations per second. You'd need a pretty high voltage and current driver to take advantage of those speeds. Wouldn't be a perfect square wave, but you could drive just about any driver that way.

If one wanted to have live interaction (i.e. joystick or something), you would cut that in half or eighth (if not more, depending on the implementation).

The important thing, however, is that your project is working, and seems to be coming along well. I like your interface - do you have any videos of it running a head?

!c


Fri Feb 19, 2010 8:46 pm

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Hi

Thanks for the info. What I am working with is more of a "canned" system so I don't have to do much coding of basic motion profiles - they already exist in the hardware - though I need to replicate them mathematically to display the moves graphically and predict move times. This also includes a "jerk" factor which provides for smoothing of moves. (Without jerk, simple ramps with linear acceleration will cause "lurching" when applied to dollies in real time.)

If I want to generate moves with more random profiles using bezier curves or recorded motions I can also do that - currently I am using 100hz data rates which is very smooth. (some interpolation of the 100hz rate is performed by hardware.)

I am working on a video demo of the program. Hope to have it up soon - now also including flexible support for generic USB gamepad/joysticks. :D

G


Sat Feb 20, 2010 4:40 am
Profile

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
PS - there is now a demo of the recording software on my site. I have extended the software to 6 channels plus overdub function. You can check it out at http://www.bfg-motion.com/index.php?p=1_4

(The "Hothead Main Interface" is a playable flash file...)


Sat May 08, 2010 4:46 am
Profile
User avatar

Joined: Thu Apr 29, 2010 3:03 pm
Posts: 32
Location: gold coast Australia
Post Re: New Motion Control Software
WOW ! good work mate . once i got past all the tech talk on this thread( which i dont really understand and went and checkout your movie on the interface program. Man thats great!!! so easy to use and record and dub over moves and heaps of cool stuff.
FOr someone who knows about moco but would think that the programming would be a major pain in the neck , that is simple and easy . :o Big congrats on writing this prog mate. I may have to purchase a copy. How much is the prog?
Cheers
Mossy

_________________
half man half robot .fascinated with the future...push the boundaries.
http://www.figments.com.au


Fri May 28, 2010 11:33 pm
Profile

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Thanks for the compliment. As a professional motion control programmer I am was quite aware of how difficult existing software is to use, so I tried to design something that would be user friendly. You can contact me via my web site for pricing etc.


Fri Jun 04, 2010 10:22 pm
Profile

Joined: Wed Jan 20, 2010 4:50 pm
Posts: 561
Post Re: New Motion Control Software
Another update...

The software is a suite of three applications which can run on any Windows XP or Windows 7 computer. X86 and X64 supported.

1. The original Mantis - simple, easy to use point to point programming with adjustable velocity and smoothness of ramps.
In addition to real time it has advanced stop motion and timelapse modes. ie. move/shoot, motion blur etc.

2. Hothead. 8 motor channels and 8 encoder inputs. Mainly for recording / overdubbing and playback of live moves. Exports and imports kuper ascii files. Also has some data editing like scaling, smoothing, offsets etc.

3. Mantis II. More sophisticated multiple keyframe program. 8 channels. Unlimited keyframes. Bezier curve editing. IMport Exprt of files to CGI / Kuper/ Flair

All software works via USB with dedicated BFG controller. This has a fast microprocessor to handle all realtime motor control, independent of the PC. Motors are driven by step direction pulse. Rates of up to 500 mhz are supported.


Sun Sep 26, 2010 7:38 am
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore. pozycjonowanie