我需要在java
编码的v-rep接近传感器上以米为单位。
我只能知道它是否检测到障碍物,而不是距离
有什么想法吗?
答案 0 :(得分:0)
我发现这样做的方法是在接近传感器上创建子脚本。在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的形式为您提供距离。