EKF-Localization-RRT-Path-Planning-Path-Following-Take-off-Maneuver-Hovering-Landing-UGV-UAV
Video:
- Part 1: https://www.youtube.com/watch?v=fzOL-B-07bc or https://www.youtube.com/watch?v=EAcPxWwW37g&feature=youtu.be
- Part 2: https://www.youtube.com/watch?v=4pRkIPMCuYw or https://youtu.be/BWt6j2bahIg
All Feature:
- Copyright by:
- Sudiro
- Mario Jaya Nugraha
- Kecuali yang saya jelaskan lebih di bawah.
- e-mail: SudiroEEN@gmail.com
- My Site: github.com/sudiroeen
Feature:
[Differential Driver/ UGV Robot]
-
Motion:
- Open Loop Motion for rotational motion
- Braitenberg Algorithm [My C++ style of V-REP example]
- code is inside "pioneer_package" package
-
EKF Localization [not yet successfull]
-
Laser Data Process: a. Adaptive Break-Point Detector b. Iterative End Point Fitting c. Rectangular Form of Least Square Fitting
-
code is inside "pioneer_package" package
-
-
RRT Path Planning:
- Started when keyboard 'P' pressed
- using true value position [from V-REP, cause non-successfull of my EKF Localization]
- code is inside "rrt" package
-
Bezier Spline smoothing algorithm [not yet successfull]
- code is inside "rrt" package
-
Path Following:
- When Path Planning done and afther press any character on keyboard
- P controller for rotational and translational motion
- code is inside "pioneer_package" package
-
Visualized on OpenCV Window
-
code is inside "pioneer_package" package
[Quadrotor / UAV Robot]
-
- All of these feature in Lua Form
- "quad_package" is take-off process on Ros-C++ style [But not yet successfull]
-
Take-Off:
- using P controller
-
Maneuver:
- using P-scheduling controller
- Following path specified before [manually]
-
Hovering:
- When keyboard 'P' pressed:
- start Path Planning
- using P controller [pure from V-REP example with condition addition]
-
Landing:
- When UGV robot has been reached the finish path
- using P controller
- "common_include" package is V-REP API for C++ that allowing me to controller robot using V-REP Built-In Function() using C++ API, copyright by V-REP Community
REQUIREMENTS:
- VREP & VREP API
- ROS Kinetic
- OpenCV
Alur cerita:
-
saat V-REP di run, quadrotor akan take-off kemudian maneuver terus menerus
-
untuk menjalankan UGV dan lokalisasi, run perintah "roslaunch pioneer_package pioneer_package.launch" pada terminal
-
saat tombol 'P' di keyboard ditekan quadrotor akan hovering, di sisi yang lain path planning dengan RRT dimulai, dengan posisi UGV sebagai starting point, dan posisi quadrotor sebagai finish point
-
setelah proses path planning sudah mendapatkan path nya, kemudian tekan tombol sembarang untuk memulai path following oleh UGV
-
setelah UGV sampai di posisi quadrotor, UGV akan otomatis berhenti, sedangkan quadrotor akan mulai landing.
How To Use
-
Saat pertama kali, SELAIN package "rrt" dan "common_include" keluarkan dari folder "src/", hal ini karena hierarchy running program mengakhirkan kedua package tersebut.
-
run di terminal: catkin_make && source devel/setup.bash
-
setelah sukses, package selain "rrt" dan "common_include" tersebut kembalikan ke dalam folder "src/"
-
run kembali di terminal: catkin_make && source devel/setup.bash
-
setelah sukses JANGAN di roslaunch dulu, karena proses menunggu komunikasi dengan V-REP
-
oleh karena itu, run V-REP dulu
-
run di terminal: roslaunch pioneer_package pioneer_package.launch
-
lakukan sesuai deskripsi di file "alur_cerita_robotika.txt"
displayed on:
-
img_laser -> line feature & landmark (red circled)
-
img_bck -> all
-
tampil_mc -> fitted line using least square to get angle
-
path_hasil -> hasil path dari proses path planning
-
bezier_spline -> smoothed path
-
RRT -> Proses RRT Path Planning -> bercak merah adalah random value generated
How To Contribute:
Just Send Pull Request