MI
Job Description
Responsibilities:
- Designing and developing robot software and firmware on Embedded devices
- Interaction with the hardware team in new development cycles for software optimization
- Ensuring timelines of software production releases with maintenance and regular updates
Requirements and Skills:
- 2-3 years of working experience in Robotics engineering
- Expertise in C/C++ as well as decent proficiency in the Java programming language.
- Experience in one of the below topics (both is a plus)
- Path-planning, navigation algorithms in Robotics
- Implementation of SLAM (Simultaneous Localization and Mapping) on a robotics platform required (visual odometry, camera-based localization or acoustic localization)
- Experience with using Git as a version control system
- Working experience with PID Controllers and other control algorithms is a plus
- Software filters as well as sensor data fusion algorithms such as Kalman filter
- Have implemented drivers and interfaced sensors such as IMU (Inertial Measurement Unit), time-of-flight, LiDAR, and IR sensors.
- Knowledge of the Linux OS is a must.
- Working experience on digital signal processors, ASICs, and FPGAs is a plus.
- Knowledge of embedded OS frameworks such as ROS (Robot Operating System) is a plus.
- Working knowledge of microcontroller / microprocessor peripherals such as DMA, interrupt handlers, memory profilers, and debuggers.
- Experience with computational languages like MATLAB / Octave / Python is a plus.
- Working understanding of application code profiling and debugging tools on embedded platforms for active memory consumption and CPU usage
- Knowledge of robot dynamics, inverse kinematics, and modeling and simulation tools is a plus.
- Working experience on ARM CORTEX microcontrollers is a plus