KarajoSoft inquired about implementing the Roomba algorithm using Rockwell and Kinetix for controlling 3 servomotors in the X dimension to cover all corners of a filling area. The system seems suitable for the task of moving the servomotors within a 0-360 range to manipulate the auger fillers. Any suggestions on how to begin programming this setup? Adding sensors to signal when the top is reached before moving to the next position is not a concern. Can you clarify if there are two servomotors controlling the angles and if the arms have fixed lengths as mentioned? The position of the filler is determined by mathematical formulas involving the arm lengths and servo angles. Would it be accurate to estimate servoangle1 at around 150° and servoangle2 at approximately 240° (or -120°) based on the image provided?
drbitboy inquired about the setup of two servomotors controlling the angles in the system. He mentioned a third servomotor but couldn't locate it in the image. Are the lengths of the two arms fixed? The position of the filler can be calculated using the formulas:X = ArmLength1 * cosine(servoangle1) + ArmLength2 * cosine(servoangle1+servoangle2)Y = ArmLength1 * sine(servoangle1) + ArmLength2 * sine(servoangle1+servoangle2)where servoangle1 represents the angle of the long arm counterclockwise from "down" and servoangle2 represents the angle of the short arm counterclockwise from parallel to the long arm. In the image, an estimate suggests servoangle1 is around 150° and servoangle2 is about 240° (or -120°).
There are two fixed-length arms and a potential third arm (auger filler) in the system. Servo 1 moves the large auger filler from left to right, while Servo 2 controls the medium auger filler (not shown in the image) in the same manner. Servo 3 is responsible for moving the small auger filler where the product is dispensed. The plan involves three servomotors operating horizontally/rotationally (0-360°) to enable precise filling in the designated area. Synchronized movement of these servomotors is crucial to reach every point in the filling area efficiently. Your input is greatly valued and will help refine the design for optimal performance. Thank you for your assistance.
The algorithm used by the Roomba is based on simplicity: it randomly selects a direction to move in and continues in that direction until it encounters an obstacle. In order to detect when the Roomba "hits something," a model for the walls or delivery chute location must be established. Additionally, a model detailing the angles of the servomotors and arms is needed to calculate the delivery chute's position and facilitate its movement in a straight path. While moving in a straight line is an option, the Roomba can also choose two randomized angular speeds for each motor to navigate away from obstacles, resulting in a series of curved movements for the delivery chute.
Hello, I am looking for a solution to fill a recipient while avoiding a collision with the wall. I am considering using coordinate motion functions like MCLM to create a Cartesian movement in the XY plane, but I am unsure about how to incorporate a third servomotor. Any suggestions would be greatly appreciated. Thank you.
Thank you for sharing the photo. Could you provide more details on the end process? This resembles a SCARA Independent coordinate system with two rotary actuators but no linear actuators. The Rockwell ControlLogix/CompactLogix offers SCARA independent kinematics as a standard option in the coordinated motion system.
It is important to view the fill area as a cartesian coordinate system and understand how the robot kinematics convert J1 and J2 angles to X and Y positions based on fixed link lengths L1 and L2. When programming the fill algorithm or pattern, it is crucial to discuss requirements with the customer. Consider using a perimeter path or raster fill along the longest sides for optimal work envelope coverage, possibly incorporating fanned arcs if needed.
Are there any inserts, voids, or unfillable areas within the fill area based on the specific production requirements?
Ken Roach, thank you for providing the photo. Could you clarify the end process for me? It appears to resemble a "SCARA Independent" coordinate system, utilizing two rotary actuators without any linear ones. The Rockwell ControlLogix/CompactLogix offers SCARA independent kinematics within the ordinary coordinated motion system options. It is important to define the fill area as a Cartesian coordinate system and for the robot kinematics to convert J1 and J2 angles, based on fixed L1 and L2 link lengths, into X and Y positions.
When programming the fill algorithm or pattern, it is advisable to consult with the customer. A perimeter path or a raster fill along the longest sides may be the most suitable approach for the work envelope, possibly incorporating a series of fanned arcs. Are there specific regions within the fill area that remain unfilled based on the product being manufactured?
Hi Ken, thank you for your valuable assistance. The ultimate goal is to establish an automated system for filling the "FILLING AREA" to create a secondary wall with refractory material for coating the "container" in the foundry industry.
To achieve this, we may require three auger fillers to be coordinated within a range of 0-360º to ensure complete filling of the container. Can a coordinated SCARA or MCLV motion system accommodate the addition of three servos while focusing on just two dimensions (XY)? Since there is no linear motion involved, each servo operates in the XY dimension. How can we effectively coordinate all three servos to achieve a general XY position?
One approach could involve inputting positions into an HMI for the system to follow, or alternatively, creating "teach" positions that can be saved as preset locations for seamless movement. While I lack experience in coordinated motion, I have worked with virtual axes and multiple servos in applications such as HFFS machinery. Once again, thank you for your assistance.
KarajoSoft expressed gratitude to Ken for his invaluable assistance in developing an automatic system for filling the "FILLING AREA" with refractory material to coat containers in the foundry industry. The objective is to create a second wall using COLDMAG® by MAGNACOLDMAG® (self-hardening mix) based on MgO. This tundish product offers refractory materials for the steel sector. The plan involves utilizing three auger fillers that will need to be coordinated to fill the container efficiently. Can a coordinated Scara or MCLV motion system be implemented with three servos operating in two dimensions (XY) to achieve this? Each servo has XY dimension movements, so how can they be synchronized to reach a general XY position? The proposed solution is to input positions on an HMI for the system to follow, or alternatively, to teach and save positions for seamless movement. Although not experienced in coordinated motion, KarajoSoft is familiar with virtual axis and various servos used in HFFS machinery. The main query is whether it is feasible to configure a Scara robot with three independent arms (3 links). Any insights on this matter would be greatly appreciated.
Brian detailed the process of deriving X/Y Cartesian positions from angles and link lengths using basic math equations. The advantage of incorporating a multi-axis coordinated motion system in ControlLogix is its capability to not only handle position transformations but also plan movements in X-Y space. This kind of system requires synchronization between linked rotary actuators for moving the tool endpoint in a straight line.
In a specific application with various tundish shapes, a simpler program handling system may be sufficient compared to a typical CNC tool. Operators may teach the machine manually and designate teach points via pushbuttons to create a sequence of movements. Safety precautions, including a risk analysis, are crucial especially when operators are in close proximity to the motorized system, considering the harsh environment of foundries.
When configuring Studio 5000 to accommodate a third link, there may be challenges as traditional "SCARA Independent" robots typically consist of 2 links and a rotary or vertical Z-axis at the end of the arm. Seek guidance from experienced Forum members well-versed in robot kinematics and Logix 5000 to overcome any obstacles.
Ken Roach stated that Brian provided a detailed explanation on how to calculate the X/Y Cartesian position from the angles and link lengths. The mathematical formulas are as follows:
X = ArmLength1 * cosine(servoangle1) + ArmLength2 * cosine(servoangle1+servoangle2)
Y = ArmLength1 * sine(servoangle1) + ArmLength2 * sine(servoangle1+servoangle2)
Having a multi-axis coordinated motion system in the ControlLogix is advantageous as it not only handles the position transformation but also aids in planning movements in X-Y space. This requires coordination between linked rotary actuators for moving the tool endpoint in a straight line.
For applications with various tundish shapes, a simplified program or recipe handling system may suffice instead of a general-purpose CNC tool. Manual manipulation and pushbutton designation of teach points could be used to create a sequence of moves.
Considering the potential proximity of operators to the motorized system, a thorough risk analysis is essential due to the dirty environment foundries typically have. Motors, mechanisms, and operator interfaces must be durable and rugged.
Configuration of Studio 5000 for a third link is uncertain. In traditional "SCARA Independent" robots, there are typically 2 links and a rotary axis or a vertical Z-axis at the end of the arm.
While my expertise in robot kinematics and Logix 5000 is limited, I am reaching out to a specialized individual for further guidance on the mathematical aspects and structured text programming required to manage a system with 2 or 3 servos.
Any insights or experiences from seasoned motion experts would be greatly appreciated for enhancing knowledge in this area. Thank you for your assistance.
Is it possible to utilize 3D printer code to create an XY path, which can then be translated into angles using the SCARA independent functionality integrated into Logix?
KarajoSoft mentioned that they have found calculations similar to those of a specialized individual they came across and plan to contact them on Monday. The use of mathematics is crucial for determining the XY position and servo positions in degrees. It involves complex calculations and structured text to effectively manage the system of multiple servos within the machine. This is not a predefined movement from Rockwell, so input from experienced motion experts would be greatly appreciated to enhance knowledge in this area. Your assistance is valued. In this application, the angles of the servo arms, α and ß, play a key role in determining their positions relative to each other.
After further research, I have come to the conclusion that the Roomba algorithm may not be suitable for this specific scenario. The primary goal of the algorithm is to guarantee every area on the floor is cleaned at least once, possibly multiple times. This results in certain areas being cleaned more frequently than others.
Drbitboy explained that the process is simpler for this specific application. Based on the information provided by the original poster (OP), it appears that they are interested in determining the angles of the servo arms in relation to a specific reference point. This involves calculating the angle (α) of the first servo arm (r1) rotated clockwise from the "up" position as well as the angle (ß) of the second servo arm (r2) rotated clockwise from the position straight out from r1.
Hello Drbitboy, thank you for taking the time to assist. Can a Rockwell compactlogix CPU with motion capabilities support customized kinematics motion for coordinated axis movement? I am unsure of how to begin programming this and controlling the servos in a coordinated manner to reach specific points defined through an HMI. Is it possible to send commands from one position to another using straight or circular movements, taking into account the kinematics rather than moving each servo independently? Is there a quick routine to achieve servo positions XY within 1-4ms, followed by regular motion instructions for each axis independently or is it possible to create a new motion function for coordinated movement? What do you recommend? Thank you very much for your assistance.
KarajoSoft inquired, "Hi Drtbitboy, I appreciate your assistance. Does Rockwell support personalized motion for coordinating axis movements before calculating kinematics? I am unsure how to begin coding this program and controlling servos to reach specific points through an HMI. Is it possible to send commands to move from one position to another in a straight or circular path? I am looking for a quick routine to achieve servo positions in 1-4ms, followed by normal motion instructions for independent axis movement. Or is it possible to create a new motion function to coordinate their movement? What do you suggest? Thank you so much!"
I believe that configuring the system with the "SCARA Independent" setup eliminates the need to deal with details like radii, angles, or arc cosine. By utilizing the SCARA menu, you can program X,Y movements in a Cartesian frame, simplifying the process as the motion control system converts X,Y values to coordinated servo movements. This menu is similar to a scaling instruction that converts counts from a 0-10V signal to engineering units (e.g., PSI).
In the world of robotics, the "SCARA Independent" configuration offers a hassle-free solution for programming without the need to worry about complex details such as radii, angles, or arc cosine functions. By setting up the system using the SCARA menu, you can easily program X and Y movements in a Cartesian framework, simplifying the process. The motion control system seamlessly translates the X and Y values into coordinated movements of the servos.
This SCARA menu works similarly to a scaling instruction, converting input signals into engineering units. It is especially beneficial for machines with only two axes, eliminating the need for Z movement coordination.
However, when dealing with machines with three links, additional kinematic calculations are required. Structuring a program to achieve "SCARA independence with 3 axes" may seem daunting, but with the right approach, it can be accomplished successfully. If you're unsure where to start, seeking advice from experts or online resources can help you navigate this process effectively.
KarajoSoft mentioned that the independent feature of this car is only designed for 2 axis. If there is no Z movement, simply entering coordinated 0 should suffice. However, what happens when dealing with a similar machine that has 3 links? In this case, it will be necessary to perform kinematics calculations, but the process of structuring the program to achieve something like a "3-axis independent SCARA" may seem daunting. Any recommendations on how to proceed? To simplify matters, you can ignore the third axis in the SCARA, adjust the third servo angle to 0 to align it with the second arm, and use the combined lengths of the two arms as the second link's length in the SCARA menu. Thank you in advance for any guidance provided.
In the SCARA system, it is suggested to disregard the third axis and align the third servo angle to 0 to make it an extension of the second arm. In the SCARA menu, consider using the combined lengths of the two arms as the length of the second link. Could adding a third link create a machine with three joints in total, requiring kinematic calculations for control? Are there any strategies for coordinating the movement of all three links, such as personalized planning motions? Thank you in advance for any insights!
Introducing a third link introduces complexity into the equation. While a "perfect" solution exists for positioning with two links, adding a third link complicates the process. Calculating Jacobians becomes necessary, requiring iterative calculations. I conducted a simple motion test with two links and compared the results using Jacobian methods, achieving similar results within a margin of error. However, working with Jacobians is both intricate and resource-intensive. Additionally, creating a smooth motion profile poses challenges. While teaching fixed points and moving between them is an option, a smoother transition is more desirable. Jacobians are matrices that represent the rate of change of angles in relation to changes in x and y coordinates. In the case of two links, the Jacobian matrix is only 2x2.
- 01-12-2024
- Peter Nachtwey
Peter Nachtwey highlighted the challenges of introducing a third link to a robotic system, stating that it disrupts the previously achieved 'perfect' solution for position with two links. When a third link is added, a 'perfect' solution no longer exists, necessitating the use of Jacobians and iterative calculations. Nachtwey demonstrated a simple motion with two links and compared the results obtained through Jacobian methods, finding them to be consistent within an acceptable margin of error. However, working with Jacobians can be complex and resource-intensive, particularly when it comes to generating a smooth motion profile. The matrix representation of Jacobians captures the rate of change of angles relative to changes in positional coordinates (x and y) in a 2x2 format.
In response to Nachtwey's insights, the speaker expressed gratitude for the feedback and acknowledged the advanced nature of the discussion. They sought advice on employing a "SCARA INDEPENDENT" motion planner for a system with two links and questioned whether introducing a robot in place of servo-controlled machinery might offer a simpler solution, drawing on Nachtwey's expertise for guidance. Additionally, they inquired about the possibility of sharing Nachtwey's example of motion planning with two links for further learning and understanding.
I just came across this thread today and took the time to review the photos, watch the video, and read through all the comments. It seems like you're a self-employed contractor collaborating with an OEM that has partnered with Magna to offer an automated solution to replace the manual filling process shown in the images. While I had some thoughts to share, I ultimately decided against it. I'm familiar with Magna and I think you should reconsider your role in this particular project.
KarajoSoft expressed gratitude to Peter for his comments and assistance. Admitting that the level of knowledge required is beyond current capabilities, KarajoSoft inquired about using the "SCARA INDEPENDENT" motion planner for a solution involving two links. Seeking Peter's advice on a complex third link, KarajoSoft considered replacing a servo-controlled machine with a robot. Seeking guidance based on Peter's experience, KarajoSoft requested to share an example involving two links. Your insights are greatly appreciated.
In response to padees' comment, KarajoSoft clarified being a legitimate integrator working for a client on a project with Magna. Seeking technical feasibility information and insights from colleagues on similar motion projects, KarajoSoft expressed confusion over padees' concern. Any clarification or guidance on the project would be helpful.
Conducting thorough research is crucial for success in mechanical engineering projects. While it may seem daunting to retrofit a manual operation, it's worth considering a new system that can encompass all necessary controls. It's important to remember that companies like Magna can be demanding on OEMs, and as a contractor, you may face challenges if things go awry. Stay proactive and prepared for any obstacles that may arise. These are the key insights to keep in mind when tackling engineering projects.
Padees advised, "It may be best to distance yourself if possible." However, I am content right where I am. Tomorrow, we have a meeting scheduled with a specialist in motion. Rest assured, we have a busy day ahead. Stay focused on your business endeavors.
It's not important. Best of luck!
Padees mentioned the importance of conducting thorough research, and I agree. It is crucial to wish the best of luck in the endeavor. While mechanical engineering may be better suited for the controls task at hand, the project involves retrofitting a manual operation, which presents certain challenges that need to be addressed. It may be necessary to design a new system that encompasses all aspects of the project. It is worth giving some thought to this matter.
In my experience, Magna can be demanding towards OEMs if they fail to meet expectations. As a contractor for an OEM, if things go awry, you may find yourself in a difficult situation. These are my key insights on the matter.
Dear Padees,
It seems that you may not have all the facts before making assumptions. We have direct involvement with Magna, especially their mechanical engineering team, and various departments within the corporation. Our goal is not to cut corners but rather to create a new machine, gaining insights on kinematics through collaboration with experts in the field.
Seeking knowledge and advice from forums is always beneficial. We actively participate in various forums, offering assistance and receiving valuable input from polite and helpful peers. It is important to focus on learning from the best in order to excel in our projects and future endeavors.
Best regards,
As previously mentioned, I wish you the best of luck in all your endeavors! Good luck!
padees wished good luck by saying, "As I mentioned before, best of luck!" Click to reveal more... Thank you and the same goes to you.
KarajoSoft expressed gratitude to Peter for his comments and assistance. Admitting that the knowledge required is beyond their current expertise, they mentioned hearing about "jacobians" for the first time. Seeking advice on using the "SCARA INDEPENDENT" motion planner for a solution involving two links, they also deliberated on the complexity of the third link, contemplating the idea of replacing a machine controlled by servos with a robot. Asking for Peter's recommendation based on his experience, they inquired about the possibility of sharing an example with two links.
In their response, Peter shared an example he worked on, ensuring the accuracy of positions and velocities through iterations using Jacobian calculations. Further elaborating on the concept of Jacobians and their application in motion planning for robots, Peter explained the significance of understanding the rate of change of angles and the end effector’s movement. He emphasized the utility of Jacobians in minimizing cost functions and optimizing parameters in various algorithms. While suggesting that perfect solutions for systems with only two links may not require Jacobians, Peter advised using them for more complex systems like robots with multiple links or even Hessians for second derivatives.
Highlighting the practical applications of Hessians in determining points of local extrema, Peter recommended focusing on systems with only two links unless a deeper understanding of mathematical concepts is desired. Drawing upon their familiarity with gradients and Jacobians, Peter mentioned using symbolic math packages like wxMaxima, Mathematica, Mathcad, Octave, and Maple for generating calculations in their work.
- 01-12-2024
- Peter Nachtwey
Peter Nachtwey mentioned that he worked through various iterations to ensure the accuracy of his positions and velocities calculated using a Jacobian matrix, matching the ideal solution. While the concept of Jacobian may seem complex, it plays a crucial role in robotics and minimizing cost functions. Linking to the Wikipedia page on Jacobian matrix and determinant provides a basic understanding of the concept.
In simple terms, the Jacobian matrix helps determine the relationship between the end effector's motion and the change in angles. By generating a path for the end effector to move through, with specified rates of change for x and y positions, the Jacobian matrix facilitates the calculation of angle changes.
For robots with more than two links, Jacobians become essential, and some even utilize Hessians for second derivatives. Peter suggests sticking to two links unless you are prepared to delve into more advanced math concepts. Utilizing software like Levenberg-Marquardt algorithm and symbolic math packages aids in generating gradients and Jacobians effectively for motion control applications.
Overall, mastering the use of Jacobians is fundamental for motion control algorithms and optimizing robotic movements. Expanding beyond two links may require a deeper understanding of math concepts but can lead to more precise control over robotic motion.
Are Rockwell CPUs capable of handling motion control and Jacobian calculations? It is possible that the Rockwell Controller can perform calculations for Scara or two-link robots using "perfect" mathematical formulas that do not require Jacobian calculations. However, moving to three links is significantly more challenging as there is no formula available for three-link robots, requiring iterative calculations using Jacobians. It is unlikely that the Rockwell Controller can handle these complex and CPU-intensive calculations.
This project was completed by forum member rwatson while working for Clansman in Scotland, involving a robot arm used in grinding applications. The robot touches the metal workpiece in three places to establish three x, y, z points, defining a plane that the grinder cannot go below. The robot then operates in auto mode to grind the surface flat, adjusting for the changing diameter of the grinding wheel based on the three touch points.
RWatson performed all the calculations using a RMC150. The videos showcasing the robot in action can be viewed here: [Link to Clansman App Video] and [Link to Grinding Arm Video]. As the retired president and head engineer of Delta Motion, I developed firmware for motion controllers. Visit our website at deltamotion.com for more information.
- 01-12-2024
- Peter Nachtwey
Dear Peter, we greatly value your expertise and insights, even in retirement. Tomorrow, we will delve further into the intricacies of robot computations. While solutions exist for two-link robots without Jacobian calculations, moving to three links poses a significantly greater challenge. The complexity and CPU intensity of the iterative Jacobian calculations for three-link robots may be beyond the capabilities of the Rockwell Controller. This project was completed by forum member rwatson during his tenure at the company Clansman in Scotland, where he worked on a grinding application with a more sophisticated robot arm. As a retired individual who previously served as president and head engineer of Delta Motion, your contributions to the field of motion control are truly commendable. Thank you once again for sharing your knowledge, and may your retirement be filled with joy and fulfillment. Visit deltamotion.com for more information.
There are several strategies for completing this type of project using a 2-link SCARA system compatible with ControlLogix. One approach could involve moving the main boom a specific distance and then executing a transformation to perform tasks within the work envelope of the last 2 links. However, ControlLogix may not support 3-link SCARA systems by default. Other platforms, such as CoDeSys SoftMotion, are capable of handling both 2-link and 3-link SCARA planar manipulators. A visual demonstration showcasing the capabilities of a Rexroth controller for such tasks can be found on YouTube under the title "ctrlX CORE – CODESYS SoftMotion – SCARA robot kinematics."
Ken Roach suggested exploring various strategies to tackle this project using a 2-link SCARA setup compatible with ControlLogix. One approach could involve implementing a transformation sequence following a set boom movement distance, followed by filling in the desired work area using the last 2 links. While ControlLogix may not support 3-link SCARA setups out of the box, other platforms like CoDeSys SoftMotion offer capabilities for both 2-link and 3-link SCARA planar manipulators. A helpful visual demonstration of this can be found on YouTube showcasing the Rexroth controller in action.
Thank you, Ken, for your insights. I will begin by examining the 2-link motion planner in ControlLogix to see how it can be adapted for XY movements, considering the predefined Z-axis motion. I will return here once I have a solution or receive input from experts. Your comments and suggestions have been invaluable in preparing me to discuss and comprehend the advice from specialists. Thank you!