V-REP提供remote API函数,远程API允许从外部应用程序或远程硬件(例如真实机器人,远程计算机等)控制模拟(或模拟器本身)。
意味着你不需要会V-REP内嵌Lua语言,只需Matlab,Python,C,C++等等其中的一种就可以用相应的remote API来进行对控制器的编程。
以Matlab为例,结合User Manual讲解如何实现。(学会根据官方手册解决问题很重要🤭)
1·把以下V-REP安装路径下的文件复制到Matlab路径文件夹中
2·在V-REP实体添加脚本
3·在添加脚本中输入the server side (i.e. V-REP)的远程API函数
远程API是server端(V-REP)与client端(这里是Matlab)通信的过程,所以用V-REP中的函数设置这些通信,不同版本的V-REP通信函数会略有区别,反正点开官方手册复制过来不会错就完事儿了😄
里面点击server side,对就是这个函数
写在添加的脚本上面,有效的API函数写上会变成红色,有些版本V-REP是simExtRemoteApi.start,看手册就知道自己的版本对应什么函数,别跟版本过不去🤭
4·在client端(Matlab)建立通信
从手册点到这里!
在这里面是所有Matlab的函数,写一个例子
:运用remote文件-设置clientID-设置时间步长-运用同步模式-仿真开始
我的m文件里截的😄
PS:client端用带Get的函数从server端获取信息,用带Set的函数向client端输入。
例:
从V-REP获取电机关节位置
把Matlab中算法计算的目标速度输入到V-REP中
重点:在控制问题中往往需要将力矩传到vrep中
并没有直接提供函数接口给力矩控制使用
(SetJointForce是设置提供的最大转矩而非实时转矩)
力矩控制电机速度:
在没有达到目标速度之前,输出力矩等于你设定的最大转矩。
力矩控制电机位置:
还是这两个函数,但是我们需要把set_velocity设置成无穷大inf,并用条件改变速度的方向。这样永远达不到这个速度,输出力矩就会永远等于你设定的最大转矩,达到转矩控制的目的。
就像这样噢🤭
好了搞定啦😳