机器人仿真软件 V-REP学习记录(基础) -- LUA语言基础

0 简介

LUA语言是软件的自带语言,支持直接在软件进行编程

  • 对某个物体添加脚本后便生成如下格式代码
1.初始化函数,只在开始仿真时执行一次
function sysCall_init()
    -- do some initialization here
end

2.执行函数,在仿真中循环执行
function sysCall_actuation()
    -- put your actuation code here
end

3.传感器控制函数,--以后用到来补充一下,这个一般不用
function sysCall_sensing()
    -- put your sensing code here
end

4.清除函数,停止运行前执行一次
function sysCall_cleanup()
    -- do some clean-up here 
    simUI.destroy(ui)	一般用来清除窗口
end

1 基本语法

说明

  1. Lua的变量只要定义了并没有其他声明就是全局变量,比如你在一个函数中定义了,另一个函数也是共享的。
  2. 调用函数开头小写是lua语言调用,大写是其他语言接口
eg:
sim.getObjectAssociatedWithScript (Lua)                
simGetObjectAssociatedWithScript (C/C++)

函数

  1. 函数格式
function function_name()  
<函数体>   
end

括号中可以放一些传入的参数,需要返回值的时候直接return就好,跟C差不多,返回多个值的时候用逗号隔开

For循环

  1. for循环格式
-- exp1为初值,exp2为终值,exp3为步长,可以省略,默认为1for var=exp1,exp2,exp3 
do  <执行体>  
end    

While循环

  1. while循环格式
 -- condition为条件,比如x>1,
while (condition)
do <执行体> 
end 

If语句

  1. if语句格式1
if (condition) 
 then <执行体> 
end 
  1. if语句格式2
if (condition) 
 then  <执行体> 
 else <执行体> 
end  

2 常用格式

数字类型

  1. number 类型
    大多数都是用这个好像
  2. 数组
  • 定义:num = {参数1,参数2…}
  • 调用:num[1],num[2]即可 (注意索引从1开始,不是0)

注释

  • Lua的注释使用的是两个减号–,这个可以注释一行代码,
  • 批量注释使用的是–[[ 被注释内容 ]]-- 被包含的代码均会被注释

打印输出

  • 显示某个变量或是某段话,可以用print函数,
print(参数1,参数2...)
想要输出多个内容时需要用逗号隔开

创建UI

  • 有点像html语言
xml = '<ui title="'..sim.getObjectName(bubbleRobBase)..' speed" closeable="false" resizeable="false" activate="false">'	
	..[[
          <hslider minimum="0" maximum="100" on-change="speedChange_callback" id="1"/>
          <label text="" style="* {margin-left: 300px;}"/>
        </ui>
        ]]
    ui=simUI.create(xml)

3 常用函数

  1. sim.getObjectAssociatedWithScript()
  • 输入参数: scriptHandle
  • 输出参数: objectHandle(如果是 -1就是报错了)
  • 函数功能: 连接脚本和项目
* eg:
* bubbleRobBase=sim.getObjectAssociatedWithScript(sim.handle_self)
  1. sim.getObjectHandle()
  • 输入参数: objectName(“字符串”)
  • 输出参数: objectHandle
  • 函数功能: 连接脚本和项目
* eg:
* number objectHandle=sim.getObjectHandle(string objectName)
* leftMotor=sim.getObjectHandle("bubbleRob_leftMotor") 
-- Handle of the left motor

每种语言的风格基本相似,掌握几种常用的用法即可。其他的可以在用到的时候直接查找嘛~~

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值