Autonomous mobile robot navigation plays a vital role in self-driving cars, warehouse robots, personal assistant robots and smart wheelchairs, especially with a shortage of workforce and an ever-increasing aging population. Significant progress has been achieved in recent decades advancing the state-of-the-art of mobile robot technologies. These robots are operating more and more in unknown and unstructured environments, which requires a high degree of flexibility, perception, motion and control. Companies such as Google and Uber are developing advanced self-driving cars and expecting to present them into the market in the next few years. Various mobile robots are roaming in factories and warehouses to automate the production lines and inventory, saving workers from walking daily marathons . Robot vacuums such as Roomba and Dyson360 eyes are moving around in the house to help clean the floors. Personal robots such as PR2 [2, 3] and Care-O-bot  have demonstrated the ability to perform a variety of integrated tasks such as long-distance navigation and complex manipulation.
Mobile robots navigating autonomously and safely in uneven and unstructured environments still face great challenges. Fortunately, more and more environments are designed and built for wheelchairs, providing sloped areas for wheeled robots to navigate through. However, little work focuses on an integrated system of autonomous navigation in sloped and unstructured indoor areas, especially narrow sloped areas and cluttered space in many modern buildings. The robots are required to safely navigate in narrow uneven areas such as those shown in Fig. 1 while avoiding static and dynamic obstacles such as people and pets.
In this work, we present an integrated software and hardware framework for autonomous mobile robot navigation in uneven and unstructured indoor environments that are designed for and shared with people. Fig. 2 shows a high-level system architecture of this work. Our robot first builds a 3D OctoMap representation for uneven environment with our 3D simultaneous localization and mapping (SLAM) using wheel odometry, a 2D laser and an RGB-D data. Then multi-layer maps are projected from OctoMap to generate the traversable map which serves as the input for our path planning and navigation. The robot employs a variable step size RRT approach for global planning, adaptive Monte Carlo localization method to localize itself, and elastic bands method as the local planner to close the gap between global path planning and real-time sensor-based robot control. Our focus is especially on efficient and robust environment representation and path planning. It is believed that reliable autonomous navigation in uneven and unstructured environments is not only useful for mobile robots but also could provide helpful insight on smart wheelchair design in the future.
Ii Related work
Building autonomous robots that assist people in human environments has been a long-standing goal  and an appealing inspiration of research in robotics. Robots have demonstrated various levels of success but still face challenges.
focuses on the probabilistic paradigm of environment, robot , sensors and models, setting the foundation for the probabilistic robotics epoch. Besides autonomous navigation, Robox integrated multi-modal interaction, speech recognition, and multi-robot coordination. Curious George  could use visual attention locate the objects of interest in an environment. Jinny  can select the proper motion strategy according to different environments. Sonar or laser range finders are usually positioned on these robot to build 2D maps along a horizontal slice of the world . However, just one slice of the space can not represent the environment, especially uneven environments with slopes and staircases.
Three-dimensional (3D) environment sensing such as 3D Lidar which is on self-driving cars , 2D laser-range-finder with a pan-tilt unit [12, 13], or affordable RGB-D sensors is increasingly common. A 3D SLAM algorithm using 3D laser range finder is presented in  which represents the world with point clouds, but neither free space nor unknown areas are modeled. Vision based 3D SLAM [15, 16, 17, 18] with affordable RGB-D sensors are increasingly popular since the introduction of KinectFusion . These methods usually rely on iterative closest point registration (ICP)  or local features matching based method or the integration of both. However, the ICP method is only confined to desk area , while the local feature based methods are not robust in environments where white walls and dull floors dominate with few local features. Moreover, these methods only focuses on environment representation, without integrating autonomous navigation as an integrated system and demonstrating their overall performance. Autonomous navigation with a compact 3D representation of the environment is represented in , but only a layer of projected 2D environment representation is used for navigation. A combination of multi-layered 2D and 3D representations are used in  to improve planning speed, but only for an even environment. Robot autonomous navigation in full 3D environment is presented in , but it is designed for legged robots navigating through staircases. Moreover, the real-time interpreting and updating of 3D data still poses great challenges for low power laptops. These slow updates result in the robot either moving slowly or in a potentially unsafe manner.
Some work focuses on uneven outdoor terrain. A rule-based fuzzy traversability index has been used 
to quantify the ease-of-traversal of a terrain by a mobile robot based on measurements from image data. Online kernel-based learning is proposed to estimate a continuous surface over the area of interest while providing upper and lower bounds on that surface with 3D laser. However, these uneven outdoor terrains are very different from indoor uneven environments. Indoor environments tend to be mostly even, and often contain slopes for wheelchair accessibility. With robots or smart wheelchairs are operating in shared spaces indoors with people more and more, challenges operating in uneven and unstructured environments, especially in those designed for wheelchair mobility shall be addressed in the robotics community.
Iii The Robot Hardware and Software Platform
The development of a mobile robot system to work around us and assist people is our long-term goal. The main design principle for the developed system is that each hardware and software component could work as both a single module and a part of an integrated system. To realize this principle, these hardware components are assembled using screws and adjustable frames, while the software platform uses the Robot Operating System (ROS) .
Fig. 3 shows the hardware platform for our robot. It includes a Segway RMP100 mobile base, an ASUS Xtion on the upper base, a Hokuyo UTM-30LX laser scanner mounted on the lower base, and a DELL laptop with Intel Core i7-4510U at 2GHz, 16GB memory (without GPU).
The software system is implemented in ROS Indigo release on top of an Ubuntu version 14.04LTS operating system. The 3D simulation experiments are performed on Gazebo . Fig. 2 illustrates a high-level software architecture, and detailed key components of the software architecture will be described in Sec IV and V.
Iv Environment Representation
A consistent and accurate representation of the environment is a crucial component of autonomous systems as it serves as input for motion planning to generate collision-free and optimal motions for the robot.
Iv-a 3D mapping using wheel odometry, a 2D Laser and an RGB-D camera
3D mapping pipelines commonly consist of localization and mapping components. Localization is the process to estimate robot pose, and mapping (or fusion) involves integrating new sensor observations into the 3D reconstruction of the environment. To overcome the challenge that vision based SLAM is not robust when the environment lacks local features, we employ wheel odometry, a 2D laser and an RGB-D camera concurrently to complement each other.
Our 3D Mapping framework builds on top of Karto SLAM , a 2D robust SLAM method containing scan matching, loop detection, Sparse Pose Adjustment  as the solver for pose optimization and 2D occupancy grid construction. Karto SLAM takes in data from the laser range finder and wheel odometry. It is the best performing ROS-enabled SLAM technique in the real world, being less affected by noise  compared with other 2D SLAM methods, such as gmapping , HectorSLAM  and GraphSLAM .
Instead of using Karto SLAM’s default 2D occupancy map, which we found cannot represent uneven environment reliably, we build the environment based on OctoMap . It is a probabilistic, flexible, and compact 3D mapping method which can represent the free, occupied and unknown environment. At each time step, the algorithm accepts point clouds of the environment using the RGB-D sensor and the localization information from the Karto SLAM using a 2D laser and wheel odometry. Fig. 4(b) shows an OctoMap representation of the simulated world generated by our 3D mapping. Note that free space is explicitly modeled in the experiment but is not shown in the figure for clarity.
Iv-B Multilayer maps and traversable map
After the environment is represented by OctoMap as mentioned above, the OctoMap is cut from bottom to top with several layers depending on the environment and the required accuracy. Then these multilayers are integrated into a traversable map, which is safe and efficient for the robot to navigate through. Both the multi-layer maps and the traversable map are represented as 2D grid occupancy maps, in which black represents occupied space, white as free space, and gray as unknown space. A flag is used to mark the map traversablility and decide whether an area is traversable:
where represents the angle threshold which can be set according to the robot climbing capability. is the th layer gradient:
where represents the distance between projected layers, as shown in Fig. 5 (a). It can be set to be as small as the resolution of the OctoMap for accurate representation. represents the length of the edge difference between different layers, and it can be obtained through the number of voxels in that area and OctoMap resolution . Take the environment in Fig. 4 (a) as an example, first we project four layers of 2D map from the OctoMap as shown in Fig. 5 (a) and the left four maps in Fig. 5 (b). Then the gradient between layers are checked, for instance, in Fig. 5 (a), both and are less than , and that area is marked as a slope while and are larger than , that area is marked as an untraversable area. At the same time, the left and right edges of the slope are marked as occupied for safety. Integrating all these multi-layer maps will generate the traversable map as shown in Fig. 5 (b), which is very efficient for the mobile robot to use.
V Planning and Navigation
The traversable map serves as the input for the planning and navigation framework. We apply an efficient variable step size RRT planner as our global planner to construct a plan in a configuration space to reach the goal.
The global planner generates a list of way-points for the overall optimal path from the starting position to the goal position through the map, while ignoring the kinematic and dynamic constraints of the robot. Then the local planner takes into account the robot kinematic and dynamic constraints, and generates a series of feasible local trajectories that can be executed from the current position, while avoiding obstacles and staying close to the global plan.
V-a Global planner: variable step size RRT
It is crucial that the global planning process should be efficient so that the navigation system can run at a reasonable rate. Rapidly Exploring Random Trees (RRT)  can handle problems with complex constraint and obstacles and perform well in high dimensional environments. It is good for our current setup and is also promising for integrating full 3D planning in the future. However, it needs to adjust the step size according to the environment, which is an inconvenient trial-and-error process. Therefore, we introduce a variable step size RRT for our global planning. In the tree extending process of standard RRT, we get a sampling point and then find the nearest point in the existing tree. If the segment that connects points and is collision free, we move from point to with limited step size , getting a new point that would be added to the existing tree. In , the extension process of RRT could be different for holonomic and nonholonomic systems. The latter can use the standard tree extending process while for the former, could be in order to facilitate exploration. For a nonholonomic system, like the Segway robot we used in our experiment, it is important to choose the right . The RRT algorithm runs slowly when is set small, i.e, with a small step size, it is slow to find the target. However, if is too big, then the path generated by RRT will jitter, which is too long and inadequate for further trajectory optimization. Thus with standard extending process of RRT, it is vital to choose the proper according to different environments.
According to our navigation framework that employs both global planner and local planner, the global path planner could be sub-optimal since the local planner would optimize the global path incrementally. Hence we propose to use a variable step size RRT that is originally used for holonomic systems. Our algorithm is illustrated in Algorithm 1. The main difference lies in the tree extending process. When a point is generated, instead of moving from the point to with a limited step size, we connect the two points directly, and we get a line . If passeses the collision checking process, then it is added to the tree directly. While if collides, the last point along the line would be and the point together with the line between and would be added to the tree. We recommend readers to read the our previous work  for more details. In addition, in order to deal with targets that lie in a narrow region, in which it will take longer before enough sampling points are chosen, we employ the idea of the RRT-connect algorithm , extending the tree from both the start and the goal position. The advantage of our method is that there is no need to adjust the parameter in different environments. Whilst we try to extend the tree with the biggest step size, the planner can cover the configuration space with relatively small sampling points. Hence saving the time of collision checking of sampling points and finding the nearest point in the existing tree.
Fig. 6 demonstrates the comparison between RRT of different step sizes and our proposed variable step size RRT. Fig. 6 (a) shows that when the step size is small, it takes 171 iterations to reach the goal. When the step size is large such as 90 as shown in Fig. 6 (c), it oscillates and takes 166 iterations to reach the goal. While our variable step size only takes 73 iterations to reach the goal. The standard RRT may outperform our method if the step size is adjusted properly, as shown in Fig.6. However, in real implementation, our method does not need to adjust the step size in different environments and can achieve better comprehensive performance.
V-B Localization and local planner
Mobile robot localization is the problem of determining the pose of a robot relative to a known environment . The robot employs adaptive Monte Carlo localization (AMCL) , a method that uses a particle filter to track the pose of the robot with a known map. It takes laser scans, the wheel odometry information and the traversable map, and then outputs pose estimation.
The local planner is seeded with the plan produced by the global planner, and attempts to follow it as closely as possible while taking into account the kinematics and dynamics of the robot as well as the obstacle information. We use Elastic Bands method  as our local planner to close the gap between global path planning and real-time sensor-based robot control.
During execution, the short and smooth path from the local planner is converted into motion commands for the robot mobile base. The local planner computes the velocities required to reach the next pose along the path and checks for collisions in the updated local costmap.
Extensive experiments are conducted to evaluate the developed system both in simulation and real-world, demonstrating the efficacy for real-time mobile robot autonomous navigation in uneven and unstructured environments. It is notable that our focus is also on an integrated system besides the component methods.
Vi-a Simulation experiments
|Example Tasks||Planning Time||Traveled Distance||Average Speed|
The simulation is conducted in Caffe using an environment of size 13m x 10m x 3m, which we built in Gazebo. A visualization is shown in Fig. 4. The simulated robot model is equipped with wheel odometry, a 2D laser range finder and an RGB-D sensor. At the stage of 3D Mapping, the robot subscribes the point clouds from the RGB-D camera and the localization information from the 2D SLAM. Then the point clouds and localization information is fed to the Octomap server. The robot is tele-operated to move around the environment. Fig. 4
(b) shows the OctoMap generated by our 3D Mapping. The resolution of the OctoMap is set as 0.05m to trade off between speed and accuracy, and the threshold on the occupancy probability is 0.7. Note that free space is explicitly modeled in the experiment but is not shown in the figure for clarity.
The Octomap is then sliced and projected to four intersection planes as shown in the left part of Fig. 5 (b). More planes could also be chosen depending on the accuracy necessity and the complexity of the environment. It can be seen that the staircase area shows steeper changes than the sloped area. Therefore, in the generation of the traversable map, we treat the steeper changes as untraversable area while the area with slower changes as the slope. The right part of Fig. 5 (b) shows the generated traversable map, which will be used for our robot autonomous navigation.
For autonomous navigation, we use the traversable map and sensors data as the input for path planning and localization. We conducted various autonomous navigation experiments in which the robot starts and reaches goals at different positions. Task-1 and Task-2 in Table I show some statistics of reaching the target on the ground and on higher platform respectively. Our variable step size path planner is very efficient, and only takes several milliseconds to reach the goal position. Under the speed constraint of 1m/s, the robot can reach the target relatively fast. Fig. 7 illustrates an example of our robot autonomous navigation process in Task-2 in which the robot starts at lower ground and reaches the goal in the higher platform. The blue and green lines show the exploration process of our global planner. This process ended after a global path connecting the start point and the end point is found, shown in the red line. The local path planner can smooth the global path if it is not optimal, and the optimal path is marked as a concatenation of green bubbles. Fig.7 (b) – Fig.7 (c) show the replanning process when an obstacle is found. If the height of a slope is higher than the laser on the robot, then the robot would consider there is an obstacle ahead. The robot can replan its path when this occurs. Fig.7 (d) – Fig.7 (e) show the replanning process of local planner when a real obstacle appears. The robot can avoid the obstacle and reach the target position.
Vi-B Real-world experiments
We conduct extensive experiments with our Segway Robot in the real-world environment. Fig. 8 shows our real environment with dimension of 11mx5mx3m, and the 3D OctoMap generated from our 3D mapping with wheel odometry, 2D laser and RGB-D data. At this 3D mapping stage, we teleoperate our Segway robot to move around the environment. Compared with the simulated environment, the real environment features challenges such as narrower slopes, different lighting conditions, and glass windows. The real robot is much more noisy due to long-term wear-and-tear, uncalibrated wheel odometry, and the disturbance of casters. The sensors are also noisier. Therefore, the OctoMap of the real environment and projected multi-layer maps in Fig. 9 tend to have some distortions and inconsistent registrations compared with the simulated environment. All these noisy environment, robot and sensors demand robustness of our system. The resolution of the OctoMap is experimentally set to 0.05m to trade off speed and accuracy. We also use four layers of projected maps to generate the traversable map in the real environment. The traversable map in Fig. 9 (e) will serve as the input for path planning and localization in autonomous navigation.
We present several representative tasks for the robot in our experiment in which all goal positions are located at higher platforms. In Task-3, the robot needs to navigate through the slope to reach the target from a far away starting position at ground level. In Task-4, shown in Fig. 10, the robot starts near the slope but faces the staircase. With the traversable map, the robot could plan a path to avoid the staircase and navigate through the slope to reach the goal position. Since the route contains many turns, the robot moves more slowly in this task. In Task-5, we test the dynamic obstacle avoidance ability of our system. A human suddenly appears and blocks the path of the robot, forcing the robot to replan and change directions to avoid the human. The average plan and replan time when encountering the obstacle is about 10ms. The robot can successfully avoid the obstacle and replan its path to the goal. In this dynamic obstacle case, the robot moves with a relatively low speed so as to safely avoid the obstacle. Fig. 11 illustrates some of the procedures. Table I demonstrates the overall statistics of these representative tasks.
One important parameter for robot navigating up the slope is the size of local costmap . If the local costmap size is set too large, the far away ray sweep of the laser scan on the slope will intersect with the higher part of the slope, causing obstacle in the local costmap, which will block the robot’s path. It is especially obvious in the more noisy real experiment in which the robot is prone to fail in localizing itself than in simulated environment. In case of localization failure, the robot will initiate the rotation recovery mode, in which the robot rotates and laser-sweeps in a circle. If the local costmap size is too small, the obstacles may not be considered in time, which may cause unsafe collision. We experimentally determined the costmap of 3 meters width and 4 meters length to work best for the use in this case.
Vii Conclusion and Future Work
In this paper, we presented an integrated software and hardware architecture for autonomous mobile robot navigation in 3D uneven and unstructured indoor environments. This modular and reusable software framework incorporates capabilities of perception and navigation. We employ an efficient path planner which uses variable step size RRT in 3D environment with an octree-based representation. We generate a safe and feasible 2D map from multi-layer maps of 3D OctoMap for efficient planning and navigation. We demonstrate and evaluate our integrated system in both simulation and real-world experiments. Both simulation and real-robot experiments demonstrate the efficacy and efficiency of our methods, providing some insight for more autonomous mobile robots and wheelchairs working around us. Future work may integrate vision-based global localization   and optimized path planning methods into our system. Moreover, it is promising to explore the possibility of using 3D semantic scene parsing  to understand the uneven areas and better differentiate between slopes and staircases.
The authors would like to thank Ji Zhang from Carnegie Mellon University for the helpful discussion and Wolfram Burgard from University of Freiburg for the suggestion on the supplementary video.
-  Raffaello D’Andrea. Guest editorial: A revolution in the warehouse: A retrospective on Kiva systems and the grand challenges ahead. IEEE Transactions on Automation Science and Engineering, 2012.
-  Eitan Marder-Eppstein, Eric Berger, Tully Foote, Brian Gerkey, and Kurt Konolige. The office Marathon. In ICRA, 2010.
-  Armin Hornung, Mike Phillips, E Gil Jones, Maren Bennewitz, Maxim Likhachev, and Sachin Chitta. Navigation in three-dimensional cluttered environments for mobile manipulation. In ICRA, 2012.
-  Ulrich Reiser, Theo Jacobs, Georg Arbeiter, Christopher Parlitz, and Kerstin Dautenhahn. Care-o-bot® 3–vision of a robot butler. In Your virtual butler. 2013.
-  Wolfram Burgard, Armin B Cremers, Dieter Fox, Dirk Hähnel, Gerhard Lakemeyer, Dirk Schulz, Walter Steiner, and Sebastian Thrun. The interactive museum tour-guide robot. In AAAI, 1998.
-  Sebastian Thrun, Michael Beetz, Maren Bennewitz, Wolfram Burgard, Armin B Cremers, Frank Dellaert, Dieter Fox, Dirk Haehnel, Chuck Rosenberg, Nicholas Roy, et al. Probabilistic algorithms and the interactive museum tour-guide robot minerva. IJRR, 2000.
-  Roland Siegwart, Kai O Arras, Samir Bouabdallah, Daniel Burnier, Gilles Froidevaux, Xavier Greppin, Björn Jensen, Antoine Lorotte, Laetitia Mayor, Mathieu Meisser, et al. Robox at expo. 02: A large-scale installation of personal robots. RAS, 2003.
-  David Meger, Per-Erik Forssén, Kevin Lai, Scott Helmer, Sancho McCann, Tristram Southey, Matthew Baumann, James J Little, and David G Lowe. Curious george: An attentive semantic robot. Robotics and Autonomous Systems, 2008.
-  Gunhee Kim, Woojin Chung, Kyung-Rock Kim, Munsang Kim, Sangmok Han, and Richard H Shinn. The autonomous tour-guide robot jinny. In IROS, 2004.
-  Sebastian Thrun, Wolfram Burgard, and Dieter Fox. Probabilistic robotics. MIT press, 2005.
-  Michael Montemerlo, Jan Becker, Suhrid Bhat, Hendrik Dahlkamp, Dmitri Dolgov, Scott Ettinger, Dirk Haehnel, Tim Hilden, Gabe Hoffmann, Burkhard Huhnke, et al. Junior: The Stanford entry in the urban challenge. Journal of Field Robotics, 2008.
-  Ji Zhang and Sanjiv Singh. Loam: Lidar odometry and mapping in real-time. In RSS, 2014.
-  Ji Zhang, Andrew Chambers, Silvio Maeta, Marcel Bergerman, and Sanjiv Singh. 3d perception for accurate row following: Methodology and results. In IROS, 2013.
-  David M Cole and Paul M Newman. Using laser range data for 3D slam in outdoor environments. In ICRA, 2006.
-  Peter Henry, Michael Krainin, Evan Herbst, Xiaofeng Ren, and Dieter Fox. RGB-D mapping: Using depth cameras for dense 3D modeling of indoor environments. In Experimental robotics, 2014.
-  Felix Endres, Jurgen Hess, Jurgen Sturm, Daniel Cremers, and Wolfram Burgard. 3-D mapping with an RGB-D camera. IEEE Transactions on Robotics, 2014.
-  T. Whelan, M. Kaess, H. Johannsson, M.F. Fallon, J.J. Leonard, and J.B. McDonald. Real-time large scale dense RGB-D SLAM with volumetric fusion. IJRR, 2014.
-  Raul Mur-Artal, Jose Maria Martinez Montiel, and Juan D Tardos. Orb-slam: a versatile and accurate monocular slam system. IEEE Transactions on Robotics, 2015.
-  Richard A Newcombe, Shahram Izadi, Otmar Hilliges, David Molyneaux, David Kim, Andrew J Davison, Pushmeet Kohi, Jamie Shotton, Steve Hodges, and Andrew Fitzgibbon. Kinectfusion: Real-time dense surface mapping and tracking. In ISMAR, 2011.
-  Aleksandr Segal, Dirk Haehnel, and Sebastian Thrun. Generalized-ICP. In RSS, 2009.
-  Daniel Maier, Armin Hornung, and Maren Bennewitz. Real-time navigation in 3D environments based on depth camera data. In ICHR, 2012.
-  Ayanna Howard, Homayoun Seraji, and Edward Tunstel. A rule-based fuzzy traversability index for mobile robot navigation. In ICRA, 2001.
-  Raia Hadsell, J Andrew Bagnell, Daniel F Huber, and Martial Hebert. Accurate rough terrain estimation with space-carving kernels. In RSS, 2009.
-  Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y Ng. ROS: an open-source robot operating system. In ICRA workshop on open source software, 2009.
-  Nathan Koenig and Andrew Howard. Design and use paradigms for gazebo, an open-source multi-robot simulator. In IROS, 2004.
-  Karto SLAM, ROS package. accessed Nov, 2016. [online], .
-  Kurt Konolige, Giorgio Grisetti, Rainer Kümmerle, Wolfram Burgard, Benson Limketkai, and Regis Vincent. Efficient sparse pose adjustment for 2D mapping. In IROS, 2010.
-  Joao Machado Santos, David Portugal, and Rui P Rocha. An evaluation of 2D slam techniques available in robot operating system. In SSRR, 2013.
-  Giorgio Grisetti, Cyrill Stachniss, and Wolfram Burgard. Improved techniques for grid mapping with rao-blackwellized particle filters. IEEE Transactions on Robotics, 2007.
-  Stefan Kohlbrecher, Johannes Meyer, Thorsten Graber, Karen Petersen, Uwe Klingauf, and Oskar von Stryk. Hector open source modules for autonomous mapping and navigation with rescue robots. In Robot Soccer World Cup. Springer, 2013.
-  Armin Hornung, Kai M Wurm, Maren Bennewitz, Cyrill Stachniss, and Wolfram Burgard. Octomap: An efficient probabilistic 3d mapping framework based on octrees. Autonomous Robots, 2013.
-  Steven M LaValle and James J Kuffner. Randomized kinodynamic planning. IJRR, 2001.
-  Steven M LaValle and James J Kuffner Jr. Rapidly-exploring random trees: Progress and prospects. Algorithmic and Computational Robotics: New Directions, 2001.
-  Chaoqun Wang and Max Q-H Meng. Variant step size RRT: An efficient path planner for uav in complex environments. In Real-time Computing and Robotics (RCAR), IEEE International Conference on. IEEE, 2016.
-  James J Kuffner and Steven M LaValle. Rrt-connect: An efficient approach to single-query path planning. In ICRA, 2000.
-  Dieter Fox, Wolfram Burgard, Frank Dellaert, and Sebastian Thrun. Monte carlo localization: Efficient position estimation for mobile robots. AAAI/IAAI, 1999.
-  Sean Quinlan and Oussama Khatib. Elastic bands: Connecting path planning and control. In ICRA, 1993.
-  David V Lu, Dave Hershberger, and William D Smart. Layered costmaps for context-sensitive navigation. In IROS, 2014.
-  Lili Meng, Jianhui Chen, Frederick Tung, James J. Little, Julien Valentin, and Clarence de Silva. Backtracking regression forests for accurate camera relocalization. In IROS, 2017.
-  Lili Meng, Jianhui Chen, Frederick Tung, James J. Little, and Clarence W. de Silva. Exploiting random RGB and sparse features for camera pose estimation. In 27th British Machine Vision Conference (BMVC), 2016.
-  Frederick Tung and James J Little. MF3D: Model-free 3D semantic scene parsing. In ICRA, 2017.