pos機輸入x

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

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

本文目錄一覽:

1、pos機輸入x

pos機輸入x

Lua 是一種強大、高效、輕量、可嵌入的類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的特點

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

Getting Started

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

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

交互式編程

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

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

print("Hello World!")

通過在console中輸入lua hello.lua來運行該lua程序(確保console當前目錄與lua文件在同一個目錄下)

變量

全局變量

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, 未初始化的變量的默認值為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ā)射任務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ù)是完成特定任務或功能的語句組合??梢酝ㄟ^名字加小括號的方式來調(diào)用指定函數(shù)。

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

運算符

操作符

描述

+

加法

-

減法

*

乘法

/

除法

%

取余

^

冪運算

-

負號

庫函數(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-- 使用正則表達式進行數(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ù)請在需要使用時自行搜索

機器人編程

主要關注以下三個方面

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

程序架構(gòu)

程序類型

描述

前臺程序

即主程序,當前在程序編輯界面打開的程序。不考慮工位預約功能

后臺程序

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

舉例說明

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

坐標系

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

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

描述

JointTarget

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

RobTarget

空間位置,記錄機器人空間目標位置信息

ToolData

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

WobjData

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

LoadData

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

SpeedData

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

ZoneData

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

指令

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

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

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

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

函數(shù)執(zhí)行與機器人運動執(zhí)行

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

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

以上

以上就是關于pos機輸入x,Lua語言在機器人領域的應用入門的知識,后面我們會繼續(xù)為大家整理關于pos機輸入x的知識,希望能夠幫助到大家!

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

你可能會喜歡:

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