Requested Features for EMC
Note: This page is a wishlist! Features listed are most likely not implemented yet!
please add the features you would like to see in emc. Add your name and a way how to get contacted for further clarifications.
- modular motion controller: would allow independent development of different trajectory planners (jerk-limited, double-jerk limited etc) and blending algorithms (circles, nurbs etc.)
added by: AW
- multiple motion controllers: two or more separate objects, each with its own 6 DOF reference frame relative to the earth, a kinematic description of how they are related to each other, and a mechanism to synchronize them. useful for "12 strut fscking oligopods" :) and lathe threading, multiple tool slides, stacked rotary tables, etc etc etc
added by: fenn
- G06 parabolic arc support: to specify & carve parabolic shapes. This is described in the Machinery Handbook #27 in the cnc section. Similarly, but not quite exactly, the ability to carve an elipse or section thereof would be nice,
added by: Gene/USERLIST
- dynamic motor limit adjustment:adjusts max accel (torque) of servos based on motor speed
added by: fenn
- dynamic trajectory limit adjustment: allows a machine to accelerate faster in it's sweet spot than at the limits of motion.
added by: fenn
- "hot-potato" synchronization:in combination with the above two features, this switches which variable is the "master" based on its max acceleration at that particular instant
added by: fenn
- remove trajectory velocity limits: is there any reason to limit the velocity of the tool? (joint vs axis limits, why axis limits at all?)
added by: fenn
- work envelope definition:ability to describe the work envelope so my hexapod doesn't go banging into walls or try to rotate too far. (this might get complicated, since for example hexapods have a reduced maximum translational offset when they are rotated. try simultaneously tilting your head to the left and shifting your head to the right. ow!)
added by: fenn
- hal support for comedi: comedi is a rather big library of data acquisition card driver software.. a generic comedi component could allow access to any of these cards with the easy integration of hal. a huge increase in compatability for comparatively little development effort, versus writing a driver for each card.
added by: fenn
- Packages: easily installable packages for the most common linux distributions
added by: zwisk
- SERCOS support: support for a digital interface for communication between digital controls, drives, I/O, sensors and actuators, i.e. SERCOS/IEC 61491 (http://sercos.com/)
added by: Ronald
- macro language: support for a macro language, the macros written should be able to command motion & io. the macros should have english-readable names and accept arguments and nesting. WIP: see PythonBindings. I swear I'm going to work on this some day...
added by: alex_joni (on IRC) and fenn
- mirror image for lathes allows a tool holder on the other side of cross slide center to be used without special programming. Uses a designated g or m code to specify mirror image on or off. Mirror image automatically changes the spindle and x axis to move in the opposite direction. It also changes to a different coordinate offsets (definable). This is so a program used for the front turret could be used for the back turret just by adding a g code and specifying a rear turret tool. another option? The switch to mirror image could also be made automatic when u pick a certain tool number.
added by: Chris Morley
- .DXF import: importing of a r12/r14 .dxf file with scaling (for simple 2d engraving) (i'd like stop using windows only to make this code ;)
added by: chr0n1c
- JOG under PAUSE: Alow users to jog machine when program is paused (can be in middle of the line). The TouchOff? should be enabled. MDI can be useful.
Useful feature for removing swarf and broken tools.
added by: Slavko
- Jog under M0/M1/M6 ToolChange: Alow users to jog machine when program is paused within program. The TouchOff? should be enabled. MDI can be useful.
Useful - near mandatory for spindles with collets as height is unknown.
added by: Slavko
- __new feature name__: ___describe the new feature___
added by:
IRC = #emc, irc.freenode.net
SF = http://sourceforge.net/users/<user_name>/
DEVLIST = developers mailing list, http://lists.sourceforge.net/lists/listinfo/emc-developers
USERLIST = users mailing list, http://lists.sourceforge.net/lists/listinfo/emc-users
Done:
move stuff to this list as features are implemented
- understandable error messages: error messages that aren't really confusing.. i18n support for error messages?
added by: fenn
- coordinate system rotations: In 2.4, G10 L2 and will be able to specify a coordinate system rotation around the Z axis: http://linuxcnc.org/docs/devel/html/gcode_main.html#sub:G10:-Set-Coordinate
added by: lesiak
- rotational work offsets: this would allow plunking down a block of metal, clamping it, probing 5 points and entering a command to align the program square with the block. I realized that it should be its own thing separate from kinematics. It _could_ be used to correct for certain kinematic errors like out of square errors, but that's a cop-out imho.
added by:fenn
- lathe threading: support for lathe threading (aka electronic gearing).
this would also take care of rigid tapping on a mill and jogwheel support ?
added by: alex_joni (on SF)
lathe threading now works (as of 2.0.2?)
- Improved lookahead/blending: current G64 mode has no tolerance for how close planned traj is to true g-code traj. Current G64 also functions erroneously with low max_acc values.
added by: AW
G64 blending now accepts a tolerance value which is respected at all times, but lookahead is still only one segment 'deep' ?
- hot-swappable kinematics: ability to adjust the type of kinematics and parameters of that module at run-time, to allow for automatic calibration of hexapods, correction of bearing form errors, temperature compensation, and user convenience in such matters. specification of default parameters in the .ini file, via bash scripts, or thru a GUI (and saving of modified parameters?)
comment by mpictor: compex math would be easiest in a numerical computation package such as scilab... which can be interfaced to RTAI for real-time performance! http://www.scicos.org/demos.html#RTAI
added by: fenn
- webpage i18n: quote from http://gnunet.org/i18nHTML/ :"i18nHTML is a collection of PHP files that can be used to write webpages that visitors can translate into their respective native languages." i18nHTML is released under the GPL.
added by: Ronald
Resolution (AJ): the linuxcnc webpage is implemented in joomla which supports internationalisation. Contact me if you want to add another language.
- configuration wizard: the basic setup, namely for "hobby machines", is still too complicated. A solution like Ray's (?) unfinished "emc-qconfig" would be helpfull:
added by: Ronald
Resolution (Jepler): Stepconf is part of emc2_2.2.x
- configuration verifier/troubleshooter: helper script/program for emc2. It loads a specified emc .ini file and HAL - then:
a) Asks you to activate each input - i.e. "Activate the Negative limit switch for the X axis..." [user presses the switch he thinks is right] "Error! home switch on Y axis activated. Error in wiring or in HAL config (filename). Expected HAL-hardware-pin-name-1, got HAL-hardware-pin-name-2"
b) Triggers each output (under user supervision) - i.e. "Click TEST to activate flood coolant." [when user clicks, the output (coolant in this case) is activated until button is released]
c) Asks user to move each axis by hand to verify feedback channel and polarity (optional, since mechanism may be too heavy and since disabling drives may mean disabling feedback, and since it won't work with stepper motors)
d) Slowly jogs each axis to verify drive function and polarity (only if home and limit switches are working)
added by: mpictor -- users and developers lists i think this is satisfied by stepconf, move back to request list if not
- arbitrary variable synchronization: slave one variable to another with a particular ratio, conditional construct, or PID loop. allows for more than just threading, such as EDM voltage feedback, torch height control, fast capacitive probing (slave normal velocity to normal distance -yikes!), dual feedscrews, gear hobbing, constant chipload via motor current feedback
added by: fenn
- english names for cl variables:boy wouldn't it be neat if classicladder automatically got the name of the hal signal that its pin was connected to
added by: fenn this was implemented at one point by cradek, but it might have gotten bit-rotted by cmorley's upgrade to latest version of CL
version 7.124 will allow you to click on the object to get the signal name and also allows user assignable symbol names
- 5 axis pivot length - tool length compensation: In addition to the current 5 axis tool length and pivot length compensation I would like to see the capability to input (possibly read from a comment line in the g code program) the pivot length and tool length the gcode program is calculated (posted) with. EMC2 could then use the posted lengths in conjunction with the actual pivot length in the configuration file and the tool length in the tool table and run a 5 axis program that was posted for a machine that needs the pivot length and/or the tool length posted into the gcode program. ex. I have 5 axis machines with 5.25, 10.65 and 12.5 inch pivot lengths. The machines with the 5.25 pivot length must have both the pivot length and the tool length (posted) in the gcode program. This means the gcode program has the pivot length and tool length compensation calculated into the gcode program. To run one of the posted programs in my EMC2 control I would need to subtract the pivot length number and tool length number posted into the gcode program from the actual pivot length and tool lengths and place the results in the config file and the tool table and then restart EMC2.
added by: stustev