CoppeliaSim(原Vrep)中实现多关节机械臂的正运动学仿真【CoppeliaSim内嵌脚本lua语言实现】
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语言实现】相关推荐
- CoppeliaSim(原Vrep)中实现多关节机械臂的逆运动学仿真(tar-tip)
文章目录 `本章在动力学建模完成的前提下进行` 1) 将所有关节的运行模式改为逆运动学模式 2)添加Tar&Tip 3)设置逆解计算模式 4)运行仿真后拖动Tar 可以看到Tip点的跟随 本章 ...
- 机器人学回炉重造(1-2):各种典型机械臂的正运动学建模(标准D-H法)
文章目录 写在前面 三连杆平面机械臂 平行四边形操作臂 闭链结构 例:平行四边形操作臂 球形臂 拟人臂 球腕 斯坦福机械臂 带球形手腕的拟人化机械臂 DLR机械臂 参考文献 写在前面 本文所有机械臂均 ...
- matlab计算六轴机械臂DH正运动学
DH 根据DH法建立DH参数表格,根据表格输入参数到matlab程序,程序运行算出变换矩阵. 代码 function [outputArg1] = four_paramters2matrix(thet ...
- CoppeliaSim(原V-REP)教育版不给下载的解决方法
CoppeliaSim(原V-REP)教育版不给下载的解决方法 首先进入CoppeliaSim官网 网址:https://www.coppeliarobotics.com/downloads http ...
- 三关节机械臂上的传感器 、执行器与控制板STM32F103连接
▌01 三关节机械臂 三关节控制臂 通过 调试机械臂一体化控制电路:STM32F103控制器初步调试 完成控制.本文描述了机械臂上的各个传感器.执行器与控制板之间的连接方法以及测试方法. 关于机械臂的 ...
- 三关节机械臂控制命令修改
▌01 机械控制臂 1.简介 在 调试机械臂一体化控制电路:STM32F103控制器初步调试 对于 三轴机械臂的 的控制,最初版本采用了 简易调试命令组合. 这个命令是为了付方便最初的调试与测试机械臂 ...
- 【神经网络】基于RBF神经网络的六关节机械臂无模型控制
前言:最近在搞神经网络,看到有用神经网络逼近未建模动态的,也有用神经网络来逼近整个模型的,后者即是无模型控制.无模型控制它不需要知道系统的名义模型,直接用神经网络来逼近整个系统,感觉这个方法还蛮厉害的 ...
- 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(上)
Adams六关节机械臂与Matlab/Simulink的联合仿真(上) 前言:一直对于六关节机械臂与simulink的联合仿真很感兴趣,但网上关于实际模型的机械臂联合仿真的资料很少,更别说六关节的联合 ...
- 【联合仿真】Adams六关节机械臂与Matlab/Simulink的联合仿真(下)
Adams六关节机械臂与Matlab/Simulink的联合仿真(下) 接上文,上文讲到了建立好变量与测量单元之间的关联了,下面完成matlab/simulink的对接接口以及模型搭建 第一步. ad ...
最新文章
- 在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统
- 第4期 变异注解之旅
- Android10.0 日志系统分析(一)-logd、logcat 指令说明、分类和属性-[Android取经之路]
- python界面设计实例-Python GUI项目实战(二)主窗体的界面设计与实现
- create maven android project
- Java 动态代理机制分析及扩展
- 二十、UE和UI的区别
- python-socket客户服务端的传输原理异常关闭的情况
- 用Dojo实现Ajax请求:XH“.NET研究”R、跨域、及其他
- 恢复Redis中主、从库宕机
- SQL SERVER 2012 第五章 创建和修改数据表 の CREATE语句
- javascript 设为首页 | 加入收藏夹 JS代码
- TensorFlow实现卷积、反卷积和空洞卷积
- 尚学堂马士兵老师的JAVA自学之路
- teamviewer 11 linux,安装Teamviewer的问题
- 最大公约数和最小公倍数(深入理解)
- git error 已解决【Another git process seems to be running in this repository, e.g. an editor opened by】
- mysql面试题总结_mysql面试题小结
- 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
- python远程监控服务器多个日志_flume远程监控一个文件
热门文章
- 欧姆龙FinsTcp通信详解(一)--PLC常用命令格式
- 计算机语言求公因子,学好PLC必须掌握的三个典型程序实例!为PLC编程积累一些实例知识吧!...
- axure生成的HTML可以直接用吗
- 按日期生成文件夹,并删除之前的文件夹
- OpenHarmony应用开发之如何创建DAYU200预览器
- 安卓system userdata镜像解包打包
- realme gt neo3 看屏幕是天马屏幕还是京东方(图文教程)
- 作为一个招商拓展岗应该具备哪些能力?
- 加密【encrypt】和解密【decrypt】介绍
- 中国盛产“美国博士”何等讽刺