I am working in the development of 5 DOF robotic arm, The Controller will be consisted of 5 Serad Intelligent Servo Motion control drives, and I am working for HMI development currently, The Teach pandent as kuka uses in its KR C4 controller with its own processor, I want to do that on windows , I want to know which software will be best for this purpose for doing all necessary features which Kuka does
-
$\begingroup$ shouldn't you be asking about the teach pendant hardware before you start asking about the software? $\endgroup$– jsotolaCommented Jan 3, 2021 at 18:47
-
1$\begingroup$ It will be running on windows, so ... there is already a HW abstraction layer in place...so I guess the pedant HW is not relevant as long as it can run Windows (assumin win10). $\endgroup$– 50k4Commented Jan 5, 2021 at 13:49
-
1$\begingroup$ @50k4 my thoughts were along the lines of any specialized hardware interface that may be required $\endgroup$– jsotolaCommented Jan 8, 2021 at 3:13
-
1$\begingroup$ As the pendants communicate with the non-real-time part of the controller, and pendants currenty are basically tablets or "thin clients", there is no special interface. Ethernet works great...Aditionally, E-Stop and the "deadmenswitch" are safety rated components connected to Safety Inputs on the Safety Controller. But these are also off the shelf available. Maybe I should add this to the answer..thanks for the hint! $\endgroup$– 50k4Commented Jan 8, 2021 at 10:55
-
$\begingroup$ jsotala, right hardware selection is the step no 1, but yeah we hav in mind the things in hardware as 50k4 mentioned and we will go for Keypad with screen, a Jog, E-stop and the deadmenswitch, I am stuck at any specific softwares to use in Teaching pandent, A windows based processor will be used in the teaching Pandent $\endgroup$– Muzammil IbrahimCommented Jan 11, 2021 at 7:21
1 Answer
As it (almost) always, there is no best in (software) engineering. There are only trade-offs. For a windows based pendant, there are 2 main decisions groups to make. (1) The UI Framework you will be using and (2) the programming language editor features (assuming yout robot will have possibility to write an "application program").
Alongside the software, teach pendants (subject to local laws and standards) require an e-stop and a deadmansswitch (a 3 position enable button). These are subject to a risk-analysis (!) and are connected to a safety controller (again subject to a risk analysis!). The importance of knowing and respecting local laws/regulations and (safety) standards when making anything capable of endangering humans cannot be emphasised enough!!!
I guess step 0 is to come up with a UI concept and draw it on paper, in Powerpoint, in Visio, in Adobe XD or in Figma to have a concept what you can implement.
- UI Frameworks help you create windows, icons, input fields, labels, etc. all Graphical related thing you see on screen. The first choice here is to decide if you want a web-based UI, displayed only in a browser, a native UI for windows (or should it be cross platform, this way you can avoid the need for win license for every pendant) or both.
- You can look into web bases UI Frameworks like Vue, Angular, React, Svelte
- You can look into the .net UI Framework (Windows Forms, but this see being deprecated), or something Linux/Mac/Win cross platform like .net MAUI (I assume this will be the successor of WinForms), Electron, React Native (with React Native for Windows) or qt
- You can use something that (should/will) work anywhere like Flutter
I think with the exception of winForms and qt all other frameworks are bound to a certain programming language (not accounting for javascript/typescript difference). If you have a concept you can create the UI in the chosen Framework.
The next step would be to add functionality to the UI. As the UI is only graphics there will be absolutely no robot related functionality behind it. You need an interface to the robot controller (you can choose from HTTP Rest, MQTT, AMQP, ROS, protobuf, cap'n proto, gRPC, WebSockets). Please note that the interface alone also does not provide actual functionality only message exchange. Make sure that the selected interface has libraries both for the programing language used on the controller and on the pendant.
- On the pendant side, all functionality that is needed is somewhat straight forward to implement compared to the programming language editor part. That is the most complex task on the pendant (assuming you want syntax highlighting and intelligent code completion ("intellisense") integrated in the UI).
- For Syntax highlighting you need a syntax of a programming language. You can consider copying an existing language (like KRL), but I do not know if that is legal. Anyways, once you have a language, you need (at least a partial) interpreter (parser+lexer) for the language you use to program your robot. By partial interpreter, I mean at least a lexer which can color the words (tokens) you type,
- For good "intellisense" you probably need a parser also. You can use an interpreter generator like ANTLR, or yacc to generate your interpreter based on the syntax of the programming language you are using. This interpreter will also come in handy, when you are actually interpreting the program you wrote on the pendant, when you execute it on the controller.
-
$\begingroup$ Thanks @50K4 for the detailed answer, It will really helpful for me, can you tell about WPF in this regard, can we go with it $\endgroup$ Commented Jan 11, 2021 at 7:22
-
$\begingroup$ WPF is comparable to the UI Frameworks above, but it only runs on windows. $\endgroup$– 50k4Commented Jan 11, 2021 at 12:23
-
$\begingroup$ yeah, and If our plan is to make teach pandent on windows and the controller consists of Serad IMD motion drives in a network, controlled by iDPL software(on windows),so isn't WPF better option? $\endgroup$ Commented Jan 11, 2021 at 12:31
-
1$\begingroup$ Depending on what do you mean by better (faster? easier to develop?, less resource hungry? code generation from UI/UX designer? better community support? cheaper?). As said, there is no best option, only trade-offs. Also, make sure your application will be OK with a non-realtime (windows) controller. Industrial robots have real-time controllers, out of the box windows is not capable of running real-time processes. $\endgroup$– 50k4Commented Jan 11, 2021 at 13:44