Face tracking with Adafruit16Cservodriver

Hello, i'm Bobby, i'm new here and i have a little problem:

Traking service is worky OK, Adafruit16Cservodriver is worky OK but when i try to attach servos tracker.x and tracker.y to adafruit i get a null pointer exception.

Alessandruino's picture

Hi Bobby ! And welcome!! Send

Hi Bobby ! And welcome!! Send a noworky after you run the script and errors pop up... This way a log with your script and what s going on will be sent to me and the mrl team...

to send a noworky use the help button on the top -> send noworky -> write your Nick name...

Alessandruino

Mats's picture

Tracking and Adafrit16CSrvoDriver

Hi Bobby. 

Welcome. I'm happy that you take the time to report about the problem. We will make it worky. 

The null pointer exception is probably because you need to tell the Arduino what port to connect to It can be done like this:

Runtime.createAndStart("servodriver","Adafruit16CServoDriver")
sleep(1)
servodriver.connect(port)
 
Runtime.createAndStart("tracker","Tracking")
sleep(1)

---------------------------------------------------------------------------------------------------------------

I think that there also is a problem because both Tracking and Adafruit16CServoDriver both starts an Arduino service and that there is a conflict betwen them. I plan to remove the start of an Arduino from the Adafruit16CServoDriver since it can be used with either an Arduino or a Raspberry Pi. I also suspect that Tracking automatically connects servos directly to the Arduino. It was the only choise before the Adafruit16CServoDriver was worky.      

The default way to connect things is/was: 

Tracking => Servo => Arduino 

We need to change that so it's possible to connect like this:

Tracking => Servo => Adafriuit16CServoDriver => Arduino

It should also be possible to connect like this if you run MRL on a Raspbery Pi.

Tracking => Servo => Adafriuit16CServoDriver => RasPi

I will continue to look at this problem tomorrow. It's a bit late here now. 02:00 AM

/Mats

bobbyshomerul's picture

Hello, thank you for your

Hello, thank you for your reply.

Yes the problem is because both start they own arduino services.

arduino is conected to port and servos are moving if i move the slider, i think that the error is generated by tracker. i have some programming skils but i just started playing with mrl.  

i'm runing windows.

 

the error is generated in the moment that face is detected, if i cover the camera there's no error.

 

btw... this is Robby

 

Mats's picture

Facetracking and Adafruit16CServoDriver

Hi Bobby.

Very nice build of the InMoov robot. 

I updated the Adafruit16CServoDriver so that it no longer starts any Arduino. So you need to download the "latest  build" of MyRobotLab and reinstall the services that you need.   

I also created a testscript that I hope can get you started with facetracking. 

https://github.com/MyRobotLab/pyrobotlab/blob/master/home/Mats/TrackingA...

Please let us know about your progress.

/Mats

bobbyshomerul's picture

Thank you Mats, is worky now,

Thank you Mats, is worky now.

in your example tracker service must be started last after all is set or you get same nullpointer error.

servos does not apear to be attached to servodriver but they are worky

Robby is moving a little slow and is confuzed but is a start :)