Introduction to V-REP Virtuel Robot Experimentation Platform by Mathias Thor

Introduction to V-REP Virtuel Robot Experimentation Platform by Mathias Thor

Introduction to V-REP virtuel robot experimentation platform by Mathias Thor This presentation is inspired by the official V-REP presentation and the official website Content ❏ V-REP Overview ❏ Scene Objects ❏ Ca lcula tion Modules ❏ Control Mechanisms ❏ Extra ❏ Starting your own project in GoRobots ❏ Questions and Getting Started V-REP Overview What is it? Genera l purpos e robot s im ula tor with integra ted development environment V-REP Overview What is it? Genera l purpos e robot s im ula tor with integra ted development environment What can it do ? Sensors, mechanisms, robots and whole systems ca n be m odelled a nd s im ula ted in va rious wa ys V-REP Overview What is it? Genera l purpos e robot s im ula tor with integra ted development environment What can it do ? Sensors, mechanisms, robots and whole systems ca n be m odelled a nd s im ula ted in va rious wa ys Typical applications ? Fa s t prototyping a nd verifica tion Controller development Hardware control Simulation of factory automation systems Sa fety m onitoring Product presentation etc. Three Central Elements Scene Calculation Objects Modules Control Mechanisms Scene Objects Scene Ca lcula tion Ba s ic building blocks Objects Modules 14 different types Can be combined with each other Can form complex systems together with Control ca lcula tion m odules a nd control Mechanisms mechanisms Scene Objects Scene Objects Shapes and Dummies Shapes Random mesh, convex mesh, primitive mesh, or heightfield mesh Can be grouped/ungrouped (also merged) Optim ized for fa s t ca lcula tions Dummies Auxiliary reference frame & helper object Joints and Force/Torque Sensors Joints Re volute -type • Pris m a tic-type • Screw-type • Spherical-type Velocity, pos ition, s pring/ da m per or force controlled Beha vior is controlled by phys ica l engine Easy to do inverse kinematics Force/Torque Sensors Measures force and torque Ca n conditiona lly brea k a pa rt Used to ‘glue’ rigid parts together (not as strong as grouping, but keeps individual dynamics) Cameras, Lights, and Mirrors Cameras Perspective / orthographic projection Tra cking & a utom a tic view-fitting function Lights Spotlight / directiona l / om nidirectiona l Mirrors Mirror or scene / object clipping function Cameras, Lights, and Mirrors Proximity Sensors More tha n s im ple ra y-type detection Configura ble detection volum e Can be used to model almost any type of proximity sensor, from ultrasonic to infrared, and so on. Graphs Time graphs • X/Y graphs • 3D curves • Can be exported Useful debugging tool! Vision Sensors Integrated image processing • Ray-tra ced rendering a ls o a va ila ble Paths and Mills Paths 6 dim . tra jectory definition Generate a path from the edge of a shape. Mills Cus tom iza ble cutting volum e Cuts shapes (i.e. meshes) Octrees and Point Clouds Point Clouds Point container Calculation modules Scene Ca lcula tion Objects Modules 5 ba s ic a lgorithm s Can be combined with each other Control Mechanisms Calculation modules Ca lcula tion Modules Inverse/forward kinematics & Minimum Distance Calculations Inverse/forward kinematics Any mechanism: redundant, branched, closed, etc. Damped / undamped resolution Weighted res olution • Conditiona l res olution Obstacle avoidance Minimum Distance Calculations Any mesh • Any point cloud • Any individua l point Collision Detection and Path Planning Collision Detection Any mesh • Any point cloud • Any individual point Path Planning Planning tasks in 3D- space, and in 2D-space for vehicles with non- holonomic motion constraints. Collision Detection and Path Planning Collision Detection Any mesh • Any point cloud • Any individual point Path Planning Planning tasks in 3D- space, and in 2D-space for vehicles with non- holonomic motion constraints. Dynamics / Physics 4 physics engines: ➢ Bullet Phys ics ➢ Open Dynamics Engine (ODE) ➢ Vortex Dynamics ➢ Newton Dynamics Sim ple s witching Dyna m ic pa rticles to s im ula te a ir or water jets Dynamics Static/non-static shapes respondable/non-respondable shapes (masks) Control Mechanisms Scene Ca lcula tion 6 methods or interfaces Objects Modules 7 languages All methods can be used at the same time, and even work hand-in-hand Control Mechanisms Control Mechanisms Embedded Remote Scripts API clients Control Plugins ROS nodes Mechanisms Add-ons Control Mechanisms Embedded Remote Scripts API clients Local Interface Remote Interface Same process Plugins ROS nodes Different process / hardware Add-ons Control Mechanisms Over 500 API functions (Extenda ble) Embedded Scripts Can be attached to any scene object Ma ny Lua extens ion libra ries a va ila ble Threaded or non-threaded Va rious types : m a in s cript, child s cripts , ca llba ck s cripts (e.g. custom joint controllers) Plugins Lua interface Lightweight a nd ea s y to progra m (child s cripts ) → Initia liza tion • Actua tion • Sens ing • s hut down Extrem ely porta ble s olution Add-ons Control Mechanisms Embedded Non-threaded child script Scripts Plugins Add-ons Control Mechanisms Over 500 API functions. Extendable Embedded C/ C++ interface Scripts Used to provide V-REP with a s pecia l functiona lity requiring either fa s t ca lcula tion ca pa bility (scripts are most of the time slower than compiled languages), a specific interface to a hardware device (e.g. a real robot), o r a special communication interface with the outside world The ROS functiona lity is pla ced in a plugin Plugins Add-ons Control Mechanisms Over 400 API functions. Extendable Embedded Lua interface Scripts Can customize the simulator Lightweight and easy to set-up Can start automatically and run in the background, or they can be called as functions Plugins Add-ons Control Mechanisms Over 100 API functions (Extendable) Remote API clients Client (your program) - Server (v-rep plugin) relationship C/ C++, Python, Java, Matlab, Octave, Lua & Urbi interfaces Lightweight and easy to use ROS nodes Python Example Control Mechanisms Plugin-based Remote It acts as a ROS node that other nodes can communicate with API clients via ROS services, ROS publishers and ROS subscribers Supports all standard messages and is extendable Generic (e.g. easy to change program from communicating with the simulation to communicating with a real robot) I successfully compiled it with ROS Kinetic in ubuntu 16.04 ROS nodes Control Mechanisms 1) C/ C++ API Calls 2) Ca s ca ded Child s cript execution 3) LUA AP I c a lls 4) Custom LUA API callbacks 5) V-REP event callbacks 6) rem ote API function ca lls 7) ROS tra ns it 8) custom communication a) socket, serial, pipes, etc. 9) Ad d -o n c a lls to LUA AP I 10) Script ca llba ck ca lls Control Mechanisms If in doubt, use their website! http://www.coppeliarobotics.com Other features - Custom User Interfaces (QT-Based) Other features - Mesh Edit Modes ❏ Triangle, vertex or edge edit mode ❏ Modify meshes (adjust vertices, add/remove triangles) ❏ Semi-a utom a tic prim itive s ha pe extra ction function ❏ Triangle, vertex or edge extraction ❏ Mesh decomposition ❏ Convex decomposition ❏ Convex hull extra ction ❏ Mes h decim a tion Other features ❏ Headless mode support (i.e. via command line) ❏ Im po rt fo rm a ts : OBJ , STL, 3DS, DXF, COLLADA & URDF ❏ Model browser and scene hierarchy ❏ Multilevel undo / redo ❏ Movie recorder (w. ray tracing) ❏ Sim ula tion of pa int or welding s ea m s ❏ Static & dynamic textures ❏ Exhaustive documentation ❏ Etc. V-REP Source Code Licensing Resources V-REP website: www.coppeliarobotics.com V-REP user manual: www.coppeliarobotics.com/helpFiles/ V-REP forum: www.forum.coppeliarobotics.com V-REP YouTube channel: VirtualRobotPlatform V-REP Twitter account: coppeliaRobotic Starting your own project in GoRobots Starting your own project in GoRobots 1. Ask for membership in ENS group on GitLa b (Ko h , J a n -Matthias , or Me) Starting your own project in GoRobots 1. Ask for membership in ENS group on GitLa b (Ko h , J a n -Matthias , or Me) 2. Fork your version of GoRobots Press this If you forked later than 08.47 this morning do this! 1) Configure a remote that points to the upstream repository in Git $ git remote add upstream [email protected] :ens_sdu/gorobots.git 2) Fetch the branches and their respective commits from the upstream repository $ git fetch upstream 3) Check out your fork's local master branch. $ git checkout master 4) Merge the changes from upstream/master into your local master branch (Sync.) $ git merge upstream/master 5) Check for merge conflicts with (you may need to install meld) $ meld . No Important Changes (Check with meld)? → $ git reset --hard Starting your own project in GoRobots 1. Ask for membership in ENS group on GitLa b (Ko h , J a n -Matthias , or Me) 2. Fork your version of GoRobots 3. Clone your fork to your Pc git clone “this address” Starting your own project in GoRobots 1. Ask for membership in ENS group on GitLa b (Ko h , J a n -Matthias , or Me) 2. Fork your version of GoRobots 3. Clone your fork to your Pc 4. Get pendulum simulation up and running by following the guide in the rea dm e file Please write me on [email protected] if you find any errors in the guide Starting your own project in GoRobots 1. Ask for membership in ENS group on GitLa b (Ko h , J a n -Matthias , or Me) 2. Fork your version of GoRobots 3. Clone your fork to your Pc Your controller here → e.g. /controllers/pendulum/pendulumController.cpp 4. Get pendulum simulation up and running by following the guide in the readme file 5.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    51 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us