Skip to main content

Posts

Showing posts from 2019

Featured post

A* ALGORITHM BASICS FOR PATH FINDING & HEURISTICS METHODS : ARTIFICIAL INTELLIGENCE

 A* ALGORITHM BASICS FOR PATH FINDING A* , widely used  known form of best-first search & path planning algorithm nowadays in mobile robots,games. this is the function for A*,                                     f(n) = g(n) + h(n) g ( n ) is the cost of the path from the start node to n , and h ( n ) is a heuristic function that estimates the cost of the cheapest path from n to the goal This will find cheapest f(n) value in neighbor nodes to archive goal node. check below image  A to B path finding with g(n),h(n),f(n) value In the final level check below image Now we will check the Algorithm // A* Search Algorithm 1. Initialize the open list 2. Initialize the closed list put the starting node on the open list (you can leave its f at zero) 3. while the open list is not empty a) find the node with the least f on the open list, call it "q" b) pop q off the open list c) generate q's 8 successors

Genetic Algorithm Library (GAlib) Compiling Error Fixed(ga.h: No such file or directory) : ARGoS Simulator

 if you didn't try to setup argos just follow my previous post using below link Getting Started with ARGoS Large-Scale Swarm Robot Simulator in Ubuntu When you are facing below error while you try to compile argos in your ubuntu system galib_phototaxis_loop_functions.h:14:20: fatal error: /ga/ga.h: No such file or directory compilation terminated normally what we do?   we search this lib in google then we try to compile it but here if you download this GALIB lib from its official website from here http://lancet.mit.edu/ga/     its never work correctly because last update of this package 1999 so you guys need to change lots of c++ compiler based commands styles in many files so download the GALIB from this link  https://github.com/jibsen/galib    & compile based on that page instruction  finally  you need to change the  files location in argos examples follow the steps go  to /src/argos3-examples/loop_functions/galib_phototaxis_loop_functions/ and choose galib_pho

Getting Started with ARGoS Large-Scale Swarm Robot Simulator in Ubuntu

ARGoS (Autonomous Robots Go Swarming) is a multi-robot simulator designed to support large teams of robots. Its design is pretty different from the design of other simulators. Its most distinctive feature is that the 3D simulated world can be divided in regions, and each region can be assigned to a different physics engine. Furthermore, ARGoS' design revolves around the concept of tunable accuracy. In other words, in ARGoS, everything is a plug-in (robot models, sensors, actuators, physics engines, visualisations, etc) and the user can select which plug-ins to use for an experiment.  Since different plug-ins have different accuracy and computational costs, users can choose which plug-ins to use for each aspect of the simulation and assign resources only where it matters. This makes the simulation as fast as possible. At the time of writing, ARGoS supports the Swarmanoid robots (foot-bot and eye-bot) and the e-puck. ARGoS supports Linux and Mac OSX. Binary packages are availa

HASH TABLE : ADVANCE ALGORITHM

A hash table is an unordered collection of key-value pairs, where each key is  unique .  for each key value, hash function will generate the unique index then that key value will stored in that unique index as look like storing in normal array. so next what is Direct-address tables We shall assume that no two elements have the same key , to represent the dynamic set, we use an array, or direct-address table  here T is the hash table k is the key value DIRECT -ADDRESS -SEARCH (T, k)              return T [k] DIRECT -ADDRESS -INSERT (T, x)             T [key[x]] ← x DIRECT -ADDRESS -DELETE (T, x)             T [key[x]] ← NIL Each of these operations is fast: only O(1) time is required. Let have a look in HASH TABLE Collision resolution by chaining        if two elements have the same key  we put all the elements that hash to the same slot in a linked list CHAINED -HASH -INSERT (T, x)         insert x at the head of list T [h(key[x])] CHAIN

INTRODUCTION TO SWARM ROBOTICS

Happy to write about swarm robots in my blog, keep on checking my blog guys more interesting stuffs are waiting for you , This is a turning point for robotics lovers & my first post about swarm robots A short & quick Introduction about Swarm Robotics have a look Swarm robotics is defined as, "the study of how a large number of relatively simple physically embodied agents can be designed such that a desired collective behavior emerges from the local interactions among agents and between the agents and the environment" Have a look below video to get an quick understanding about swarm robots,its from Big Hero 6  movie  what are the special things in Swarm Robotics scalable system’s efficiency will not affect  addition or removal of robots do not change the functioning or efficiency of a swarm robotic system purely based on local sensing the system is adaptable and flexible applicable to dynamic problem scenarios single robot faults won’t affect th

A* ALGORITHM BASICS FOR PATH FINDING & HEURISTICS METHODS : ARTIFICIAL INTELLIGENCE

 A* ALGORITHM BASICS FOR PATH FINDING A* , widely used  known form of best-first search & path planning algorithm nowadays in mobile robots,games. this is the function for A*,                                     f(n) = g(n) + h(n) g ( n ) is the cost of the path from the start node to n , and h ( n ) is a heuristic function that estimates the cost of the cheapest path from n to the goal This will find cheapest f(n) value in neighbor nodes to archive goal node. check below image  A to B path finding with g(n),h(n),f(n) value In the final level check below image Now we will check the Algorithm // A* Search Algorithm 1. Initialize the open list 2. Initialize the closed list put the starting node on the open list (you can leave its f at zero) 3. while the open list is not empty a) find the node with the least f on the open list, call it "q" b) pop q off the open list c) generate q's 8 successors

BACKTRACKING ALGORITHM FOR THE N QUEENS PROBLEM & PYTHON IMPLEMENTATION: ARTIFICIAL INTELLIGENCE

 ALGORITHM The problem is to place n queens on an n * n chessboard, so that no two queens are attacking each other.this means that no two queens are in the same row, the same column, or the same diagonal. This is the algorithm for n queens backtracking : PLACEQUEENS(Q[1..N],r):        if r=n+1             print Q[1...n]        else             for j <-- 1 to n                  legal <--- TRUE                  for i <-- 1 to r-1                       if (Q[i]=j) or (Q[i]=j+r-i) or (Q[i] =j-r+i)  :                                  legal <-- FALSE                                    if legal                          Q[r] <-- j                          PLACEQUEENS(Q[1..N],r+1)   //recursion Here represent the positions of the queens using an array Q[1 .. n], where Q[i] indicates which square in row i contains a queen. When backtrack is called, the input parameter r is the index of the first empty row, and the prefix Q[1 .. r 1] contains the positio

INSTALL ROS & CREATE A ROS WORKSPACE WITH SINGLE FILE IN UBUNTU

INSTALL ROS WITH FEW LINE OF CODE IN UBUNTU let see how to setup ros in ubuntu with few lines of code in here I prefer ubuntu 16.04 & ros kinetic version because you can get all the updated and working packages from ros community Here you can do it by two ways  1.just download ros_ubuntu_install.sh    and make it executable through below command    chmod + x / path / to /ros_ubuntu_install . sh then ./ ros_ubuntu_install . sh Thats it all the things getting complete automatically within 10-15 mints just wait.. check below demo video: 2. otherwise copy each & every commands below and paste it into terminal just copy below commands one by one below & paste it terminal (you should need nice Internet connection it will take some time to complete) sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-ke

Ros Topics : Ros Tutorial

Topics , Its look like pipe line connection between two or more nodes,This is the way to transfer data continuously within two nodes.    Each message in ROS is transported using named buses called topics. When a node sends a message through a topic, then we can say the node is publishing a topic. When a node receives a message through a topic, then we can say that the node is subscribing to a topic. The publishing node and subscribing node are not aware of each other's existence. We can even subscribe a topic that might not have any publisher. In short, the production of information and consumption of it are decoupled. Each topic has a unique name, and any node can access this topic and send data through it as long as  they have the right message type Ros topic have two types of method   1. topic publisher   2. topic subscriber  ROS has a tool to work with topics called rostopic . It is a command-line tool that gives us information about the topic or publishes

ROS Terminology

This section explains the most frequently used ROS terms. Use this section as a ROS glossary. Many terms may be new to the reader and even if there are unfamiliar terms, look over the definition and move on. You will become more familiar with the concepts as you engage with examples and exercises in each of the following chapters. ROS ROS provides standard operating system services such as hardware abstraction, device drivers,implementation of commonly used features including sensing, recognizing, mapping, motion planning, message passing between processes, package management, visualizers and libraries for development as well as debugging tools. Master  The master 2 acts as a name server for node-to-node connections and message communication. The command roscore is used to run the master, and if you run the master, you can register the name of each node and get information when needed. The connection between nodes and message communication such as topics and services a

Translate