black and white bed linen

Akarshan Saurabh

Hello! I'm Akarshan Saurabh, a Robotics Software Engineer with 2.5 years of dedicated experience, holding a degree in Mechanical Engineering (2022). I possess a deep passion for tackling the intricate challenges inherent in ROS2-based architecture design. My expertise lies in developing sophisticated algorithms and robust software pipelines using C++, Object-Oriented Programming (OOP), and Multithreading, specifically focused on Mathematical Solvers, Kinematics Solvers, Path and Trajectory Planning, and Point Cloud-based Classical Perception for diverse robotic platforms including Manipulators, Delta robots, Autonomous Mobile Robots (AMRs), and Quadrupeds.

My foundational journey in robotics began during my B.Tech, where I undertook numerous hands-on projects such as a 5 DOF Robotic Arm, a Wheeled Quadruped, a 6 DOF Robotic Arm, and a Quadruped integrated with a 6 DOF Robotic Arm. A defining aspect of this period was developing all kinematics, trajectory planning, and software components entirely from scratch in C++. This rigorous approach allowed me to practically implement concepts from linear algebra, trigonometry, calculus, 3D kinematics, and coordinate geometry, thereby deeply enhancing my grasp of fundamental engineering principles. You can explore the entire journey and see these projects in action on my YouTube Channel, "RatedStar Attraction X".

During my B.Tech, I gained valuable industry exposure through an internship at Brane, a deep-tech startup in Hyderabad, contributing to quadruped robot development. Upon graduation, presented with multiple job offers, I strategically chose Orangewood, a US-based startup building collaborative robots (cobots). As a Motion Control Engineer there (September 2022 - June 2023), I embraced the significant learning and exploration opportunities available to a fresher in a dynamic startup environment.

In July 2023, seeking further growth, I joined Meril, an MNC, as an Assistant Manager in Research & Development. However, finding the pace and project scope different from the high-intensity startup world I thrived in, I soon resigned with the clear short term goal of collaborating with multiple Indian startups simultaneously on challenging projects and long term goal of working on Legged Robots (Quadrupeds and Humanoids).

For the last 1.5 years, I have flourished as a Motion Controls Software Consultant and Freelancer, working with various Indian startups. In this capacity, I have delivered multiple deployable C++ software solutions. Notable achievements include developing systems for 3/4 DOF Delta Robots enabling high-speed pick-and-place operations (up to 90 picks/minute) with conveyor tracking, and creating comprehensive software for 6 DOF Robotic Arms incorporating features like Task/Joint Space Jogging, Singularity Detection, MoveL, MoveJ, and MoveC motion commands, all integrated with robust Pause, Resume, and Abort functionalities leveraging multithreaded design patterns and ROS2 based architecture. My freelance contributions encompass the full spectrum of Robot Motion Planning, building software from scratch—from higher-level applications down to lower-level control—for online trajectory generation (using S-Curve profiles), path planning, and kinematics implementation in C++,  OOP,  ROS1, and ROS2.

Critically, the software solutions I've developed as a freelancer are currently deployed in the Indian market. One significant application is within waste management systems, where a Delta robot utilizing my software efficiently collects 14-15 kg of plastic bottles and tetra-packets from a heap of garbage on a moving conveyor belt.

Demonstrating my unwavering commitment to the field, whenever time permitted outside of professional engagements over the last six months, I've undertaken two significant personal projects: developing software for a Boston Dynamics Spot equipped with a Robotic Arm (a complex 24 DOF system) and creating an AMR integrated with a 7 DOF Robotic Arm.

My Projects

AMR with 7 DOF Robotic Arm

Here are some highlighted projects that demonstrate my capabilities and innovative approach. Each project reflects my dedication and passion for software development in classical motion planning and classical 3d perception.

Quadruped With 6 DOF Robotic Arm
Wheeled Quadruped With 6 DOF Robotic Arm
6 DOF Robotic Arm
Wheeled Quadruped

I started working on this final year b tech project from Sept, 2021 and worked till Feb, 2022.

Using Co-ordinate Geometry, Vectors & 3D, I derived equations of trajectories of different points. Using co-ordinate geometry and vectors, I obtained the co-ordinates in parametric form. Then I applied Inverse Kinematics to obtain the joint angles of links of leg & arm using trigo.

Using Kinematics, I derived expression for speed & acceleration. Just by setting the value of time T, we can control speed. Using Rigid Body Kinematics & superposition principle, I did the entire motion planning. The robot also keep on calculating position of it's COM throughout motion.

The entire algorithms & every functions of the program are my own self thought which has taken months of thinking. Did entire coding in C++ & used the concepts of loops, condition, arrays, pointers, function, recursion & basic OOP.

This project is purely been inspired by Boston Dynamics Spot and I did achieve some mobility similar to that of Spot (Robot Dog having a 7 Axis Robotic Arm from Boston Dynamics) at a very basic level.

Hardware Components Used:

  1. Two Arduino Mega (One to control legs and the other to control arm)

  2. Eight 60 kg-cm Servos

  3. Three 25 kg-cm Servos

  4. Six MG996R Servos

  5. Two MG90s Servos

  6. Couple of Potentiometer

  7. PCA9685 Servo Driver

  8. Four MD10C R3 Cytrons

  9. 1A, 9A and 20A buck converters

  10. Four Johnson DC Gear Motors

  11. Four 2S Lipo Battery 5200 mah

  12. One 3S Lipo Battery 5200 mah

  13. Eight 2600 mah Li-ion batteries

  14. Aluminium body parts and 3D printed parts

This 6 Axis Robotic Arm is my 6th semester project, the idea being inspired by Boston Dynamics SpotArm.

This arm uses Inverse Kinematics and Robot Kinematics to plan some generalised trajectories in space on his own, once I tell him some parameters. The entire algorithms and maths used in this arm's motion planning are pretty much generalised.

This arm can follow:

  1. Circular trajectory in any plane parallel to any of the principal planes having any center and radius.

  2. Generalised Straight lines in space.

  3. Any combination of circular arcs and straight lines.

  4. Any n sided closed or open mathematical curves (can be polygon as well as non-polygons)

  5. 2 different end-effector stabilization motion plannig, ie, Pitch and Yaw.

We can control it's speed and acceleration by telling the robot three speed parameters : Minimum Speed, Maximum Speed & Average Speed.

The concepts which I used in this project were :

  1. Trigonometry and Inverse Trigo

  2. Co-ordinate Geometry

  3. Vectors and 3D

  4. Calculus

  5. Kinematics

Did the entire programing in Arduino IDE and the entire algorithms for motion planning are my own deviced algorithms. Made all the program functions my own from scratch. (No use of any pre available libraries)

The idea of 4 legs was inspired from Boston Dynamics Spot and the idea of using wheels was inspired from Boston Dynamics Handle robot. This is my 5th semester project. Did everything singe handedly during the pandemic and it took me 7 months to complete this.

This Robot can do the following using Inverse Kinematics, Robot Kinematics and my own self deviced Motion Planning Algorithms from scratch (no pre available libraries, entire algorithms were my own) :-

  1. different Pose Controls

  2. different Walking Gaits

  3. One task inspired from Boston Dynamics Handle.

  4. Kicking a ball like a dog (Just for fun)

Major Components Used :

  1. Arduino Mega

  2. A 9 amp buck converter and a 1 amp buck converter

  3. 8 MG996R servos

  4. 2 MG90s servos

  5. A couple of L298N motor drivers

  6. Four 6 kg-cm torque DC gear motors

  7. A ultrasonic sensor and a lcd display

Sept 2021-Feb 2022 (B Tech, 7th Sem)
Apr 2021-Jun 2022 (B Tech, 6th Sem)
Jun 2020-Dec 2020 (B Tech, 5th Sem)
Feb 2020-Apr 2020 (B Tech, 4th Sem)
5 DOF Robotic Arm
Part - 1
Part - 2

Work Experience

Contract Based Consultant And Freelancer as Motion Planning Software Developer
(Sept 2023 - Present)

During a contractual consulting engagement with one of the startup, I engineered a specialized software solution designed to automate path generation for surface treatment applications like spray painting. Key developments included:

  • Input & Processing: Developed software capable of ingesting 2D Point Cloud data representing primitive 2D surfaces (such as Rectangles, Circles, and Triangles).

  • Custom Path Generation: Implemented a custom Slicing-Based Pipeline to process the point cloud and generate precise Cartesian paths normal to the surface, defining both tool-tip position and orientation.

  • Additional Features: Incorporated robust singularity detection to prevent problematic robot configurations. Added a unique, customized feature enabling the robot to execute a user-defined number ('n', which could be odd or even) of passes along each segment of the generated path.

  • Integration & Application: The generated path was formatted for seamless transmission to the robot controller via an SDK, directly enabling the robot to perform automated spray painting tasks on the target object.

Separately, demonstrating deep expertise in motion control algorithms, I developed the following core modules entirely from scratch:

  • Jerk-Constrained S-Curve OTG (Online Trajectory Generator):

    • Mathematical Foundation: Undertook the rigorous first-principles development, involving formulating all necessary mathematical equations and deriving their roots. The complexity was significant, with root expressions extending over 2-3 pages, necessitating the use of Python's SageMath library for accurate symbolic derivation.

    • Implementation: Developed the complete OTG software in C++ using Object-Oriented Programming (OOP) principles, ensuring applicability for N-DOF manipulators.

    • Real-time Control: A critical feature allows for real-time, on-the-go adjustment of individual link speeds via external inputs (like a GUI slider), while crucially maintaining the smoothness (continuity and differentiability) of the velocity profiles to ensure fluid motion.

    • Validation: Successfully tested and validated this real-time speed control functionality on the target hardware/system ("barebone"), as well as compared the position, velocity and acceleration graphs with Ruckig library graphs for the same inputs confirming its accuracy and reliability.

  • MoveL Command Blending Module:

    • Functionality: Developed another distinct module, also from the ground up, to introduce smooth path blending capabilities for consecutive MoveL (linear movement) commands.

    • Development: This involved independently solving the required mathematical formulations for blending and implementing the robust software solution using C++ and OOP. Any 2 straight line paths in 3d space were connected with generalised arc in 3d space satisfying the differetiability in the path in the task space.

As a contractual freelancer, I collaborated with a highly resource-constrained robotics startup - Greenox, operating on minimal seed funding. My engagement focused on developing the critical software for their 3 and 4 DOF Delta Robots. I delivered a comprehensive, end-to-end motion planning framework specifically tailored for these Delta robots.

This involved architecting and implementing solutions for: Core Kinematics, Task Space Jogging and Conveyor Tracking based Pick-and-Place Motion Planning. This utilized the Ruckig library for smooth trajectory generation, implemented in C++ within the ROS1 ecosystem.

The conveyor tracking functionality was central, supporting two distinct operational modules: Module 1: Picking an object accurately from a moving conveyor belt and placing it at a predetermined static location. Module 2: Performing the reverse operation – picking a static object and precisely placing it onto a designated spot on a moving conveyor.

The robustness and effectiveness of the delivered software were proven by the fact that the startup successfully deployed 5 Delta robots running this framework into operation within an accelerated time frame of just 6 months – a significant achievement for such an early-stage, bootstrapped company. My software formed the backbone of these deployed systems.

As a freelance project, I partnered with Kikobot, an early-stage robotics startup, to develop and deliver a comprehensive motion planner solution tailored for their needs. This fully functional system was built using modern C++, Object-Oriented Programming (OOP), and Multi threading within the robust ROS2 framework.

The motion planner integrated several key capabilities:

  • It included essential modules like a Kinematics Solver and Singularity Detection to avoid problematic robot poses. Had used KDL for this.

  • A versatile Jogging Module allowed for intuitive manual control of the robot in both Joint Space and Task Space.

  • A sophisticated Path and Trajectory Planning module supported standard industrial commands (MoveJ, MoveL, MoveArc, MoveCircle). While leveraging libraries like Ruckig for optimized performance and Jerk Constrained S-Curve Generation, the fundamental path planning algorithms were custom-developed entirely from scratch, requiring detailed mathematical formulation and implementation.

  • Designed for practical use, the system featured robust Pause, Resume, and Abort functionalities using multi threading. It also included a Multi threaded Visualization module for real-time robot state monitoring in RVIZ2.

Integration with Kikobot's system was handled via two highly efficient and reliable ROS2 Action Servers – one dedicated to Jogging commands and the other for executing motion commands (MoveJ, MoveL, MoveArc, MoveCircle, Pause, Resume, Abort). These action servers provided the essential communication link to Kikobot's graphical user interface (GUI). The software underwent extensive and rigorous testing by the Kikobot team, successfully handling all identified edge cases.

Conveyor Tracking Based Static Pick Dynamic Place - 4 DOF Delta

Conveyor Tracking Based Dynamic Pick Static Place - 3 DOF Delta

Motion Control Engineer - Orangewood Labs (Sept 2022 - June 2023)
Project Intern - Brane (March 2022 - May 2022)

Developed a custom kinematics solver and various path planning modules in task space for a 6 DOF manipulator from scratch by solving all the needed mathematics and algorithm development in C++.

Solved the maths and developed a path planning module to generate a sequence of 6D poses (x,y,z and orientation in terms of rotation  matrix) of the end-effector (B Spline Curve) around bounding boxes for painting application POC. Bounding boxes included sphere (or any 3d subset of sphere), frustum (or any 3d subset of frustum), cylinder (or any 3d subset of cylinder) and cuboid having any arbitrary orientation in space.

Worked on the mathematical modelling for FK, IK, foot trajectory, COM calculations and crawl gait generation by analysis of support polygons for the quadruped.

Also developed corresponding algorithms for the quadruped using C++ and OOP.