Image Processing and Object tracking Robot


#1

I am a robotics enthusiast. I have previously with a team of others worked on robots that used line tracking for navigation and ping sensors(ultrasonic sensors ) to ovoid obstacles or pick some items. Thou the robots did work, the had to use a predetermined path. This means the can only be used for the purpose and place the had be designed, therefore, offering little flexibility for use. Below was a robot designed for NACOSTI robot competition ( A robotic contest held annually in Kenya during the national science week);

https://www.youtube.com/watch?v=ykJsVJZGFx0

So, to decrease the limitations we had with the line tracking robots we decided to give our next robot vision among other enhancements. We are proposing to use a raspberry pi 3 as opposed to Atmel microcontrollers as we used before for our first prototype. Will be posting on the progress of the design and source code here.

Your contribution and suggestions are most welcome


#2

:thumbsup:
We Can still use the Atmel Micro-controllers and link them to the pi.
The pi in this case can be used to collect the various data - the images - then process it, then the micro-controllers execute the process such as movements and arm manipulations.


#3

Hi guys, I am exited that we are even speaking about robots. I happen to have been in the initial stages of the robotic contest when it started back in 2008. Following the line, was the thing then. but since 2009 I have not followed how the the competition has progressed. Image processing is very interesting as it adds a lot of intelligence. I agree with denzel that we still need Atmel for motion coordination and use high processing power of the Pi or any other to process the image.


#4

Hello Simo and Denzel, welcome on board


#5

I was thinking we would use the Pi’s GPIO’s for the control. It would reduce execution time for the movements and other functions carried out by the robot.
Imagine this, the robot wants to turn right after the image processing and a target is identified, if we were using an atmel controller, a call has to be made to the controller via I2C or other communication protocol for it to execute the movement, if we were using say a gyro for turning and we needed feedback to the Pi, the movement would be considerably slow. (but this is all in theory).

There is a library available called wiringPi that brings Arduino-wiring-like simplicity to the Raspberry Pi. Can be found here
http://wiringpi.com/

Or download it from Git here;
https://github.com/WiringPi/WiringPi-Python

Have a look at it guys and give me your thoughts.
We still have the option of Atmel controller.


#6

Hello everyone! As part of my work on autonomy for drones, I’ve been exploring Computer Vision based on the OpenCV library. My companion computer for Image Processing is the Odroid XU-4. Cyrus, I’m happy to participate where I can.


#7

You welcome Oscar, great to have you on board, have also been exploring OpenCV but not Odroid XU-4, will check it out. Will appreciate your input Oscar.


#8

Am very interested the vision system , I did extensive work in the area of artificial vision system starting from openCV and then went on to using a maths library from a french research institution back in 2009 an10. I have since rusted a lot and am happy to rekindle that lost dream and work on any platform which the team agree to go on with. My take is we would rather separate the vision system and the robot control for ease of working and optimising the system separately. in my experience there are many communication protocols we can use and speed will not be compromised, it depends with how we lay our architecture and how well we understand the devices we are using


#9

Great Idea Simo, we can work on them separately work on Computer vision and then later integrate to the robot. Actually the computer vision is the tricky part here.We can weigh our options and come up with the best environment to work on.
Anyone with suggestions on computer vision platforms we can use please update us.


#10

SimpleCV is an easier approach to computer vision and openCV. You can read more about it here.

http://simplecv.org/


#11

Improved CNC Machining Using Vision Based System https://goo.gl/oUNuuN


#12

@AYSande Thats very cool. @Cyrus gone Through open CV functions and am convinced we have all what we need in regards to vision system. and the other advantages is that it can run through multiple Os. For real time operation we need and embedded form of the os maybe embedded linux or windows. i have to confirm whether we can run open cv in embedded os.


#13

@AYSande awesome. @simo embedded Linux is better considering most of the functions and applications are easier to implement using python and also the large community in linux, and also raspberry pi os Raspbian is based on linux. Or what d you think guys?

Check the kickstater Campaign below on machine vision a robot.

https://www.kickstarter.com/projects/945994322/hicatlivera-start-making-your-first-machine-vision


#14

I think Linux is a good choice. based on it being open and unrestricted. Embedded window is a leader in manufacturing industries but comes at a huge cost because you have to get an OEM licence for you to develop at OS level. Linux is perfect. I have not coded in python, but as you speak am all ready learning by next week I will be ready. My dream is to make our own Kenyan Platform for all the hobbyist techies and upcoming entrepreneurs in Kenya. Team with your permission allow me to dream that this forum right here is where we begin. when we develop our vision system why don’t we go ahead and make our own development board as an open source project. Lets converge the brains we got around and focus on a such project and alow mw again to say my personal dream will have come true.


#15

@simo i share the same dream, hopefully we can develop our own opensource board and start campaign or on any other crowdfunding platform. Looking at @AYsande idea of having a machine vision board that can be used for CNC, or a 3D printer or a pick and place machine, our options are many. We can work on this to inspire others and have own success story as Kenyan techies.


#16

Great, It looks like all systems go for me. But I acknowledge it’s important to have collective effort with other like minded guys. Its also important to know the skills and knowledge available amongst us so as to know where to start. Am then appealing to guys in this forum to suggest the best way to to this.


#17

if we could rally even more talented guys to join then that will be a promising path.


#18

To begin with in machine vision i suggest the following components and boards

1.Raspberry Pi 3 or any other model https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
2.Raspberry pi Camera or a USB camera http://store.nerokas.co.ke/index.php?route=product/product&product_id=1103&search=Pi+camera

  1. Tilt and pan kit or make your own.

#Software

  1. Raspbian https://www.raspberrypi.org/downloads/raspbian/
  2. OpenCv https://raw.github.com/jayrambhia/Install-OpenCV/master/Ubuntu/2.4/opencv2_4_5.sh

Will add the other dependencies required later


#19

You can invite as many people as you can to the forum. i will do the same from my end.


#20

Exciting development.

How about we identify a need, develop requirements for it and adopt a rigorous approach?

Possible use cases:

  1. Robot navigation - as already proposed by @Cyrus - what are your requirements for this?
  2. Industrial vision - CNC vision system, inspection, https://goo.gl/D4e2Xl
  3. Add on for self-driving cars
  4. Security - hand held number-plate scanner, face detection
  5. Object recognition