Explore chapters and articles related to this topic
Workspace Sharing Assembly Robots: Applying IEC 61499 to System Integration and Application Development
Published in Alois Zoitl, Thomas Strasser, Distributed Control Applications, 2017
Matthias Plasch, Ebenhofer Gerhard, Michael Hofmann, Martijn Rooker, Sharath Chandra Akkaladevi, Andreas Pichler
Scripting languages are used in various domains, especially for rapid prototyping and connecting software and web applications. The resulting interoperability of interconnected heterogeneous systems or programming languages can be seen as a major advantage of the usage of scripting languages [22]. LUA is a C based, lightweight, and embeddable scripting language which is mainly used as extension language for software components [14]. Application fields of LUA are video games, mobile and embedded devices and automation applications. As an example for an industrial application, Girder [27], a software toolbox for industrial and home automation, uses LUA as base language. Software integration is eased by the provided LUA C-API. The execution of LUA is sped by using LuaJIT [23], a just-in-time interpreter library which extends the LUA base library package. A brief overview on many well-known scripting languages, including interesting facts about their history, is provided by [2]
Programming Microcontroller
Published in Franjieh El Khoury, Antoine Zgheib, Building a Dedicated GSM GPS Module Tracking System for Fleet Management, 2018
Franjieh El Khoury, Antoine Zgheib
Lua is a lightweight multi-paradigm scripting and high-level programming language designed in 1993 primarily for embedded systems and clients (Ierusalimschy et al. 1996, 2007). Lua is cross-platform, since it is written in ANSI C, and has a relatively simple C API. Lua is a proven, robust, embeddable extension language (i.e., strong integration with code written in other languages) (Lua 2011). It is portable, extensible, and has ease-of use in development with high speed in the realm of interpreted scripting languages and in execution (Cormack 2013; Ierusalimschy et al. 1996, 2007). It provides the basic facilities of most procedural programming languages and powerful data description by using a simple mechanism of tables. However, more complicated features (e.g., domain-specific features) are not included, rather, it includes mechanisms for extending the language, allowing programmers to implement such features. Lua is a dynamically typed language intended for use as an extension or scripting language and is compact enough to fit on a variety of host platforms. Therefore, Lua is provided as a library of C functions to be linked to host applications. It supports only a small number of atomic data structures (e.g., Boolean values, numbers, and strings). Typical data structures (e.g., arrays, sets, lists, and records) are represented using Lua's single native data structure. Moreover, Lua allows programmers to implement namespaces, classes, and other related features using its single table implementation. Therefore, Lua strives to provide simple, flexible meta-features that can be extended as required. In addition, Lua is a language framework, which copes with different domains, thus creating customized programming languages sharing a single syntactical framework. On the other hand, it is very easy to write an interactive, standalone interpreter for Lua. Although Lua does not have a built-in concept of classes, object-oriented programming can be achieved by using two language features: first-class functions and tables. Lua programs are not interpreted directly from the textual Lua file, but are compiled into bytecode, which is then run on the Lua virtual machine. The compilation process is typically invisible to the user and is performed during run-time, but it can be done offline in order to increase loading performance or reduce the memory footprint of the host environment by leaving out the compiler. Lua bytecode can also be produced and executed from within Lua, using the dump function from the string library and the load/loadstring/loadfile functions. In case of programming a microcontroller with Lua, there is no need for Lua IDE to write a Lua script code, thus it is written in any text editor (e.g., Notepad ++, Ultraedit, etc.), then it saves in Lua format (i.e., extension.lua). After that, it will be downloaded into the EFS of the module to be compiled (i.e., extension.out) and executed (Libelium 2017). The eLua is used in programming microcontrollers and embedded systems where it is not a cutdown version (Cormack 2013).
Design and control of a 7 DOF redundant manipulator arm
Published in Australian Journal of Mechanical Engineering, 2021
Priyadarshi Biplab Kumar, Navneet Kumar Verma, Dayal R. Parhi, Deepayan Priyadarshi
V-REP is a robot simulator software widely adopted by robotic researchers. In V-REP, each model or object can be controlled by a plugin, an embedded script, remote API client, ROS node or a custom solution. In this, a whole object can be modelled and then simulated in different ways. The programs required to simulate the object can be written as Java, Matlab, Lua, C, C++, Python, Urbi or Octave. Lua is a lightweight, powerful, fast and embeddable programming language which is used in V-REP. Lua script interpreter is embedded in V-REP and contains several commands of V-REP. For the simulation of any robot or object in V-REP, a script is an essential mechanism. Without a script, the robot can never be able to perform different physical operations. The main central element of V-REP is scene object, calculation module and control mechanism. A simulation is handled when the client application calls a main script, which in turn can call child script. Child script contains two categories: threaded child script and non-threaded child script. Both threaded and non-threaded script consists three parts which can be discussed as follows. Initialisation part: Child script is executed first time.Regular part: It executed at each pass of the simulation.Restoration part: When simulation is about to end, it executed it one time.