Получить расстояние v-rep, датчик приближения Java - PullRequest
0 голосов
/ 25 апреля 2018

Мне нужно получить расстояние в метрах на датчике приближения v-rep, закодированном в java.

Я могу знать только, если он обнаруживает препятствие или нет, но не расстояние

Есть идеи?

1 Ответ

0 голосов
/ 15 мая 2018

Я нашел способ создать дочерний скрипт на датчике приближения.В 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.

...