Attending mind-numbing meetings is not one of them.

Waking up in the morning, feeling refreshed after a good night’s sleep, and more importantly, you know what you want to do today.

Starting your day at the office attending 15-minute stand-up, to share progress and issues you and your team faced…

Step-by-step Algorithm Implementation: from Pseudo-code and Equations to Python Code. In this article, we will implement the Planning Graph and its planner — the GraphPlanner in Python, data structure and search algorithm for AI Planning.


Planning Graph was developed to solve the issues in complexity found in the classical AI…

Getting Started

Learning the step-by-step implementation of HFSM concepts in Python.

I wanted to use the HFSM (Hierarchical Finite State Machine) in my Pacman AI Agent Implementation to fully understand the concepts and to compare it with the Behavior Tree. …

Automatically build and update Behavior Trees during run-time.


We have seen how powerful the behavior tree is, in the previous post.

It is hierarchical, modular, and more importantly reactive to changes that happen in the agent’s environment.

It can be used to replace Hierarchical Finite State Machines (HFSMs), to make the systems more scalable and understandable to humans.

Designing and Implementing Behaviors for AI Agents

Introduction — Another way of implementing Acting Engine

In our previous posts, we discussed about Planning and Acting. Both are for planning, one with a Descriptive Model and the other with an Operational Model of actions.

Acting with Operational Model uses Refinement Methods to refine abstract tasks into subtasks or commands that can be executed by Execution Platform…

C++ offers different types of arrays, understanding how they work internally will help us in choosing the right type for our application


One of the most important things, when we code in any programming language is to choose the right data structure to represent our data. …

Thoughts and Theory

Helping a robot localize itself in a map with the Monte Carlo approach — the Particle Filter Localization.


One of the main problems that a mobile robot has to solve is knowing where it is located in its environment. This process of determining the location and orientation of the robot (robot pose) with respect to its environment is called localization.

Without knowing where it is in its environment…

Creating Occupancy Probability Map using ROS2 Framework on Webots Robot Simulator.


One of the many tasks that an autonomous robot has to perform is mapping the environment. Having a map of the environment is important because many other tasks may depend on the map as a prerequisite.

For some robots, the map is given as input but for many others that…

Why is it a better way to handle errors? How does it work under the hood? Let’s take a step back and see what it actually offers.

What is Exception Handling?

Exceptions in software refer to error conditions that stop the software from executing the regular path. These errors can be something that can be controlled by the software itself such as bad parameters or outside of its control. …

A convenient way to define a functor that can help us to simplify the code.


One of the new features introduced in Modern C++ starting from C++11 is Lambda Expression.

It is a convenient way to define an anonymous function object or functor. …

Debby Nirwan

Software Engineering Manager who loves reading, writing, and coding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store