  Traditional approaches to stereo visual SLAM rely on point features to
estimate the camera trajectory and build a map of the environment. In
low-textured environments, though, it is often difficult to find a sufficient
number of reliable point features and, as a consequence, the performance of
such algorithms degrades. This paper proposes PL-SLAM, a stereo visual SLAM
system that combines both points and line segments to work robustly in a wider
variety of scenarios, particularly in those where point features are scarce or
not well-distributed in the image. PL-SLAM leverages both points and segments
at all the instances of the process: visual odometry, keyframe selection,
bundle adjustment, etc. We contribute also with a loop closure procedure
through a novel bag-of-words approach that exploits the combined descriptive
power of the two kinds of features. Additionally, the resulting map is richer
and more diverse in 3D elements, which can be exploited to infer valuable,
high-level scene structures like planes, empty spaces, ground plane, etc. (not
addressed in this work). Our proposal has been tested with several popular
datasets (such as KITTI and EuRoC), and is compared to state of the art methods
like ORB-SLAM, revealing a more robust performance in most of the experiments,
while still running in real-time. An open source version of the PL-SLAM C++
code will be released for the benefit of the community.
