Results_seminar_slides

advertisement
ROBOT LOCALISATION &
MAPPING:
MAPPING & LIDAR
By James Mead
Content










Project Overview
LIDAR
Use of C++ libraries
Program Structure
Wireless data transmission
Data Decoding
Mapping
Positioning
Challenges faced
Conclusion
Project Overview

The initial Plan
 Completely
Autonomous robot capable of SLAM.
 Working in a group of 3, each member has a specific area.

Project Breakdown
Robot
Scott
James
Ken
Kinect, Interfacing,
IMU, data Transfer
Receiving
data/decoding,
mapping, positioning
Path planning,
robot control,
Navigation.
LIDAR

Hokuyo UTM-30LX
 Range
of 30m
 40Hz scan rate
 270º field of view
 0.25º resolution(1081/scan)
 USB2.0 serial connection
Using code Libraries



Needed an efficient way of creating an occupancy grid to
store data and also return data when needed for path
planning.
Building the program structure from the ground up would
be a project in itself. Using available libraries reduces
excessive workload.
MATLAB, ros.org, MRPT
MRPT more windows friendly, great API, easier to get started.
Mobile Robot Programming Toolkit (MRPT) provides C++ developers an extensive,
portable and well-tested set of libraries and applications which cover the most common
data structures and algorithms employed in a number of mobile robotics research areas:
localization, Simultaneous Localization and Mapping (SLAM), computer vision and
motion planning (obstacle avoidance).
-MRPT.org/about


MRPT Libraries & Dependencies
Program Structure

All input devices are on the Lynx robot:
 IMU,
LIDAR, Kinect, Wheel Encoders(odometry)
Wireless Data Transmission

Data processing is very computationally expensive
Occupancy grid map requires large amount of memory as the map
grows.
 Path planning is very CPU intensive


FIT-PC unable to handle all the calculations, so they are done
on a base PC which will also display the map.


Data is sent to base PC via TCP connection & drive commands are
sent back to the robot.
Both UDP & TCP protocols were written, but TCP used because
it is reliable, requires no error checking and the added
overhead doesn’t affect the program at all.
Data Decoding

Wireless data received from robot is encoded.
 1084
float values sent at a time
 1081x
scan values from LIDAR
 1x IMU float value
 2x Encoder wheel integer values

Each value represented by 3 bytes, so all data is received
in block of 3252 bytes.
 Block
is split into 1084 segments of 3 bytes then decoded.
 Since data is transmitted via TCP, there is no need for error
checking at the received end.
Mapping
 Occupancy
Grid map, what is it?
 Mapping
is done by representing the environment as a large
collection of cells. (Like the pixels in an image file)
 Each cell has a value from 0.0 to 1.0, with 0.0 representing an
unoccupied cell (empty space) and 1.0 representing occupied space
(solid wall or object). Unknown space has a value of 0.5, which is
how all cells start.
 Map
can be easily converted to a 2D array(maxtrix) for use in
path planning.
Mapping Continued




LIDAR range data combined with Yaw reading and
odometry data to form an “observation”
MRPT libraries allow the insertion of an observation
straight into the grid map.
The grid map cells get updated, along with the updated
position of the robot.
The map is saved as a .bmp image, and then the image is
passed to the display window.
Positioning in the Environment





Need to implement some form of algorithm/filter to
increase accuracy of environmental positioning.
Without it small odometry errors will compound to the
point of rendering the map useless.
The Extended Kalman filter (EKF) or Particle filter (Marcov
localisation) can be implemented through the MRPT
libraries.
Robot design makes the filter even more important for
accurate positioning.
Will be implemented & tested over the next couple weeks.
Work still to do




Implement a localisation filter.
Fusing my program with Ken’s path finding program.
Real-time testing on the robot.
Make the program more robust (error handling in
connection dropouts, general optimization.)
Issues faced along the way

LIDAR only arrived 2-3 weeks ago
 Before
this we had to work with “faked” data scans and
theoretical values.
 More work done in the last 2 weeks since acquiring the LIDAR
than in the 3 months before that.



Scott’s work done in C# & mine in C++, creating
compatibility issues.
My program is very dependant on Scott’s, so any
unforseen delay in his work slows me down and vice versa.
Difficult to work on my section solo.
Personal issues, slowed the group work down.
Conclusion





As with most large projects, we’ve had to deal with
unforseen issues and challenges.
Still a lot of work to be done but progress is coming along
quickly.
Working in a group has had it’s challenges, but also had a
lot of benefits.
Initial hurdles such as working with different programming
languages have become a benefit (C, C#, C++, Objective
C) as work is coming along quicker now that they all work
together.
Robot will be functioning at the Expo, come check it out
then!
Download