VREP循迹小车
![VREP循迹小车_第1张图片](http://img.e-com-net.com/image/info8/bb65ad25cdc24f6da8cbb4b72430c59b.jpg)
蓝色部分是视觉传感器
黑色是路径
代码
errorCode,left_motor_handle=vrep.simxGetObjectHandle(clientID,"left_joint",vrep.simx_opmode_oneshot_wait)
errorCode,right_motor_handle=vrep.simxGetObjectHandle(clientID,"right_joint",vrep.simx_opmode_oneshot_wait)
sensor_h=[]
sensor_val=[]
for x in range(0,6):
errorCode,sensor_handle=vrep.simxGetObjectHandle(clientID,'line_sensor'+str(x),vrep.simx_opmode_oneshot_wait)
sensor_h.append(sensor_handle)
errorCode,detectionstate, sensorreadingvalue=vrep.simxReadVisionSensor(clientID,sensor_h[x],vrep.simx_opmode_streaming)
sensor_val.append(1.0)
time.sleep(1)
t = time.time()
while (1):
summa = 0
andur = 0
for x in range(0,6):
errorCode,detectionstate, sensorreadingvalue=vrep.simxReadVisionSensor(clientID,sensor_h[x],vrep.simx_opmode_buffer)
sensor_val[x]=sensorreadingvalue[1][0]
print "Positsiooni väärtus kokku45 :",sensor_val[x] ,x
if sensor_val[2]<=0.2 or sensor_val[3]<=0.2:
errorCode=vrep.simxSetJointTargetVelocity(clientID,left_motor_handle,10, vrep.simx_opmode_streaming)
errorCode=vrep.simxSetJointTargetVelocity(clientID,right_motor_handle,10, vrep.simx_opmode_streaming)
if sensor_val[1]<=0.2:
errorCode=vrep.simxSetJointTargetVelocity(clientID,left_motor_handle,13, vrep.simx_opmode_streaming)
errorCode=vrep.simxSetJointTargetVelocity(clientID,right_motor_handle,10, vrep.simx_opmode_streaming)
if sensor_val[0]<=0.2:
errorCode=vrep.simxSetJointTargetVelocity(clientID,left_motor_handle,16, vrep.simx_opmode_streaming)
errorCode=vrep.simxSetJointTargetVelocity(clientID,right_motor_handle,10, vrep.simx_opmode_streaming)
if sensor_val[4]<=0.2:
errorCode=vrep.simxSetJointTargetVelocity(clientID,left_motor_handle,10, vrep.simx_opmode_streaming)
errorCode=vrep.simxSetJointTargetVelocity(clientID,right_motor_handle,13, vrep.simx_opmode_streaming)
if sensor_val[5]<=0.2:
errorCode=vrep.simxSetJointTargetVelocity(clientID,left_motor_handle,10, vrep.simx_opmode_streaming)
errorCode=vrep.simxSetJointTargetVelocity(clientID,right_motor_handle,16, vrep.simx_opmode_streaming)
viivitus = round((time.time()-t),5)
print "viivitus on: ", viivitus
t = time.time()
![VREP循迹小车_第2张图片](http://img.e-com-net.com/image/info8/70e4fa08b42d43a386ab570fcdaf2777.jpg)
原理解释:
![VREP循迹小车_第3张图片](http://img.e-com-net.com/image/info8/3079c51ff6ba4d5eb25515c0988d582b.jpg)
![VREP循迹小车_第4张图片](http://img.e-com-net.com/image/info8/b0378d2d8d724acfa4f2c73e7f0cafe7.jpg)
![VREP循迹小车_第5张图片](http://img.e-com-net.com/image/info8/79598b2ce7774349bebe3e946d468cdc.jpg)