Spirit Machine Vision Discussion
Posted: Sat Dec 31, 2016 5:17 pm
Hello all!
In the recent Kickstarter updates, we've been discussing various options for running the machine vision system on Spirit. I built the prototype using SimpleCV, which works, but it's certainly not ideal. Much better solutions exist but as I'm not much of a software guy, I'm hoping for some help from the rest of you.
A few options I've had a quick look at:
OpenCV: This appears to be the go-to standard for this kind of work, though at first glance, it looks complicated.
OpenMV: This looks like a possibly great solution, but I haven't dug into it yet.
https://openmv.io/
Pixy from Charmed Labs: Not sure what software this device runs, but from the looks of it, they've got the vision aspect dialed in.
http://charmedlabs.com/default/pixy-cmucam5/
Requirements:
We would really like a solution that runs on Python 2.7. As far as I can tell, the latest OpenCV only runs on Python 3.0, but we have a few other things running on the robot requiring 2.7. I tried to move those to 3.0 a while back and it was a huge mess so if we can stick with 2.7 for the vision, so much the better.
The second big requirement is that it can be made easy. All of these bits of software appear quite complex, but if I can understand it well enough and I can write some simple functions that are "user friendly for the masses" then it'll work.
The production hardware will be a Raspberry Pi B3 with the original Rev1 Raspberry Pi camera (the 5MP design), though we will eventually move to the new Rev2 (8MP) Pi Camera, so if we could create a vision solution that is easy to swap between cameras, this would also be a huge plus. Eventually we will need to run it on the Rev2 8MP camera one way or the other as the Rev01 cams are harder to find these days.
So I'll open it up for discussion below. If you have a Pi and a camera module, and you have more advanced understanding of how all this stuff works, we would really appreciate your help. Share your thoughts on the different options, discuss between yourselves, play with some demo code, etc.
Thanks in advance for the help!!!
Cheers!
-Kevin
In the recent Kickstarter updates, we've been discussing various options for running the machine vision system on Spirit. I built the prototype using SimpleCV, which works, but it's certainly not ideal. Much better solutions exist but as I'm not much of a software guy, I'm hoping for some help from the rest of you.
A few options I've had a quick look at:
OpenCV: This appears to be the go-to standard for this kind of work, though at first glance, it looks complicated.
OpenMV: This looks like a possibly great solution, but I haven't dug into it yet.
https://openmv.io/
Pixy from Charmed Labs: Not sure what software this device runs, but from the looks of it, they've got the vision aspect dialed in.
http://charmedlabs.com/default/pixy-cmucam5/
Requirements:
We would really like a solution that runs on Python 2.7. As far as I can tell, the latest OpenCV only runs on Python 3.0, but we have a few other things running on the robot requiring 2.7. I tried to move those to 3.0 a while back and it was a huge mess so if we can stick with 2.7 for the vision, so much the better.
The second big requirement is that it can be made easy. All of these bits of software appear quite complex, but if I can understand it well enough and I can write some simple functions that are "user friendly for the masses" then it'll work.
The production hardware will be a Raspberry Pi B3 with the original Rev1 Raspberry Pi camera (the 5MP design), though we will eventually move to the new Rev2 (8MP) Pi Camera, so if we could create a vision solution that is easy to swap between cameras, this would also be a huge plus. Eventually we will need to run it on the Rev2 8MP camera one way or the other as the Rev01 cams are harder to find these days.
So I'll open it up for discussion below. If you have a Pi and a camera module, and you have more advanced understanding of how all this stuff works, we would really appreciate your help. Share your thoughts on the different options, discuss between yourselves, play with some demo code, etc.
Thanks in advance for the help!!!
Cheers!
-Kevin