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
Posting Komentar