Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   CMUCam, Easy C, and Labview (http://www.chiefdelphi.com/forums/showthread.php?t=43937)

JJMax7 13-02-2006 18:04

CMUCam, Easy C, and Labview
 
I can't seem to get the camera to track the target through the code. It works fine in Labview, so I get the best image I can and save the config for Easy C. Than in easy C I initialize the camera, start the camera, and than just try to gather feedback to see if its working properly. I was able to get it working once, but now I can't seem to duplicate it. If anyone could give me any insight on something I may be overlooking, I would greatly appreciate it. Or if someone could possible give me a config that they got to work I could try that.

BradAMiller 13-02-2006 19:21

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by JJMax7
I can't seem to get the camera to track the target through the code. It works fine in Labview, so I get the best image I can and save the config for Easy C. Than in easy C I initialize the camera, start the camera, and than just try to gather feedback to see if its working properly. I was able to get it working once, but now I can't seem to duplicate it. If anyone could give me any insight on something I may be overlooking, I would greatly appreciate it. Or if someone could possible give me a config that they got to work I could try that.

The default configuration in EasyC should be pretty close. That is any of the "slots" in the table where you don't set values should get you tracking the target.

Chris_Elston 14-02-2006 00:19

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by JJMax7
I can't seem to get the camera to track the target through the code. It works fine in Labview, so I get the best image I can and save the config for Easy C. Than in easy C I initialize the camera, start the camera, and than just try to gather feedback to see if its working properly. I was able to get it working once, but now I can't seem to duplicate it. If anyone could give me any insight on something I may be overlooking, I would greatly appreciate it. Or if someone could possible give me a config that they got to work I could try that.


First thing I would do is make sure you can grab a frame, then track the color in the tracking window with Labview. If that looks good, then save your ECC file to EasyC.

Stop Labview, unconnect your RS-232 from your camera, and plug your TTL port back into RC. Make sure you have a FULLY CHARGED backup battery. Not a ¾ charged battery…FULLY CHARGED, 7.2 volts. Not 7.0 volts, not even 7.1 volts…. .lol….

Next, we need to know if your tracking with your ONBOARD camera PWM ports, or if you are planning on connecting your pan and tilt servos to the robot controller PWMs?

If you are using the onboard tracking. Make sure you read the CMU2Manual, place the lens in the upright position, so when you do a frame grab, the image is correct. (Right side up)

Plug the tilt and pan servo directly onto the CMU2 camera board. Refer to the documentation on where they connect. Your tracking might be backwards. If it is, there is a jumper you need to install to reverse the tilt or pan tracking on the camera board. We had to install the TILT jumper. We use an old hard drive MASTER/SLAVE jumper to reverse the direction of the TILT seek function.

Next is initializing your camera, load the ECC file from lab view with this. Then you need to START your camera. Then you need to capture data from your camera. Finally you need to Set Camera to "Tracking" and put a 1 in pan and a 1 in tilt. This will enable the onboard tracking feature.

You'll need to update your capture data with variables to populate and away you go.

We wasn't happy with the onboard tracking, so we borrowed Kevin's camera code to track the color by connecting the pan and tilt servos to the robot controller, rather than using the on-board servo PWMs. This way the update and servo "tracking" is 100% handled by the robot controller, and it's not so jerky, smooth and fast.....If you do this, then make sure you DISABLE the Set Camera tracking from 1 to 0 for both pan and tilt. This will disable or turn of onboard tracking.

JJMax7 14-02-2006 15:05

Re: CMUCam, Easy C, and Labview
 
Did you convert Kevin's code into Easy C?

If I run the servos for the camera off the RC will the back up battery still need to be fully charged?

I was planning on running the servos off for ease of programming, since I don't have much time to test, but I can try to do it. I don't think I've been running the camera off a full back-up, I'll try that. I had thought that since it worked fine in Labview, and I had given the robot power via the RC and the back-up. I don't have any problem keeping a full back-up battery since we have a few, as well as chargers.

We set-up the camera properly. I made sure of that. I had it running once, so it could be the power problem. But thanks for all the help.

Chris_Elston 14-02-2006 23:09

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by JJMax7
Did you convert Kevin's code into Easy C?


Yes, we did convert the "simple" one to EasyC. It works great.
http://www.kevin.org/frc/frc_camera_s.zip




-

JJMax7 15-02-2006 15:37

Re: CMUCam, Easy C, and Labview
 
I got it tracking so the power was the problem. Now ALL I have to do is integrate it into the code. And get it mounted.

P1h3r1e3d13 28-02-2006 21:23

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by chakorules
Yes, we did convert the "simple" one to EasyC. It works great.
http://www.kevin.org/frc/frc_camera_s.zip

That seems a daunting and very time-consuming task. Congrats on getting it to work.
Would you by chance be willing to share?
Pretty please?:D

Team 562 11-01-2007 16:17

Re: CMUCam, Easy C, and Labview
 
I am having problems trying to get kevins mp lab code transfered into easy c. If you could be kind enough could you please post how to transfer the code.:confused:

Kingofl337 11-01-2007 16:35

Re: CMUCam, Easy C, and Labview
 
1.)In easyC PRO Click on the project tab.
2.) Right Click on "C Source Files"
3.) Select Existing .c files
4.) Find the .c file you are looking for
5.) Right Click on "Header Files"
6.) Select Existing .h files
7.) Find the .h file you are looking for
8.) Start calling functions in user code blocks.

In the camera code if you want to drive the servos you may have to
convert pwm01=Value; to SetPWM(1,Value);
Where 1 is the port number and Value is the variable of what the angle should be.

In the Initialize Function call: InitCamera ( 1 ) ; and StartCamera ( ) ;
Any place that polls the camera you need to call CaptureTrackingData ();
You can drag the blocks right into the C code.

Have you tried the 07 demo code we posted that tracks very well.

sparks-1784 13-01-2007 14:51

Re: CMUCam, Easy C, and Labview
 
can you include a link to the 07 code?

Kingofl337 13-01-2007 19:15

Re: CMUCam, Easy C, and Labview
 
http://www.intelitekdownloads.com/ea..._2007_demo.zip

itsme 14-01-2007 12:14

Re: CMUCam, Easy C, and Labview
 
What is the difference between connecting the servos onboard the camera to connecting the servos to the RC?
And how is it possible to connect onboard?

Bharat Nain 14-01-2007 16:53

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by itsme (Post 556449)
What is the difference between connecting the servos onboard the camera to connecting the servos to the RC?
And how is it possible to connect onboard?

You cannot, not this year atleast. FIRST had onboard pins last year for the camera. This year, the switched boards. You cannot use last years board as it would be considered illegal - it was custom made for FIRST.

hal 16-01-2007 17:24

Re: CMUCam, Easy C, and Labview
 
Quote:

You cannot, not this year atleast. FIRST had onboard pins last year for the camera. This year, the switched boards. You cannot use last years board as it would be considered illegal - it was custom made for FIRST.
Does that mean that the EasyC CMUCam code cannot control the camera servo motors when they are connected to the RC? If so, does that mean one must import the MPLAB camera code so that the camera can track the light source?

MattD 16-01-2007 18:01

Re: CMUCam, Easy C, and Labview
 
Quote:

Originally Posted by hal (Post 558318)
Does that mean that the EasyC CMUCam code cannot control the camera servo motors when they are connected to the RC? If so, does that mean one must import the MPLAB camera code so that the camera can track the light source?

Right, as far as I can tell the easyC code depends on having the servos controlled via the camera board and not the RC. However, the 2007 kickoff demo could be a good starting point, as it does have tracking code that controls the servos via the RC.

Since my team has opted to use easyC, we ended up porting Kevin's streamlined tracking code rather than basing from the aforementioned demo code, however. It still needs to be tweaked a bit, but it seems to work fine.


All times are GMT -5. The time now is 16:29.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi