Robotics Software Developer - Coverage Planning (Waterloo, Ontario Canada)

We are currently designing the next generation cleaning robots that will take over the cleaning industry!

Our robots make 2-D maps of a wide range of mostly indoor areas, small and large (e.g. malls, department stores, grocery stores, hospitals, airports, etc.) using lasers and cameras and then plan the optimal path to cover these areas as fast as possible, using coverage path planning algorithms.

We are looking for a passionate, quality-driven software developer to help our team expand our coverage path planning algorithm code base.

Your job will be to expand upon the current set of proprietary coverage algorithms to take on increasingly complex, varied worlds with ever changing layouts. You will get to test your algorithms in simulation with a growing number of real-life indoor map data sets. And then to top it off you will get to test the robustness of your algorithms in real-life where things might change on a nightly basis!

Ideally, you have worked on coverage planning algorithms for robots (cell decomposition, back and forth cleaning motions, etc). You have also worked on path planning algorithms for non-holonomic vehicles. You get excited when working with TSPs, motion planning problems, optimization problems, etc. You are never satisfied until your algorithm works in every case and runs as fast as possible.

You will be working alongside an experienced team of robotics veterans and programmers to support you along the way.

Main Tasks:

Research, implement and test coverage path planning algorithms for mobile robots (C++)
Expand and maintain the current code base related to coverage path planning
Helping with software development tasks related to robot path planning (contour following, general path-planning, etc.)

Main Requirements:

B.Sc. or Graduate degree in computer science, engineering or equivalent
Strong software development skills (C++ preferred)
Strong background in algorithm design
Familiarity with mobile robot motion planning algorithms for kinematically-constrained vehicles
Medium-Strong skill with Linux-based operating systems (more than CLI)
Driven individual, passionate about CS and robotics, self-starter

Bonus:

Strong knowledge of 2-D geometry and motion primitives
Background in image processing, both theoretical and practical
Work on algorithms where speed is an important consideration
Game and graphics programming
Working with big sets of data, and validating code against such data
Enjoy working in a small team with big dreams
Have worked on many robotics projects before
Funny stories of failed robots/projects

Please apply to http://avidbots.com/careers/#op-182747-software-developer-coverage-planning-