Principal Software Engineer - Motion Planning
Berkshire Grey
Software Engineering
Bedford, MA, USA
Posted on Tuesday, August 8, 2023
Primary Job Function
- The Engineer in this role will work with a multidisciplinary team to develop motion planning software and algorithms for robotic manipulation applications related to store replenishment and e-commerce order fulfillment.
- This candidate will be expected to be a primary contributor and leader driving to real-world customer delivery, acceptance, and operation.
Skills/Technical Requirements:
- Masters or PhD in Computer Vision, Robotics, or closely related field
- 8+ years experience in software development
- Experience in designing and implementing motion planning solutions for manipulation related problems on real robotics systems
- Fundamental understanding of controls for manipulation including trajectory smoothing and timing with constraints
- Commercial experience in a fast paced, agile environment
- Ability to work as part of an interdisciplinary team
Demonstrated ability to
- Apply motion planning algorithms to real-world manipulation problems
- Ability to synthesize approaches to problems from new or existing techniques
- Write smoothing or time-parameterizing libraries that assign dynamically feasible velocities and timings to kinematically feasible paths for a robot arm.
- Provide technical leadership on key projects
- Architect software solutions
- Operate autonomously
- Develop on and debug real robotic systems
- Determine and communicate justification of technical priorities to management
- Mentor
- Manage execution of technical efforts across a small team
Proficient in
- Motion planning libraries (e.g. OpenRave, OMPL, DART, SBPL, prpy, etc)
- Controls
- Python
- C++
- System design
- Design patterns
- VCS (Git)
- ROS
- Issue tracking system (Jira)
- Design patterns
Preferred Qualifications:
- Demonstrated abilities in one or more of the following
- Trajectory generation and execution for 6-DOF manipulators
- Post processing of trajectories (shortcutting, jerk-limiting, etc.)
- Formulated optimization problems to time-parameterize paths
- Robot DSL Familiarity (RAPID, Karel, KRL)
- API development (RESTful, websockets)
- Robotics and robotic solutions
- Parallel/distributed systems
- Asynchronous/concurrent programming (asyncio)
- NoSQL databases (MongoDB)
- Messaging Systems (gRPC, Kafka)
- CI/CD (Jenkins, automated testing)
Educational Requirements: Master’s degree in Computer Science, Robotics, or closely related field
6110-2308BC