Grigore - Robotics for everybody

Let everyone write and test code, on the same platform, by just having an intelligent line-following table.

Similar projects worth following
Building a robot is complex because it implies mechanics, electronics and software. The mechanical and electric builds of a robot usually are the most difficult parts and they take lots of working hours. So let’s eliminate the need of electromechanical design by providing everyone with an already made robot: chassis, motors, drivers and development board. Just write code and start competing. After all it’s all about learning how to program robots and getting started with algorithms.

Usually a person needs to stay and reposition the robot when it goes haywire. So in order to make it available 24/7 we must eliminate the person as well:
- let's use a Raspberry Pi + camera positioned above and have it track the robot.
- the motor’s driver inputs must be multiplexed so the robot can be controlled by the user or by RPi, in case of emergency (or reposition).
- let the RPi decide weather the user is on or off track.
- the batteries must be charged wireless.

Board software detail:

- OS: Raspberian

- Programming language: C# powered by Mono

- GUI: Visual Studio + Putty

- Imaging libraries: AForge Framework by Andrew Kirillov

Robot software detail:

- Platform: Arduino

- GUI: Arduino IDE or Atmel Studio

- Robot libraries: <grigore.h>

View all 9 components

  • Generated image vs Processed image

    strofo08/17/2015 at 07:16 0 comments

    On the left is the generated image, on the right the processed image. Everything looks ok! So there must be something wrong inside the edges processing algorithm.

  • Successful image detection on Raspberian + Mono

    strofo08/17/2015 at 06:16 0 comments

    Here is the corresponding repository containing everything to make this project work: - Board/Test02 - Detection using AForge Mono

    After downloading it, we must compile it. Just navigate to the folder "Test02 - Detection using AForge Mono" and run the "xbuild" command:

    root@raspberrypi:/grigore/Test02 - Detection using AForge Mono# xbuild

    It will start compiling the hole solution, project by project:

    and notify you when it completes:

    Unfortunately I am not that familiar with Linux so I didn't set the lines to move the generated libraries.

    So we have to manually move "AForge.dll", "AForge.xml", "AForge.Imaging.dll", "AForge.Imaging.xml", "AForge.Math.dll", "AForge.Math.xml" to the "GrigoreDetectionConsole\bin\Debug" folder.

    Each library can be found in its project folder, inside [Project]\bin\Debug

    Now we can run this test:

    root@raspberrypi:/grigore/Test02 - Detection using AForge Mono/GrigoreDetectionConsole/bin/Debug# mono GrigoreDetectionConsole.exe
    and will get a response like this:

    As you can see the code runs, but the detected position is not quite what it should be. I will output the difference image and edges to debug it.

    I also added a Windows project that does this in real time but unfortunately I can not run the X Server in remote, so I can't use it for the moment.

    The detection duration is half a second, which is great for this project.

    This was still a success, so soon I'll be starting to write the main code.

  • Raspberian, PiCam and Mono instalation

    strofo08/14/2015 at 05:50 0 comments

    Install Raspberian
    First boot: resize to max size of SD card. Enable camera support
    Login: pi/raspberry

    Change super pass to "pi"
    sudo passwd
    # introduce new password

    Enable camera in RPi configuration

    Enable camera in condif
    Enable camera ..

    Check camera configuration

    Login as super and take a snapshot:
    DATE=$(date +"%Y-%m-%d_%H%M")
    raspistill -vf -hf -o /home/pi/camera/$DATE.jpg

    Install mono
    apt-get update
    apt-get install mono-runtime
    apt-get install mono-complete

    Check if is Mono was installed correctly
    Create a file named "HelloWorld.cs" and write the following code inside

    using System;

    public class HelloWorld
    public static void Main()
    Console.WriteLine("Hello World!");
    Compile and run it
    gmcs HelloWorld.cs
    mono HelloWorld.exe

  • Detection test failed in Windows 10 IoT due to missing System.Drawing

    strofo08/06/2015 at 06:06 0 comments

    Unfortunately Windows 10 IoT is lacking the namespace System.Drawing so any code that uses Image or Bitmap objects will not compile. I was looking forward to have the project on Windows but, as Mono has this functionality, the next step is to reinstall Raspberrian + Mono and give it a try there. I also have to recompile the AForge code over Mono.

  • First detection tests, powered by AForge

    strofo07/23/2015 at 08:26 0 comments

    I love the AForge framework from Andrew Kirillov so it made sense to use it because Microsoft just released the Raspberry Pi support in Visual Studio C#.

    Right now I am still in doubt weather I will use Mono or .Net but is clear to me that I will use C# instead of Python. I can use some advices and feedback on this matter.

    The code just makes a difference filter between an original empty board image:

    and an image containing the robot (made using GIMP):

    and returns an image containing the resulted edges:

    Code can be found here: - Board/Test01 - Detection using AForge

  • First step

    strofo07/01/2015 at 07:52 0 comments

    First I mounted an Arduino on the Magician chassis and a breadboard. On the breadboard I added the L298 driver and wrote some code to drive the robot over the serial.

    Next use RPi to control the Arduino to some desired position by tracking Grigore's position.

View all 6 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates