获取距离 v-rep 接近传感器 Java
Get distance v-rep proximity sensor Java
我需要在 java
中编码的 v-rep 接近传感器上获取以米为单位的距离。
只知道有没有障碍物,不知道距离
有什么想法吗?
我找到的方法是在接近传感器上创建一个子脚本。在 V-Rep 中,选择接近传感器,转到 Add --> associated child script --> Non-Threaded
然后让 sysCall_actuation()
看起来像:
function sysCall_actuation()
local name = sim.getObjectName(sim.getObjectAssociatedWithScript(sim.handle_self))
result,distance,detectedPoint,detectedObjectHandle = sim.handleProximitySensor(sim.handle_self)
if distance then
sim.setFloatSignal("mydistance", distance);
end
end
这从接近传感器读取距离并将其推送到信号(如跨平台变量类型的东西)。然后在 java 那边有这样的东西:
FloatW val = new FloatW(-1);
vrep.simxGetFloatSignal(clientID, "mydistance", val, remoteApi.simx_opmode_buffer);//call this with simx_opmode_streaming once before this to start vrep streaming the distances
这会获取从 vrep 发送的值,并以 FloatW 的形式为您提供距离。
我需要在 java
中编码的 v-rep 接近传感器上获取以米为单位的距离。
只知道有没有障碍物,不知道距离
有什么想法吗?
我找到的方法是在接近传感器上创建一个子脚本。在 V-Rep 中,选择接近传感器,转到 Add --> associated child script --> Non-Threaded
然后让 sysCall_actuation()
看起来像:
function sysCall_actuation()
local name = sim.getObjectName(sim.getObjectAssociatedWithScript(sim.handle_self))
result,distance,detectedPoint,detectedObjectHandle = sim.handleProximitySensor(sim.handle_self)
if distance then
sim.setFloatSignal("mydistance", distance);
end
end
这从接近传感器读取距离并将其推送到信号(如跨平台变量类型的东西)。然后在 java 那边有这样的东西:
FloatW val = new FloatW(-1);
vrep.simxGetFloatSignal(clientID, "mydistance", val, remoteApi.simx_opmode_buffer);//call this with simx_opmode_streaming once before this to start vrep streaming the distances
这会获取从 vrep 发送的值,并以 FloatW 的形式为您提供距离。