-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update control.top.in #1288
Update control.top.in #1288
Conversation
Let me try: "LinuxCNC is a fully-realised CNC machine controller that can interpret G-code (but is extendable to parse other grammars such as STEP-NC or Gerber), plan trajectories and finally output low-level signals to machine control hardware such as step/dir on a variety of interface hardware, Modbus, EtherCAT, CAN and Mesa "smart-serial" LinuxCNC is modular and in principle the HAL (hardware abstraction layer), pluggable interpreters and variety of hardware drivers mean that it can control almost any software-defined physical system. LinuxCNC relies on a realtime kernel to support real-time motion control. It could be configured to support buffered non-realtime motion control hardware but that would be missing the point. Other options exist in that space. Modules exist to use the low-level parts of LinuxCNC as a motion-control client for OpenPnP. Interfaces exist for ROS {detail needed, I know little about this} with which LinuxCNC has considerable overlap. LinuxCNC supports arbitrary kinematics (the mapping between coordinate space and actuator space) and can control both parallel (eg Stewart platform) and serial (eg robot arm) systems in addition to conventional cartesian machine tools. LinuxCNC supports 9 cartesian axes and 16 "Joints" (individual actuators) though the joint limit is build-time configurable. The HAL layer supports a wide variety of motion control hardware. Typically the input data is position commands for all joints at a fixed clock rate, but commands can also be supplied from user-space and over network connections. In summary, if you want a computer to control things in the real world then LinuxCNC can do it. It's not always the best choice, as you move away from machine tools and robots it becomes a less-good fit, but it can do it." |
Many thanks! I like many bits of it a real lot. What I would like to hope for it would be
|
Sorry for the late reply, I have been rather busy recently. "LinuxCNC is a fully-realised CNC machine controller that can interpret machine-control programs (such as G code), plan trajectories and finally output low-level signals to machine control hardware LinuxCNC is modular and in principle the HAL (hardware abstraction layer), pluggable interpreters and variety of hardware drivers mean that it can control almost any software-defined physical system. LinuxCNC relies on a realtime kernel to support real-time motion control, typically updating the position waypoints every 1mS and reacting to input within tens of microseconds. Modules exist to use the low-level parts of LinuxCNC as a motion-control client for OpenPnP. Interfaces exist for ROS {detail needed, I know little about this} with which LinuxCNC has considerable overlap. LinuxCNC supports arbitrary kinematics (the mapping between coordinate space and actuator space) and can control both parallel (eg Stewart platform) and serial (eg robot arm) systems in addition to conventional cartesian machine tools. A variety of interface hardware is supported including Modbus, EtherCAT, analogue +/-10V velocity control and Step/Dir. Step/Dir is supported by several hardware interfaces, including, but not limited to, the legacy Parallel Port. A Hardware Abstraction Layer allows for great flexibility in signal mapping between the controller and the driver hardware. An extensive library of modules allow for complex signal processing within the HAL layer. For specialised tasks custom HAL components can be created using a C-like syntax and installed with the supplied tools. By default LinuxCNC supports RS274 G-code but is extendable to parse other grammars such as STEP-NC or Gerber through support for pluggable interpreters. In summary, if you want a computer to control things in the real world then LinuxCNC can do it. It is especially applicable to systems that are required to follow accurate paths described in cartesian space but has been used for numerous other applications." |
Put it as the description for the main and the -dev package. |
I like the updated description a lot better than the original, and hope it will be included into master. |
Thanks folks! |
Hello,
I tried to get my head around what LinuxCNC is and what it is not and how it relates to other parts of the Open Source world that I had heard about. This PR is just a request-for-discussion and, frankly, I wish you would adopt a few ideas from whatever this package description now evolves into for your home page. A keyword that description should still see is the Hardware Abstraction Layer. Please kindly "nativate" my write-up and squeeze HAL in somewhere :)
Best,
Steffen