cd2021 - 40823109

  • Home
    • Site Map
    • reveal
    • blog
  • About
  • Stage1
    • W1
      • SSH setup
      • set website
    • W2
      • 草圖繪製
      • 3D圖繪製
    • W3
      • 3D爆炸圖與工作圖
      • 傳動設計修改
    • W4
  • stage2
    • W5
    • W6
    • W7
    • W8
    • W9
  • stage3
    • W10
      • task1
      • task2
    • W11
      • task 3
    • W13
    • W15
      • using geometry
      • using algebra
    • W16
      • 1. Onshape 零組件繪製
      • 2.建立 CoppeliaSim 4.1.0 MTB robot 場景
      • 3.手臂末端加入吸盤
      • 4.逆向運動學函式
      • 5.Python remote API 逆向運動學函式
    • 專案成果
  • w18
    • 期末報告影片
  • Questions and answers
    • ValueError
    • pip無法使用
    • leo 無法使用
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