NFU-MDE-40823108-KAO,YU-CHE-cd2021

  • Home
    • Site Map
    • reveal
    • blog
  • Introduction
  • KMOLab basis
    • Cmsimde create
    • Python program
    • SSH key produce
    • SSH putty settings
    • Leo Edit Blog
    • Leo Edit Reveal
    • Synergy
  • Coppeliasim basic
    • Import objects
    • Divide object
    • Appearance setting
    • Joint settings
    • Orchestration objects
    • Proximity sensor
  • Midterm
    • W1
    • W2
    • W3
      • work
    • W4
    • W5
    • W6
    • W7
    • W8
    • W9
  • Final
    • W10-task1
    • W11-task2
    • W12-task3
    • W13
    • W14
    • W15
    • W16
    • W17
    • W18
  • Stage1-ag1
  • Stage2-ag1
  • Stage3-ag1
  • phone webcam
    • ios for Webcam
    • Android for Webcam
  • Github sever issue
W7 << Previous Next >> W9

W8

本週我們加入了力傳感器、視覺傳感器,讓模型在碰觸障礙物時,可以自行避開並選擇路徑上無障礙物之路線進行移動。

下圖為模擬圖:

模型Lua:

function sysCall_init()
    
    
end

function sysCall_actuation()
    
end

function sysCall_sensing()
    
end

function sysCall_cleanup()
    
end



function sysCall_afterDelete(inData)
    for key,value in pairs(inData.objectHandles) do
        print("Object with handle "..key.." was deleted")
    end
    
end

function sysCall_afterCreate(inData)
    for key,value in pairs(inData.objectHandles) do
        print("Object with handle "..value.." was created")
    end
end
--]]
function speedChange_callback(ui,id,newVal)
    speed=minMaxSpeed[1]+(minMaxSpeed[2]-minMaxSpeed[1])*newVal/100
end

function sysCall_init()
    
    bubbleRobBase=sim.getObjectAssociatedWithScript(sim.handle_self) 
    leftMotor=sim.getObjectHandle("bubbleRob_leftMotor") 
    rightMotor=sim.getObjectHandle("bubbleRob_rightMotor") 
    noseSensor=sim.getObjectHandle("bubbleRob_sensingNose") 
    minMaxSpeed={120*math.pi/180,300*math.pi/180} 
    backUntilTime=-1 
   
        xml = '<ui title="'..sim.getObjectName(bubbleRobBase)..' speed" closeable="false" resizeable="false" activate="false">'..[[
        <hslider minimum="0" maximum="100" onchange="speedChange_callback" id="1"/>
        <label text="" style="* {margin-left: 300px;}"/>
        </ui>
        ]]
    ui=simUI.create(xml)
    speed=(minMaxSpeed[1]+minMaxSpeed[2])*1
    simUI.setSliderValue(ui,1,100*(speed-minMaxSpeed[1])/(minMaxSpeed[2]-minMaxSpeed[1]))
end

function sysCall_actuation()
    result=sim.readProximitySensor(noseSensor) 
    
    if (result>0) then backUntilTime=sim.getSimulationTime()+4 end 

    if (backUntilTime<sim.getSimulationTime()) then
        
        sim.setJointTargetVelocity(leftMotor,speed)
        sim.setJointTargetVelocity(rightMotor,speed)
    else
        
        sim.setJointTargetVelocity(leftMotor,-speed/5)
        sim.setJointTargetVelocity(rightMotor,-speed/200)
    end
end

function sysCall_cleanup()
	simUI.destroy(ui)
end

路徑Lua:

require('graph_customization')

力傳感器Lua:

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

function sysCall_init()
end

function sysCall_trigger(inData)
    -- callback function automatically added for backward compatibility
    sim.breakForceSensor(inData.handle)
end

視覺傳感器Lua:

function sysCall_init()
end

function sysCall_vision(inData)
    -- callback function automatically added for backward compatibility
    -- (vision sensor have no filters anymore, but rather a callback function where image processing can be performed)
    local retVal={}
    retVal.trigger=false
    retVal.packedPackets={}
    simVision.sensorImgToWorkImg(inData.handle)
    simVision.edgeDetectionOnWorkImg(inData.handle,0.200000)
    simVision.workImgToSensorImg(inData.handle,false)
    return retVal
end


W7 << Previous Next >> W9

Copyright © All rights reserved | This template is made with by Colorlib