W11 <<
Previous Next >> task 2-2
task 2-1
Stage-ag10 Remote API 操控
由於我們設計的產品只有一個轉軸,所以只須設定一個變數。
CoppeliaSim child script :

threadFunction=function()
-- Put your thread code here (initialization and clean-up code should not be in here)
-- Some EXTERNAL commands (e.g. socket commands provided by Lua libraries)
-- might appear as blocking to the simulator. In that case, you can define
-- a non-blocking section as following example shows:
--
-- sim.setThreadIsFree(true) -- Start of the non-blocking section
--
-- Following 2 lines are meant as an example of EXTERNAL blocking commands:
-- http = require("socket.http")
-- print(http.request("http://www.google.com"))
--
-- sim.setThreadIsFree(false) -- End of the non-blocking section
--
-- While in a non-blocking section, try to avoid calling sim-functions. Also
-- never forget to close the blocking section, otherwise V-REP will hang.
-- Make sure you read the information related to the sim.setThreadIsFree
-- API function in V-REP's documentation.
-- If you wish to synchronize a threaded loop with each simulation pass,
-- set the thread switch timing in the initialization phase of this script
-- to the maximum (200), and manually switch thread here with the
-- sim.switchThread() command.
-- ( sim.switchThread() will suspend this script's execution until next
-- simulation pass, i.e. until the simulation time has changed )
--
-- Following example illustrates this:
--
-- while true do
-- local p=sim.getObjectPosition(objHandle,-1)
-- p[1]=p[1]+0.001
-- sim.setObjectPosition(objHandle,-1,p)
-- sim.switchThread()
-- end
end
-- Put some initialization code here:
sim.setThreadSwitchTiming(2) -- Default timing for automatic thread switching
-- Here we execute the regular thread code:
res,err=xpcall(threadFunction,function(err) return debug.traceback(err) end)
if not res then
sim.addStatusbarMessage('Lua runtime error: '..err)
end
-- Put some clean-up code here:
simRemoteApi.start(19999)
Python Remote API :

import sim as vrep
import sys
# child threaded script:
#simExtRemoteApiStart(19999)
vrep.simxFinish(-1)
clientID = vrep.simxStart('127.0.0.1', 19999, True, True, 5000, 5)
if clientID!= -1:
print("Connected to remote server")
else:
print('Connection not successful')
sys.exit('Could not connect')
errorCode,boat_motor_handle=vrep.simxGetObjectHandle(clientID,'boat_motor',vrep.simx_opmode_oneshot_wait)
if errorCode == -1:
print('Can not find motor')
sys.exit()
errorCode=vrep.simxSetJointTargetVelocity(clientID,boat_motor_handle,-10, vrep.simx_opmode_oneshot_wait)
W11 <<
Previous Next >> task 2-2