Another T3.5 Rover with a OpenMV Camera (Machine Vision)

Status
Not open for further replies.

mjs513

Senior Member+
Been quite for awhile while I was trying to get my next rover project going. Always wanted to do something with Obstacle Avoidance using a single cam with image processing to identify objects. Since I love my Teensy 3.5 figured I could do something with it but could not do it directly. Recently I found a OpenMV Camera that uses Micropython that does the Video/Image Processing algorithms for your ala OpenCV. I also found a project (https://bigfacerobotics.wordpress.com/2014/12/18/obstacle-detection-using-opencv/) that could be adapted to the openmv.

So I went ahead and used the OpenMV cam to detect obstacles and angular position in the frame and feed that info to the T3.5 which does the Obstacle avoidance stuff. It uses a single VL53L0X TOF sensor, a BN055 for orientation, a RC TX/Receiver and a RF for telemetry and commands. As in my other project it has an odometry module for relative tracking based on hall effect sensors on the motors (fixed the errors in my other code), a rudimentary, a control module using a RC transmitter and a manual mode for just sending motor commands. The odometry module receives manual commands individually in the format fx, bx, ly,ry where x is distance you want to travel in cm's and y is the relative angle you want to turn.

Most of the challenges I have right now is with the OpenMV, and getting the right algorithm and settings, it uses a OV7725 CCD. The firmware for it is still evolving and getting better. The obs is based off a modified vfh/bubble alogithm is the camera can not detect edges. Happens if it is too close to a wall. I use the VL53 sensor to get distances.

Anyway, a couple of other things I wanted to try was to get the T3.5 to do some image processing on its own, which I think I could get it do in a rudimentary way, based on a saved image. Unfortunately, the camera I selected for that piece, was a Arducam but I am having issues with that which I posted else where.

Oh, almost forgot it uses a custom breakout board for the T3.5 that puts it on a mega footprint and a custom expansion IO expansion shield with lots of pins and corresponding power and ground pins. It also uses a Adafruit Motor shield V2.

If anyone has any ideas for enhancements please let me know.

Here are a couple of photos:
 

Attachments

  • 20170810_203440.png
    20170810_203440.png
    365.6 KB · Views: 219
  • 20170810_203419.png
    20170810_203419.png
    265.1 KB · Views: 255
Just an update. I am still tweaking the code. I added an option for the teensy to send commands to the camera to change lighting modes so depending on lighting conditions the edges will become more visible, e.g., night mode. Planning on adding a light sensor so this can be done automatically. There are still a couple of challenges but working through them. Here is link to the code base for the camera and teensy if you are interested: https://github.com/mjs513/TeensyOpenMV
 
Looks good,

Keep meaning to get back to playing with some form of Rover platform, and maybe get more into ROS or the like.

Rover/tracked platforms, I have played with
the earlier Lynxmotion Rover
And their Tri-track.

I always thought it would be interesting to build a larger track.

If I do get back to into ROS, not sure yet if to go with one of my rovers or tri-track or get a turtlebot (3 or 2i)...
Or improve on the ROS version of the Hexapod code base. Sorry a bit off topic, but this one kickstarter for a hexapod looks interesting: https://www.vincross.com/
 
I have a Dagu Rover V and the Servocity Bogie Runt Rover, although the wild thumper looks interesting as well. Each rover I built seems to build off software modules from the previous. The Dagu is running off the mega but I am going to swap that out for a T3.5 eventually.

Also have a home brew Robotic Arm, https://www.instructables.com/id/Homemade-Robotic-Arm-Using-Standard-Parts-Using-Ar/, that I think I am going to redesign using another T3.5. Wish PJRC would offer them with them with the bottom side pins pre-soldered - I would even pay etra for that one. Wanted to make it do handwriting, came close but the kinematics kept lifting the wrist up so I put it on the side. :(

The hexa looks real nice. Not sure about the pricing though, haven't really checked those out. Now who's getting side tracked.
 
Status
Not open for further replies.
Back
Top