Software Engineer - Computer Vision
Sep 04, 2023
Pittsburgh, Pennsylvania, United States
Who We Are:
Carnegie Robotics partners with a variety of industry leaders to provide customized robotic solutions for any problem. Our expertise in building and deploying hardened solutions paired with our partners decades of expertise in an industry lead to very successful outcomes. We are not afraid to take on the challenges of any industry, and have applications in a wide variety of ways: floor scrubbing, boating, logistics, industrial inspection, precision positioning, mining, off-road autonomy, and minesweeping. Whether you already have an interest in robotics, or are just joining the field and are looking to find your “niche”, Carnegie Robotics is the place for you.
Who We’re Looking for:
Individuals who are interested, and ideally experienced, in some of the areas and topics we are passionate about. All skill levels and backgrounds are welcome. We have an amazing team of engineers from a variety of backgrounds who love to share their collective knowledge and experiences. We’ve had Electrical Engineers who started as interns in Production and Manufacturing, Software Engineers we found on Github, and Mechanical Engineers who are now Technical Program Managers. We’re about growth and providing opportunities for you as you move through you career.
What you’ll be doing:
You will be a critical member of an interdisciplinary team focusing on designing and delivering cutting-edge computer vision solutions to real customers. Your primary focus will be developing algorithms and applications to handle sensor data collected in a variety of real-world environments. Some projects you may contribute to include perception systems for marine/boating applications, safety/efficiency monitoring systems in mining applications, and outdoor visual mapping and localization platforms.
What your day to day is:
- Fusing multiple data sources together to build a dense and accurate 3D representation of an environment that a robot might be operating within
- Designing API’s to integrate your algorithms with the rest of the robot software stack
- Developing techniques to benchmark the performance of your implementations
- Testing your solutions and algorithms from a unit testing level all the way to coordinating field tests to ensure they function as intended in the real world
- Documenting and presenting your approaches and solutions for design reviews and customer presentations
- Staying up-to-date with the latest cutting-edge Computer Vision research, and constantly experiment with the latest techniques
How you’ll stand out:
- You love writing high-performance code in C++ or C
- Have experience with non-linear optimization routines like Levenberg–Marquardt, and have used them for large-scale bundle adjustment problems
- Familiar with target and targetless based camera calibration approaches
- Have used open-source libraries like OpenCV and PCL
- Are experienced in the practical applications of linear algebra and vector math
- Are familiar with methods for representing rotations in 3D
- Have used or developed visual odometry, mapping, or SLAM pipelines
- Are particular about your transform notation both in code and documentation
- Have experience working with, or processing sensor data from visual/depth cameras, radars, lidars, and IMUs
- Have experience with 3D graphics libraries such as OpenGL
- Have worked with visual point features such as SIFT and ORB
- Are familiar with the concepts underlying stereo depth generation
- You take pride in using software engineering best practices when writing your code
- You are comfortable with a Linux environment – whether it means where you do your work each day, creating a personal Linux install to move more efficiently, or tweaking someone else’s Linux install to help with printing issues