Skip to main content
added 444 characters in body
Source Link
50k4
  • 6.7k
  • 1
  • 13
  • 25

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.

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.

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.

added 353 characters in body
Source Link
50k4
  • 6.7k
  • 1
  • 13
  • 25

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").

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.

  1. 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 licencelicense 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 issee being depricateddeprecated), or something Linux/Mac/Win cross platform like .net MAUI.net MAUI (I assume this will be the successor of WinForms), ElectronElectron, React Native React Native (with React Native for Windows) or qtqt
  • You can use something that (should/will) work anywhere like FlutterFlutter

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 interfaveinterface to tehthe robot controller (you can choose from HTTP Rest, MQTT, AMQP, ROS, protobuf, cap'n'protocap'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.

  1. 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 "intellisense"intelligent code completion ("intellisense") integrated in the UI).
  • For Syntax highlighting you need a syntax of a programming langauagelanguage. You can consider copying an exisitngexisting 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 colourcolor the words (tokens) you type,
  • For good "intellisene""intellisense" you probably need a parser also. You can use an interpreter generator like ANTLRANTLR, or yaccyacc 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.

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").

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.

  1. 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 licence 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 is being depricated), 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 interfave to teh 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.

  1. 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 "intellisense" integrated in the UI).
  • For Syntax highlighting you need a syntax of a programming langauage. You can consider copying an exisitng 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 colour the words (tokens) you type,
  • For good "intellisene" 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.

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").

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.

  1. 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.

  1. 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.
Source Link
50k4
  • 6.7k
  • 1
  • 13
  • 25

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").

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.

  1. 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 licence 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 is being depricated), 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 interfave to teh 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.

  1. 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 "intellisense" integrated in the UI).
  • For Syntax highlighting you need a syntax of a programming langauage. You can consider copying an exisitng 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 colour the words (tokens) you type,
  • For good "intellisene" 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.