Asked — Edited

Noisy Camera Tracking

Guys, I just hooked up my camera. I hard wired the leads to the camera circuit board (confirmed to be working) and set up a camera tracking widget.

When I have no servo movement selected in the config, the camera seems to track my hand just fine, however, when I check off camera track and set my neck and head servos, the processed display fills with a LOT of tracking delta and it doesn't seem to clear up. The "head" goes a little bizzerk as it tries to rectify.

Here is the image...

User-inserted image


ARC Pro

Upgrade to ARC Pro

Elevate your robot's capabilities to the next level with Synthiam ARC Pro, unlocking a world of possibilities in robot programming.

#1  

P.S.

Messed around with sensitivity to no avail. It reduces noice, but still get overall screen of delta noise.

#2  

Lowering sensitivity and object size didn't change it?

#3  

Nope. Seems that the tracking is clear (no deltas) when it starts, however, as soon as there is some movement (I wave my hand), then the display goes bonkers like above.

Is it generally a matter of messing with size and sensitivity?

PRO
Synthiam
#4  

That's because you are using Motion tracking mode. :)

If your robot is physically set to move, you may want to use a tracking method other than "Motion". Because as you experienced, the robot will move and therefore the image moves

PRO
Synthiam
#6  

Motion Tracking is used when your robot is stationary to detect movement. You can also write a short little EZ-Script to sweep a camera mounted on a servo and speak when it detects motion. Here is an Example Project for you: Example-Script-CameraScanForMotion.EZB

Here is the EZ-Script:


$direction = 1

:START

  ControlCommand("Camera", CameraMotionTrackingDisable)

  if ($direction = 1)
    ServoUp(D6, 5)
  else
    ServoDown(D6, 5)

  if (GetServo(d6) > 80)
    $direction = 0
  elseif (GetServo(d6) < 20)
    $direction = 1

  sleep(500)

  ControlCommand("Camera", CameraMotionTrackingEnable)

  $count = 0

  :SCAN

    if ($count = 10)
      goto(START)

    if ($CameraIsTracking = 1)
      Say("I see you!")
      Halt()
    endif

    sleep(250)
      
    $count = $count + 1

  goto(SCAN)

#7  

or you may use the motion tracking for A stationary camera and make the robot move

#8  

Ah, ok. I think I get that. DJ although there are motion controls in place on the screen, the robot is not actually moving during this testing. Is that a factor in your determination?

PRO
Synthiam
#9  

@cyberdude, please expand on your question

#10  

@DJ, Sorry. What I meant to say is that the robot is not moving when I am attempting to get tracking to work. The head nods, and the neck rotates, but the chassis is not "rolling".

When I tried your script, The head would move up and down, the processed video display would be full of delta pixels for a moment, then clear. So not sure if that is the preferred result.

I will try a few more experiments on this end, this morning and report back. It seems close, just not sure why, when I wave my hand in front of the camera, the tracking goes nuts and fills with room noice.

It certainly "sees" my hand moving, but is "confused" by the tracking noice that gets generated around it, filling the frame.