pos機(jī)輸入x

 新聞資訊3  |   2023-09-04 13:47  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)輸入x,Lua語言在機(jī)器人領(lǐng)域的應(yīng)用入門的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)輸入x的問題,今天pos機(jī)之家(www.dprolou.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)輸入x

pos機(jī)輸入x

Lua 是一種強(qiáng)大、高效、輕量、可嵌入的類C腳本語言,支持過程式編程、面向?qū)ο笫骄幊?、函?shù)式編程和數(shù)據(jù)描述。

print("Hello" .. " World!")

Lua的讀音盧阿(LOO-ah),在葡萄牙語里是月亮的意思

Lua的官方網(wǎng)站:https://www.lua.org/

Lua的入門教程:

https://www.lua.org/pil/contents.htmlhttps://www.w3cschool.cn/lua/

誰在使用Lua

Adobe Photoshop游戲產(chǎn)業(yè)首選的腳本語言:魔獸世界、大話西游絕大多數(shù)手游都用Lua寫游戲邏輯,方便做安裝后的熱更新

Lua的特點(diǎn)

快速,其他語言談?wù)撈饒?zhí)行效率時(shí),通常會(huì)說“和Lua一樣快”可移植性(標(biāo)準(zhǔn)C實(shí)現(xiàn)),可以運(yùn)行在Windows,Linux,移動(dòng)設(shè)備和其他嵌入式設(shè)備(甚至樂高的MindStorms)可嵌入性,可以作為一種動(dòng)態(tài)特性嵌入到其他語言中,如C、C++、Java、C#、SmallTalk,甚至其他腳本語言如Perl,Ruby。簡(jiǎn)單的強(qiáng)大性,Lua不是原生的面向?qū)ο笳Z言,但可以通過元編程支持面向?qū)ο?。短小精湛,壓縮后大小為350k,一首編碼率為128kbps的mp3大小接近4M。

Getting Started

運(yùn)行環(huán)境:二進(jìn)制安裝包“Lua for Windows”

編輯器:推薦Sublime(內(nèi)建對(duì)lua的支持,直接可以build運(yùn)行)

交互式編程

> Lua -i> Print("Hello World!")

腳本式編程,新建一個(gè)后綴名為.lua的文件,如hello.lua,內(nèi)容如下

print("Hello World!")

通過在console中輸入lua hello.lua來運(yùn)行該lua程序(確保console當(dāng)前目錄與lua文件在同一個(gè)目錄下)

變量

全局變量

name = "Elon Musk"

局部變量

local name = "Musk"-- 局部變量只在作用域(程序塊)中起作用,典型的程序塊,如下-- 1. 函數(shù)function sum(a, b) -- 函數(shù)開始即塊開始 local s = a + b return s -- 函數(shù)結(jié)束即塊結(jié)束end-- 2. 代碼塊if spring_is_comming then -- 塊開始 local rocket_is_ready = true if rocket_is_ready then --launch_it() end -- 塊結(jié)束end-- 3. 文件-- 文件開始即塊開始local filename = "hello.lua"-- 文件結(jié)束即塊結(jié)束

數(shù)據(jù)類型

-- nil, 未初始化的變量的默認(rèn)值為nil,即為空print(bezos)-- numberlocal price = 1.2print(type(price))-- boolean, true or falselocal today_is_weekend = falseprint(type(today_is_weekend))-- stringbezos = "Boss of Blue Origin"print(type(bezos))-- tablevalues = {1, 4, 9, 16}for i=1,#values do print(values[i])endpos = {x=1, y=2, z=3}print(type(pos))print(pos.x, pos.y, pos.z)-- functionfunction do_something() step_1() step_2() step_3() ...end-- userdata -- 自定義數(shù)據(jù)類型,如系統(tǒng)中的JointTarget、RobTarget、ToolData等

賦值

-- SpaceX 2022年發(fā)射任務(wù)launch_times = 36target_of_IM_1 = "MOON"launch_tasks = {"IM-1", "TRANSPORTER-3", "獵鷹重型USSF-44"}im_1 = { name = "IM-1", date = "2022-1-30", load = "Moon Detector from Intuitive Machines"}

循環(huán)

local sum = 0-- forfor i=1,10,1 do sum = sum + iendprint(sum)-- whilesum = 0local i = 0while i <= 10 do sum = sum + i i = i + 1endprint(sum)-- while breaksum = 0i = 0while true do if i > 10 then break end sum = sum + i i = i + 1end

條件判斷

if is_sunny then -- launchelse -- cancel the launch taskendif wind_force == 7 then -- do somethingelseif wind_force == 8 then -- do somethingelseif wind_force == 9 then -- do somethingelse -- cancelend

函數(shù)

函數(shù)是完成特定任務(wù)或功能的語句組合??梢酝ㄟ^名字加小括號(hào)的方式來調(diào)用指定函數(shù)。

function launch(rocket) local ret = test() if not ret then return false end add_fuel() load_detector() return ignite()end

運(yùn)算符

操作符

描述

+

加法

-

減法

*

乘法

/

除法

%

取余

^

冪運(yùn)算

-

負(fù)號(hào)

庫函數(shù)

Lua提供很多庫函數(shù),如string、os,、math、table

string

print(string.upper("Hello"))print(string.lower("Hello"))print(string.reverse("Hello"))print(string.len("Hello"))-- formatprint(string.format("The result is: %d\", 3))-- find-- 使用正則表達(dá)式進(jìn)行數(shù)據(jù)提取 {{x,y,z},{q1,q2,q3,q4}}local str = "{{1.1,1.2,1.3},{1,0,0,0}}"local _, _, x, y, z, q1, q2, q3, q4 = string.find(str, "{{([+-.%d]+),([+-.%d]+),([+-.%d]+)},{([+-.%d]+),([+-.%d]+),([+-.%d]+),([+-.%d]+)}}")if x == nil then returnendprint(x, y, z, q1, q2, q3, q4)

其他庫函數(shù)請(qǐng)?jiān)谛枰褂脮r(shí)自行搜索

機(jī)器人編程

主要關(guān)注以下三個(gè)方面

程序架構(gòu)數(shù)據(jù)類型指令

程序架構(gòu)

程序類型

描述

前臺(tái)程序

即主程序,當(dāng)前在程序編輯界面打開的程序。不考慮工位預(yù)約功能

后臺(tái)程序

系統(tǒng)啟動(dòng)后在后臺(tái)運(yùn)行,不依賴于前臺(tái)程序,為了安全考慮后臺(tái)程序不支持運(yùn)動(dòng)指令。

舉例說明

有一項(xiàng)目使用點(diǎn)激光(測(cè)距)來進(jìn)行邊緣檢測(cè),目前系統(tǒng)提供的SearchL函數(shù)只接收DI信號(hào)輸入,如何把距離轉(zhuǎn)化為DI信號(hào)?

坐標(biāo)系

數(shù)據(jù)類型

數(shù)據(jù)類型

描述

JointTarget

關(guān)節(jié)位置數(shù)據(jù),記錄機(jī)器人各個(gè)關(guān)節(jié)的角度信息,單位為角度

RobTarget

空間位置,記錄機(jī)器人空間目標(biāo)位置信息

ToolData

工具數(shù)據(jù),用于描述工具特征的數(shù)據(jù),包括mounting, 位置

WobjData

工件數(shù)據(jù),用于描述工件坐標(biāo)系,包括用戶坐標(biāo)系和物體坐標(biāo)系

LoadData

負(fù)載數(shù)據(jù),用于描述附加到機(jī)械臂法蘭的負(fù)載信息,如質(zhì)量,質(zhì)心位置,慣量

SpeedData

速度數(shù)據(jù),包括直線速度,旋轉(zhuǎn)速度,外軸直線速度和外軸旋轉(zhuǎn)速度

ZoneData

區(qū)域數(shù)據(jù),用于指定轉(zhuǎn)彎半徑

指令

MoveL([motGroup/mecName], toPoint, speed, zone, tool, wobj, [load])

其中括號(hào)包括的參數(shù)是可以省略不寫的,如:

MoveL(toPoint, speed, zone, tool, wobj) 是沒有毛病的。

現(xiàn)階段的機(jī)器人程序都是死的,不會(huì)進(jìn)行聯(lián)想。使用指令前,先看清函數(shù)定義,它需要什么類型的參數(shù),就給它什么類型的參數(shù),不要自己想當(dāng)然。

函數(shù)執(zhí)行與機(jī)器人運(yùn)動(dòng)執(zhí)行

腳本程序在執(zhí)行時(shí),是一條語句接著一條語句執(zhí)行;機(jī)器人運(yùn)動(dòng)時(shí),也是一個(gè)運(yùn)動(dòng)接著一個(gè)運(yùn)動(dòng)執(zhí)行,在一個(gè)運(yùn)動(dòng)還沒執(zhí)行完之前不會(huì)去執(zhí)行下一個(gè)運(yùn)動(dòng)。像MoveL這種運(yùn)動(dòng)指令存在一種情況,就是函數(shù)執(zhí)行完了,運(yùn)動(dòng)還沒有執(zhí)行完。這就會(huì)導(dǎo)致MoveL之后的SetDO輸出時(shí)間提前了。如果要等運(yùn)動(dòng)執(zhí)行完再輸出DO,需要在SetDO前加入

while GetDO("SYS_SERVO_BUSY") ~= 0 do check_stop() Sleep(10)end

以上

以上就是關(guān)于pos機(jī)輸入x,Lua語言在機(jī)器人領(lǐng)域的應(yīng)用入門的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)輸入x的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://www.dprolou.com/newstwo/108081.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。