Image Processing for Picking Task of Random Ordered PET Drinking Bottles

This paper is a part of Journal of Robotics, Networking and Artificial Life (JRNAL). You can access this page for detail information about this publication or download the PDF file. Please note all the contents on this page cannot be used for commerical usage!

Abstract

In this research, six brands of soft drinks are decided to be picked up by a robot with a monocular Red Green Blue (RGB) camera. The drinking bottles need to be located and classified with brands before being picked up. The Mask Regional Convolutional Neural Network (R-CNN), a mask generation network improved from Faster R-CNN, is trained with common object in contest datasets to detect and generate the mask on the bottles in the image. The Inception v3 is selected for the brand classification task. Around 200 images are taken or found at first; then, the images are augmented to 1500 images per brands by using random cropping and perspective transform. The result shows that the masked image can be labeled with its brand name with at least 85% accuracy in the experiment.

Continue reading Image Processing for Picking Task of Random Ordered PET Drinking Bottles

A GPU Monitoring tool

This is a Nvidia GPU training monitoring tool using python. This script can kill a training process when timeout.
You can adjust the time threshold on line 34 as you want (Default 5 min).

The six degrees of freedom manipulator forward kinematics and the geometric solution of inverse kinematics

This article describes forward kinematics of the six degrees of freedom manipulator and its geometric inverse kinematics geometric.
The algorithm described in this article has not been strictly tested. Take your own risk while using it
You are NOT ALLOWED to copy this article

The robot structure is shown in the figure below:

6 Degree of Freedom Robot Structure
Figure 1. 6 Degree of Freedom Robot Structure

Continue reading The six degrees of freedom manipulator forward kinematics and the geometric solution of inverse kinematics

Robotics Forward Kinematics

This article describes the related information of robot kinematics, including the solution of rotation matrix, vector and mechanical arm pose, and using C# to describe the relevant algorithm.

Rotation Matrix

The rotation matrix in linear algebra is used to make the vector rotate in the Euler space.
In robotics, the rotation matrix is used to solve the posture (orientation) of the robot joint. In three-dimensional space, the eigenvalue of the rotation matrix is 1.

Continue reading Robotics Forward Kinematics

string replacement in C

Please Using free to free the memory after use it
[codesyntax lang=”c”]

/*
*Function:str_replace
*Parameter:char* search,char* replace,char* str
*Call:char *str_replace(char* search,char* replace,char* str);
*Return: string 
*Required:malloc.h
*Required:string.h
*Description: replace the string in the string
*/
char *str_replace(char* search,char* replace,char* str)
{
    int lstr,lse,lre;
    char* r,*p,*nptr;
    lse=strlen(search);
    lre=strlen(replace);
    lstr=strlen(str);
    if(lse>lstr)
    { 
        return NULL;
    }
    r=(char* )malloc(lstr+1);
    if(r==NULL)
    {
        printf("Failed to allocate memory");
        exit(-2);
    }
    strcpy(r,str);                    /*Copy the string to new memory*/
    p=strstr(r,search);
    while(p!=NULL)
    {
        if(lse==lre)
        {
            memcpy(p,replace,lre);  /*Just Copy the string*/
        }else if(lse>lre)            /*No allocation required*/
        {
            memset(p,' ',lse);        /*Clear it first*/
            memcpy(p,replace,lre);    /*Copy data*/
            memcpy(p+lre,p+lse,lstr-(p-r+lse)+1);/*Remove the blanks*/
        }else{
            nptr=realloc(r,lstr+(lre-lse));/*Expand the space first*/
            if(nptr==NULL)
            {
                printf("Failed to allocate memory");
                exit(-2);
            }
            r=nptr;
            memcpy(p+lre,p+lse,lstr-(p-r+lse)+1);/*Move data now*/
            memcpy(p,replace,lre);
        }
        p=strstr(p+lre,search);        /*To prevent the replace string contained the search string*/
    }
    return r;
}

[/codesyntax]