关于与 Python 的连接请参考文章:【CoppeliaSim】远程 API 之 Matlab 控制,对比 V-rep 有些不同
文章目录
1. 新建工程文件夹
需要使用远程 Remote 时需要一些必备的文件,分别有 sim.py
(原vrep.py),simConst.py
(原vrepConst.py),以及 remoteApi.dll
这三个基本文件。下边分别记录一下它们的所在位置,开发新的工程时建议将这三个文件拷贝出来,统一放置在你的工程文件夹下。
我的 CoppeliaSim,也就是 V-rep,是默认路径安装,你们若是在安装时更改了路径,那就先找到安装文件夹,之后模仿着找到自己的文件。
1.1 sim.py
C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\python\python
1.2 simConst.py
C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\python\python
1.3 remoteApi.dll
C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming\remoteApiBindings\lib\lib\Windows
最后的文件夹结构如下:
2. 配置 CoppeliaSim/V-Rep 工程
-- The main script is not supposed to be modified, except in special cases.
require('defaultMainScript')
simRemoteApi.start(19999)
3. 配置 Python 脚本
import sim
sim.simxFinish(-1)
clientID = sim.simxStart('127.0.0.1', 19999, True, True, 5000, 5)
if clientID != -1:
print("Connected to remote API server!")
else:
print("Failed connecting to remote API server")
sim.simxGetPingTime(clientID)
ret, targetObj = sim.simxGetObjectHandle(clientID, 'Quadcopter_target', sim.simx_opmode_blocking)
ret, arr = sim.simxGetObjectPosition(clientID, targetObj, -1, sim.simx_opmode_blocking)
if ret==sim.simx_return_ok:
print(arr)
sim.simxSetObjectPosition(clientID, targetObj, -1, (arr[0], arr[1]+0.5, arr[2]), sim.simx_opmode_blocking)
sim.simxFinish(clientID)
详细代码解释请参考CoppeliaSim(原V-REP)新手上路,毕竟人家都写的很详细了,我也是参考作者的文章。如果把文章内容直接复制过来太不地道了,所以想看的麻烦转到作者博客下吧。
最终效果如下。
Mac
Ref(倒序):
V-rep 教程
CoppeliaSim(原V-REP)新手上路
V-rep远程API控制之Python系列(1):位置控制模式