Company - Avidbots
Location: Waterloo, ON Canada
Fulltime - 1 position
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.
- Research, implement and test coverage path planning algorithms for
mobile robots (C++)
- Expand and maintain the current code base related to coverage path
- Helping with software development tasks related to robot path planning
(contour following, general path-planning, etc.)
- 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
- Medium-Strong skill with Linux-based operating systems (more than CLI)
- Driven individual, passionate about CS and robotics, self-starter
- 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