My Contribution Highlights
- Transformed the novel Social Momentum algorithm from equations and MatLab simulations to Python code running in real-time on a BeamPro robot with ROS Kinetic, enabling navigation with socially desirable collision avoidance behaviors
- Designed and implemented framework for socially aware navigation algorithms, enabling future comparison of arbitrary algorithms including OCRA, Social Force, and Social Momentum running in real-time on a robot
The robot consists of a BeamPro telepresence robot, an Occam Stereo for 360 stereo vision, a forward and read Hokuyo lidar sensors for obstacle avoidance and navigation, and a chest-level forward facing lidar for 2D to 3D correspondence during people tracking. An externally mounted Alienware 15 laptop running ROS Kinetic and equipped with a NVIDIA GTX 1080 GPU is used as the main computer.
Overhead view in rviz of the map created by gmapping using a Hokuyo lidar sensor.
3d view in rviz of a different mapping run. The colored scans from the multiple lidar sensors (chassis forward, chassis rear, and chest) are more easily distinguishable. The chest-height lidar is used for 2D to 3D correspondence for the people tracker.
- Robot Type: Two-Wheeled Mobile Indoor Robot
- Application: Research platform for socially competent navigation
- Organization: Cornell University Robotic Personal Assistants Lab (GitHub)
- Personal Role: Undergraduate Research Assistant, September 2017 – May 2018
More About My Experience
I spent my senior year of undergrad working in the Robotic Personal Asisstants Lab on the socially competent navigation project. My role was to move the project from a set of simulations running in Matlab to Python code running on a ROS robot in real-time. I designed a system which enabled modular swapping of different person perception and social navigation algorithms in order to gauge real-world performance.
In order to compare a range on algorithms, some which assumed certain motion constraints and some which did not, we converged on defining the action which an algorithm would take as an arbitrary velocity vector, which the framework would convert into wheel velocities using a feedback linearization approach. Additional constraints e.g. velocity magnitude constraint could be enforced by the framework in order to suit the platform being used.
I also implemented the lab’s novel Social Momentum algorithm inside this framework, as well as ORCA using the RVO library in order to demonstrate the interopability of the framework, as well as to enable comparison between different algorithms.
The project is currently using the framework I designed in order to run a series of in-lab experiements with people to evaluate the algorithm performance.