Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.
SLAM, ROS, Turtlebot
Transcript of SLAM, ROS, Turtlebot
2. Kinect - How it works
3. SLAM - Simultaneous Localisation and Mapping
4. Exploration - Into the Unknown
5. Turtlebot - An ROS Application ROS - Robot Operating System What is ROS? main general tools for distributed computing algorithms frameworks hardware drivers applications packaging & build tools, communication infrastructure, ROS API language bindings fetching beer, turtlebot applications capabilites libraries ROS - Overview ROS Core ROS Core Camera advertise("images") Viewer subscribe("images") images(tcp) Viewer images(tcp) centralized name registration and lookup parameter server negotiates communication connections ROS Node Machine 1 Machine 2 Machine 3 Topics topics services ROS Node topics services ROS Node topics services ROS Node topics services ROS - Network Graph Services ROS Core Controller advertise("setPosition") Client service: setPosition request("setPosition") call setPosition return Result ROS tf, opencv, pcl, simulation, drivers ... grasping, control, mapping, navigation ... 3D Depth Sensors RGB Camera Multi-Array Mic Motorized Tilt Stereoscopic Camera Kinect Camera Setup IR Projector Theory behind the Kinect sensor Microsoft Kinect Sensor naked Kinect IR pattern Z = RT / (T-S)
Z : Depth of object
R : Distance camera to reference plane
T : Baseline of the system
S : Measured disparity Depth is calculated by triangulation against a pattern from the projector at a known depth (reference plane) Disparity obtained by compairing local pattern with known pattern base on http://www.aurelien.plyer.fr/the-kinect/how-the-kinect-work/
and http://www.ros.org/wiki/kinect_calibration/technical 1 2 + = + iRobot Roomba Netbook + ROS Kinect Turtlebot 3D Vision Open-Source Software Mobile Base Recharging Station "Wireless" Low-cost mobile robotics platform Mapping Occupancy Grid Grid of Cells with probability of
being empty Point Cloud Laser Scan how to combine local maps to a global map ? -> Wheel Odometry Data gives travelled Distance and Angle Pose Graph nodes : local occupancy grid maps
edges : odometry constraints feature matching rearrange pose graph to correct odometry error 3 SLAM 4 frontier : boundary between empty and unknown area 1. Determine Frontier
2. Select Frontier
3. Plan & follow path to Frontier
4. Update Map
5. Mark frontier if not reachable
6. continue with 1. until no unmarked frontiers left Frontier-Based Exploration Goal: Build map by visiting unknown areas Path Planning 1. Global Planner calculates the minimum cost path based on global cost map 2. Local Planner produces velocity commands based on the given plan cost : cost to traverse a cell simulate different trajectories with various speeds evaluate score of trajectories, based on proximity to obstacles, proximity to goal, speed, etc. discard invalid trajectories select highest scoring trajectory Exploration Kinect 5 Topics Services asynchronous many-to-many communication strongly-typed (Msg Spec) topic: images synchronous RPC-call-like one-to-many communication strongly-typed (Srv Spec) Accuracy decreases over time! (x1, y1, θ1) (x2, y2, θ2) Loop Closure Turtlebot open source, "meta" OS collection of tools distributed inter-process / inter-machine communication modular design: node, package, stack multi-language support what do you get?