SURF 2015: Improved State Estimation and Control of a Pioneer 3-DX for a Resilient Spacecraft Executive

From Murray Wiki
Revision as of 09:13, 24 December 2014 by Cmcghan (talk | contribs)
Jump to navigationJump to search

2015 SURF project description

  • Mentor: Richard Murray
  • Co-mentor: Catharine McGhan
Fig. 1. The Pioneer 3-DX robot used in the lab.
Fig. 2. The Resilient Spacecraft Executive Architecture.[1]

Overview: The Resilient Space Systems group at Caltech has partnered with MIT, the NASA Jet Propulsion Lab (JPL), and the Woods Hole Oceanographic Institute (WHOI) to develop and test a game-changing architecture for resilient spacecraft operations that has applications to robotics operating in a wide variety of hazardous and uncertain environments.[1] This includes rovers with and without manipulation capability, autonomous underwater vehicles, fixed-wing and rotorcraft UAVs, and CubeSat platforms, to name a few earthly and near-earth applications. These architectural capabilities would also be applicable to space missions such as the Venus lander, or Trojan asteroid tour.

We are looking for individuals interested in helping to develop the capabilities that this architecture needs, by adding to the software base necessary to support such systems' operability. This includes coding, debgging, and testing various known algorithms and techniques, some which are generalizable to multiple robotic platforms and some that are platform-specific. These will be added to a growing library of modules and made available for the RSE architecture to utilize and leverage as part of our system testing.

For this summer's project, we are currently focusing on the Pioneer 3-DX platform in-lab as our implementation target of choice, with possible extention to other robotic platforms with pre-existing models already-implemented in the gazebo simulation environment that could be leveraged for our use in the near-term.

Existing RSE software capabilities include:

  • 2-D trajectory planning under uncertainty in Matlab (deliberative layer)
  • 2-D trajectory planning in python using OMPL [2] (habitual layer)
  • a simple turn-and-drive waypoint follower (reflexive layer)
  • 2-D global position and orientation resolution from an overhead camera (state estimation)

Examples of work related to diversifying the baseline capabilities of the Pioneer 3-DX system include:

  • the coding of an Extended Kalman Filter (EKF) for better state estimation of the position and orientation of the vehicle from IR camera data
  • the integration of point cloud data from a mounted SICK sensor into rolling map updates toward the ability to perform map localization and/or real-time obstacle avoidance onboard the vehicle (e.g., VSLAM techniques)
  • the implementation of various real-time trajectory solvers for roving across 2-D and/or 3-D terrain
  • the implementation of local obstacle avoidance algorithms that use the onboard front-facing sonar sensors (e.g., Bug algorithms)
  • the coding of various discrete 'actions' that can be commanded to the vehicle, such as a 'stop', 'turn X degrees', 'move forward X meters', etc.
  • the coding of various discrete modes of 'behavior' that can be commanded to the vehicle and change the characteristics of its motion, such as being 'cautious', 'adventurous', 'goal-seeking', 'risk-taking', etc.
  • the modeling of the discharge rates of the rover's batteries after performing various actions (an overall energy model of the rover that can be used for planning processes in the deliberative and/or habitual layers)

All work will be tested on a rolling basis, using the preliminary implementation of the evolving RSE architectural software scheme.

Goals: All software produced as a result of this project is expected to be integrated into the RSE open-source project in some capacity, and should be geared towards this end result.

Required Skills: This project requires programming experience, ideally in Python and C++. Experience with the core and extended functionality of the Robot Operating System (ROS) software [3] -- or a willingness and interest in learning, using, and developing code that works within this communications framework -- is a must. Familiarity with, and an interest in, control systems theory and robotics hardware is desired. Further interest in concrete robotics-related concepts, such as applied automata theory, AI, model-based systems engineering, and other formal methods such as model checking and logic synthesis, is a plus.


[1] Catharine L. R. McGhan, Richard M. Murray, Romain Serra, Michel D. Ingham, Masahiro Ono, Tara Estlin and Brian C. Williams. A Risk-Aware Architecture for Resilient Spacecraft Operations. Submitted, 2015 IEEE Aerospace Conference.

[2] Ioan A. Sucan, Mark Moll, and Lydia E. Kavraki. The Open Motion Planning Library. IEEE Robotics and Automation Magazine, Vol. 19, December 4, 2012, pp 72-82.

[3] Morgan Quigley, Ken Conley, Brian P. Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y. Ng. ROS: an open-source Robot Operating System. ICRA Workshop on Open Source Software, 2009.