Tutorial Membuat Simulasi Robot Avoider Menggunakan CoppeliaSim

 Assalamualaikum teman-teman, perkenalkan Saya M. Syarif Hidayatullah dan teman saya Dutha Relanda, Adevia A.F. Baik langsung saja ke tutorialnya teman-teman :D

Pertama-tama masuk ke aplikasi CoppeliaSim nya, Disini Saya menggunakan CoppeliaSim Pro


Nanti akan muncul tampilan seperti dibawah ini


Lalu kita akan membuat Body dengan cara, pada hierarchy, klik kanan, pilih Add, lalu pilih “Primitive Shape” lalu pilih “cuboid”:

Kemudian Isi X-Size : 0.10, Y-Size 0.20, Dan Z-Size 0.01 seperti gambar dibawah ini, kemudian tekan “OK”

Rename nama nya sesuai yang kalian inginkan, disini saya mengganti nama nya menjadi “RobotBase” dengan cara mengklik 2 kali lalu tekan enter

Selanjutnya, pada RobotBase, klik “Scane object Properties” yang ada di sebelah kanan berbentuk seperti kaca pembesar.



Kemudian setelah muncul tampilan seperti dibawah, pilih bagian “Common” lalu centang semua pada bagian Object special properties, Kemudian exit saja.





Kemudian Klik Object/Item Shift pada bagian atas, lalu ubah Z-coord (m) menjadi 0.035 agar posisi cuboid tidak menyentuh tanah, contoh gambar dibawah ini





Kemudian saya akan menambahkan silinder sebagai roda untuk robot yang saya buat, caranya sama seperti menambahkan cuboid pilih add, lalu pilih primitive shape, pilih silinder seperti gambar dibawah ini.

 

Kemudian, ubah X-Size menjadi 0.06 dan Z-Size 0.02. dan enter





lalu lakukan hal yang sama seperti tadi.



Kemudian ubah posisi roda dengan cara seperti sebelumnya, X-coord (m) 0.065, Y-coord (m) -0.050, dan Z-coord (m) 0.035



Lalu ubah rotasi roda dengan cara klik Object/Item Rotation  lalu masuk kemenu Orientation, lalu ubah beta[deg] menjadi 90 seperti Gambar dibawah ini. Kemudian enter



Untuk membuat roda satu lagi kita hanya perlu meng-copy saja, dengan cara klik kanan pada silinder lalu pilih edit, kemudian pilih copy



Lalu klik kanan kemudian klik edit setelah itu pilih “paste Buffer”



Lalu ubah nama silinder dengan nama yang di inginkan



Untuk memindahkan roda ke sebelah, klik Object/Item position, lalu ubah nilai X-coord (m) dari + menjadi – seperti gambar dibawah



Setelah roda nya berpindah, kita akan tambahkan penggerak untuk rodanya, cara nya adalah dengan klik kanan, kemudian pilih add, kemudian pilih Joint, dan pilih Revolute seperti gambar dibawah ini



Lalu, buka menu scane dan ubah Length [M] menjadi 0.06 seperti gambar dibawah



Lalu klik “Show Dinamic Properties dialog” Kemuadian centeng “Motor Enabled” dan “ Lock motor when target velocity is zero”



Kemudian masuk kemenu position, dan ubah X-coord menjadi -0.065 dan Y-ccord menjadi -0.05 dan Z-coord menjadi 0.035



Lalu masuk ke menu rotation, dan ubah Beta menjadi 90





Kemudian Copy motor seperti mengcopy roda sebelumnya



Lalu ubah nilai X-coord menjadi + pada menu position



Lalu kita akan menambahkan roda di depan dengan cara seperti gambar dibawah



Lalu ubah size nya seperti gambar dibawah



Kemudian masuk kemenu scane dan centang semua Object special properties



Lalu ubah nama nya seperti yang di inginkan



Kemudian masuk ke menu position, dan ubah X-coord menjadi 0, Y-coord menjadi 0.1 dan Z-coord menjadi 0.15



Kemudian kita akan menambahkan sensornya, dengan cara klik kanan, kemudian pilih add, pilih Proximity Senser, dan pilih Force Sensor

Lalu ganti Namanya sesuai yang di ingin kan



Lalu masuk ke menu scane dan ganti size menjadi 0.03



Lalu masuk ke menu position dan ganti Y-coord menjadi 0.01 dan Z-coord menjadi 0.03



Kemudian masukan semua komponennya seperti gambar dibawah ini



Kemudian kita akan menambahkan proximity sensor dengan cara Digambar bawah ini



Lalu masuk ke menu scane kemudian klik Show volume parameters, lalu ubah range menjadi 1, dan angle menjadi 8.



Lalu ubah position, ubah X-coord menjadi 0, Y-coord menjadi 0.01, dan Z-coord menjadi 0.06



Lalu masuk ke menu rotation, dan ubah alpha menjadi -90



Lalu ubah nama komponen, dan masukan ke RobotBase



Kemudian kita akan menambahkan code pada RobotBase dengan cara klik kanan pada RobotBase, lalu klik Add, Associated  child script, dan pilih non threaded



Kemudian kita akan memasukan code dibawah ini

function sysCall_init()

RobotBase=sim.getObjectAssociatedWithScript(sim.handle_self) -- this is bubbleRob's handle

leftMotor=sim.getObjectHandle("LeftMotor") -- Handle of the left motor

rightMotor=sim.getObjectHandle("RightMotor") -- Handle of the right motor

noseSensor=sim.getObjectHandle("FrontUS") -- Handle of the proximity sensor

minMaxSpeed={50*math.pi/180,300*math.pi/180} -- Min and max speeds for each motor

backUntilTime=-1 -- Tells whether bubbleRob is in forward or backward mode

-- Create the custom UI:

xml = '<ui title="'..sim.getObjectName(RobotBase)..' speed" closeable="false" resizeable="false" activate="false">'..[[

<hslider minimum="0" maximum="100" on-change="speedChange_callback" id="1"/>

<label text="" style="* {margin-left: 300px;}"/>

</ui>

]]

ui=simUI.create(xml)

speed=(minMaxSpeed[1]+minMaxSpeed[2])*0.3

simUI.setSliderValue(ui,1,100*(speed-minMaxSpeed[1])/(minMaxSpeed[2]-minMaxSpeed[1]))

end

function speedChange_callback(ui,id,newVal)

speed=minMaxSpeed[1]+(minMaxSpeed[2]-minMaxSpeed[1])*newVal/100

end

function sysCall_actuation()

result=sim.readProximitySensor(noseSensor) -- Read the proximity sensor

-- If we detected something, we set the backward mode:

if (result>0) then backUntilTime=sim.getSimulationTime()+4 end

if (backUntilTime<sim.getSimulationTime()) then

-- When in forward mode, we simply move forward at the desired speed

sim.setJointTargetVelocity(leftMotor,-speed)

sim.setJointTargetVelocity(rightMotor,-speed)

else

-- When in backward mode, we simply backup in a curve at reduced speed

sim.setJointTargetVelocity(leftMotor,speed/5)

sim.setJointTargetVelocity(rightMotor,speed/7)

end

end

function sysCall_cleanup()

simUI.destroy(ui)

end

 

 



Kemudian tambahkan object apapun pada simulasi, contoh saya akan menambahkan 2 buah cangkir



Dan terakhir tinggal play saja dan simulasi robot avoided pun jadi



 

Itulah tutorial yang bisa kami berikan kepada teman teman, saya selaku perwakilan dari kelompok 3 dengan nama:

1.       1. M. Syarif Hidyatullah (062230701568)

2.       2. Dutha relanda (062230701564)

3.       3. Adevia Alif F (062230701559)

Kami pamit undur diri, terimakasih atas perhatiannya saya ucapkan Assalamualaikum Wr Wb.



Komentar