• lua实现

文章目录

  • lua实现
    • `本章在动力学建模完成的前提下进行`
    • 1)创建脚本
    • 2)代码实现
    • 3)以上代码的运行结果
    • 4)代码中用到函数的help文档

本章在动力学建模完成的前提下进行

传送门:【CoppeliaSim】(原V-rep)模型文件导入及动力学建模_魚香肉丝盖饭的博客-CSDN博客_vrep导入stl

1)创建脚本

​ 因为用到的RML库函数只能在线程模式下运行,所以添加脚本时要选择线程脚本。

2)代码实现

function sysCall_threadmain()-- 获取必要的句柄handle(以下四行代码是机械臂标准获取句柄方式)jointHandles={}for i = 1,4,1 dojointHandles[i] = sim.getObjectHandle('RRRR_J'..i)end-- 设置机械臂运动属性-- 属性根据实际状态去设置local accel = 0.5local jerk  = 0.5local vel   = 0.5local currentVel   = {0,0,0,0}local currentAccel = {0,0,0,0}local maxVel       = {vel,vel,vel,1.5*vel}local maxAccel     = {accel,accel,accel,accel}local maxJerk      = {jerk,jerk,jerk,jerk}local targetVel    = {0,0,0,0}-- 主循环while sim.getSimulationState()~=sim.simulation_advancing_abouttostop do-- 先运行到工作状态Tarpos = {80*math.pi/180,80*math.pi/180,80*math.pi/180,80*math.pi/180}-- 工作姿态sim.rmlMoveToJointPositions(jointHandles,-1,currentVel,currentAccel,maxVel,maxAccel,maxJerk,Tarpos,targetVel)-- 因为只能在线程模式下运行,所以添加脚本时要选择线程脚本Tarpos = {0,0,0,0} -- 初始姿态sim.rmlMoveToJointPositions(jointHandles,-1,currentVel,currentAccel,maxVel,maxAccel,maxJerk,Tarpos,targetVel)Tarpos ={-80*math.pi/180,-80*math.pi/180,-80*math.pi/180,-80*math.pi/180} -- 工作姿态sim.rmlMoveToJointPositions(jointHandles,-1,currentVel,currentAccel,maxVel,maxAccel,maxJerk,Tarpos,targetVel)Tarpos = {0,0,0,0} -- 初始姿态sim.rmlMoveToJointPositions(jointHandles,-1,currentVel,currentAccel,maxVel,maxAccel,maxJerk,Tarpos,targetVel)-- 以上是四个关节同时运动-- 以下是四个关节依次运动Tarpos = {80*math.pi/180,80*math.pi/180,80*math.pi/180,80*math.pi/180}for i =1,4,1 dosim.rmlMoveToJointPositions({jointHandles[i]},-1,{currentVel[i]},{currentAccel[i]},{maxVel[i]},{maxAccel[i]},{maxJerk[i]},{Tarpos[i]},{targetVel[i]})endTarpos = {0,0,0,0}for i =1,4,1 dosim.rmlMoveToJointPositions({jointHandles[i]},-1,{currentVel[i]},{currentAccel[i]},{maxVel[i]},{maxAccel[i]},{maxJerk[i]},{Tarpos[i]},{targetVel[i]})endTarpos ={-80*math.pi/180,-80*math.pi/180,-80*math.pi/180,-80*math.pi/180}for i =1,4,1 dosim.rmlMoveToJointPositions({jointHandles[i]},-1,{currentVel[i]},{currentAccel[i]},{maxVel[i]},{maxAccel[i]},{maxJerk[i]},{Tarpos[i]},{targetVel[i]})endTarpos = {0,0,0,0} -- 初始姿态for i =1,4,1 dosim.rmlMoveToJointPositions({jointHandles[i]},-1,{currentVel[i]},{currentAccel[i]},{maxVel[i]},{maxAccel[i]},{maxJerk[i]},{Tarpos[i]},{targetVel[i]})endend
endfunction sysCall_cleanup()-- Put some clean-up code here
end

3)以上代码的运行结果

coppeliaSim正运动学

4)代码中用到函数的help文档

  • sim.getSimulationState

​ 此函数的返回值:

sim.simulation_stopped  -- 仿真停止
sim.simulation_paused   -- 仿真暂停
sim.simulation_advancing_firstafterstop
sim.simulation_advancing_running
sim.simulation_advancing_lastbeforepause
sim.simulation_advancing_firstafterpause
sim.simulation_advancing_abouttostop
sim.simulation_advancing_lastbeforestop
  • sim.getObjectHandle

  • sim.rmlMoveToJointPositions

CoppeliaSim(原Vrep)中实现多关节机械臂的正运动学仿真【CoppeliaSim内嵌脚本lua语言实现】相关推荐

  1. CoppeliaSim(原Vrep)中实现多关节机械臂的逆运动学仿真(tar-tip)

    文章目录 `本章在动力学建模完成的前提下进行` 1) 将所有关节的运行模式改为逆运动学模式 2)添加Tar&Tip 3)设置逆解计算模式 4)运行仿真后拖动Tar 可以看到Tip点的跟随 本章 ...

  2. 机器人学回炉重造(1-2):各种典型机械臂的正运动学建模(标准D-H法)

    文章目录 写在前面 三连杆平面机械臂 平行四边形操作臂 闭链结构 例:平行四边形操作臂 球形臂 拟人臂 球腕 斯坦福机械臂 带球形手腕的拟人化机械臂 DLR机械臂 参考文献 写在前面 本文所有机械臂均 ...

  3. matlab计算六轴机械臂DH正运动学

    DH 根据DH法建立DH参数表格,根据表格输入参数到matlab程序,程序运行算出变换矩阵. 代码 function [outputArg1] = four_paramters2matrix(thet ...

  4. CoppeliaSim(原V-REP)教育版不给下载的解决方法

    CoppeliaSim(原V-REP)教育版不给下载的解决方法 首先进入CoppeliaSim官网 网址:https://www.coppeliarobotics.com/downloads http ...

  5. 三关节机械臂上的传感器 、执行器与控制板STM32F103连接

    ▌01 三关节机械臂 三关节控制臂 通过 调试机械臂一体化控制电路:STM32F103控制器初步调试 完成控制.本文描述了机械臂上的各个传感器.执行器与控制板之间的连接方法以及测试方法. 关于机械臂的 ...

  6. 三关节机械臂控制命令修改

    ▌01 机械控制臂 1.简介 在 调试机械臂一体化控制电路:STM32F103控制器初步调试 对于 三轴机械臂的 的控制,最初版本采用了 简易调试命令组合. 这个命令是为了付方便最初的调试与测试机械臂 ...

  7. 【神经网络】基于RBF神经网络的六关节机械臂无模型控制

    前言:最近在搞神经网络,看到有用神经网络逼近未建模动态的,也有用神经网络来逼近整个模型的,后者即是无模型控制.无模型控制它不需要知道系统的名义模型,直接用神经网络来逼近整个系统,感觉这个方法还蛮厉害的 ...

  8. 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(上)

    Adams六关节机械臂与Matlab/Simulink的联合仿真(上) 前言:一直对于六关节机械臂与simulink的联合仿真很感兴趣,但网上关于实际模型的机械臂联合仿真的资料很少,更别说六关节的联合 ...

  9. 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(下)

    Adams六关节机械臂与Matlab/Simulink的联合仿真(下) 接上文,上文讲到了建立好变量与测量单元之间的关联了,下面完成matlab/simulink的对接接口以及模型搭建 第一步. ad ...

最新文章

  1. 在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统
  2. 第4期 变异注解之旅
  3. Android10.0 日志系统分析(一)-logd、logcat 指令说明、分类和属性-[Android取经之路]
  4. python界面设计实例-Python GUI项目实战(二)主窗体的界面设计与实现
  5. create maven android project
  6. Java 动态代理机制分析及扩展
  7. 二十、UE和UI的区别
  8. python-socket客户服务端的传输原理异常关闭的情况
  9. 用Dojo实现Ajax请求:XH“.NET研究”R、跨域、及其他
  10. 恢复Redis中主、从库宕机
  11. SQL SERVER 2012 第五章 创建和修改数据表 の CREATE语句
  12. javascript 设为首页 | 加入收藏夹 JS代码
  13. TensorFlow实现卷积、反卷积和空洞卷积
  14. 尚学堂马士兵老师的JAVA自学之路
  15. teamviewer 11 linux,安装Teamviewer的问题
  16. 最大公约数和最小公倍数(深入理解)
  17. git error 已解决【Another git process seems to be running in this repository, e.g. an editor opened by】
  18. mysql面试题总结_mysql面试题小结
  19. 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
  20. python远程监控服务器多个日志_flume远程监控一个文件

热门文章

  1. 欧姆龙FinsTcp通信详解(一)--PLC常用命令格式
  2. 计算机语言求公因子,学好PLC必须掌握的三个典型程序实例!为PLC编程积累一些实例知识吧!...
  3. axure生成的HTML可以直接用吗
  4. 按日期生成文件夹,并删除之前的文件夹
  5. OpenHarmony应用开发之如何创建DAYU200预览器
  6. 安卓system userdata镜像解包打包
  7. realme gt neo3 看屏幕是天马屏幕还是京东方(图文教程)
  8. 作为一个招商拓展岗应该具备哪些能力?
  9. 加密【encrypt】和解密【decrypt】介绍
  10. 中国盛产“美国博士”何等讽刺