Open source motion control software
It's still very complex and hard thing to interface motor control hardware in a standardized and performant way at the moment. Do we need a real-time system for good motion control? Well, not necessarily. In my opinion, the focus much too often on using a real-time system where none is necessary.
However, the closer we get to the actual motor control hardware, the more interesting a real-time can be. Let's say we want to implement a PID loop for our closed-loop motor control with encoder feedback. In this case, if we don't calculate and update the control value at a very exact point in time, we end up with bad motion control performance.
However, if the controlled hardware operates on a higher level, understands time and is synchronized with the control computer, then we don't necessarily need a real-time system to achieve good performance. Machinekit HAL is designed to provide a generic solution to build motion control systems.
It was originally intended to be used to wire together the motion planning features of LinuxCNC with the hardware. Since homegrown CNC hardware can be very different, it was necessary to abstract, the way machine integrators configure control loops, hardware interface and, control logic.
I argue the same is true for robot hardware. We use many different hardware platforms, motors types and all sorts of custom hardware to control for example grippers.
ROS is really good at providing a common platform for high-level robot software components. However, for the most part, it lacks a common infrastructure to interface with hardware. Machinekit, on the other hand, is really good for low-level motion control applications and it lacks the high-level applications. ROS is great in motion planning, computer vision, managing the state of a robot and many more things.
Combining Machinekit and ROS could be the start of a new era in open source robotics down to motion control and hardware. Now that we have talked about why Machinekit and ROS would be a good fit, it's time to elaborate on how they could be integrated with each other. As the Machinekit environment executes completely independent of ROS it's even possible to implement real-time motion control applications inside Machinekit HAL and to send input data for example via a Python ROS node.
This approach is excellent for simple applications, where you just want to control a motor position without timing for example. This option is more interesting for robots that require a movement over time. This would be for example an industrial robot arm or the actuators of a service robot. Motion planners, such as MoveIt! A trajectory is nothing else than a set of waypoints over time. Meaning that the actuator needs to move between the waypoints in the specified time. A timestamp specifies when the actuator should be in which position.
In short, the playout system requires a way to interpolate between the target waypoints, moreover, it needs to be capable of some basic planning to reach the waypoints at the correct time. For this purpose, we almost certainly need a real-time system to execute the command.
This makes Machinekit very suitable for this application. Machinekit comes with a component called jplan , short for joint planner. This component plays out commands from a HAL ringbuffer, this includes acceleration and velocity limits.
Bas uses this method to control the Matilda robot. However, one still needs to implement the controllers for each robot as there is no generic hardware abstraction. In this case, a new controller would be created to write and read from HAL during each cycle. This way, the Machinekit interface would be generic for all sorts of robot hardware.
The only thing that needs to be changed is the HAL configuration. They are separated by a ,. After the last value a lower case x terminates the line of data. You will see these numbers in the position readouts and motion path file when recording motions. On the bottom of the MeCon screen are three interval timer adjustments these determine how often this data is sent and or recorded. Explore with the mouse, mouse wheel and keyboard to discover how the on screen sliders and knob are adjusted.
Microbotlabs kits come with a password to enable the Pro version of MeCon. Robot Kits. I am not aware of any comparable software. What exactly does it do? Basically, the software when loaded onto an Arduino creates the heart of a low cost high performance cnc controller. It allows us to use an Arduino to run our CNC machines. The best part, I do not need a computer with a parallel port to run my CNC mill.
It also manages all of the timing necessary which allows for the machine controller to be computer agnostic. The following is directly from the GitHub page:. Open source — v0. In fact several companies use GRBL as the motion control software of choice.
Arduino is everywhere. People are familiar with the hardware and IDE. Its low cost minimizes the barrier to entry for CNC motion control. Using the Arduino platform aligns with the larger maker movement of democratizing fabrication. No more trying to find a boat anchor of a computer with a native parallel port. Most industrial and many hobby CNC controllers require a parallel port.
GRBL has many advanced parameters that many beginners will not need. However, these functions allow the user to grow into using the full capabilities of their machine. I am having a hard time writing this. Keep in mind, I am not aware of a comparable alternative for comparison. I find it hard to complain about free software that provides so much utility. Backlash is lost motion due to the mechanical components of the system. The best way I know how to explain this is consider a traditional milling machine.
You turn the hand in one direction and the table moves. If you stop and then turn the handle in the opposite direction, the table will not move immediately in the opposite direction. Backlash is measured in the number of thousands of an inch the handle rotates before the machine table moves. The machine controller will use these values each time the machine changes direction to improve the precision of the motion. However, I created this pocket guide to help with the setup.
In order to create a cnc controller using GRBL software, we need a few additional items outlined below. Google Tag manager. You can order your kit here. Chordata Motion Movement made yours. My settings. Privacy settings. Privacy Settings Google Tag manager Google Analytics Privacy Settings This site uses functional cookies and external scripts to improve your experience.
Google Tag manager Tag integration for Google Analitycs.
0コメント