View Single Post
  #56   Spotlight this post!  
Unread 29-06-2009, 23:13
dyanoshak dyanoshak is offline
Registered User
AKA: David Yanoshak
FRC #2158 (ausTIN CANs)
Team Role: Mentor
 
Join Date: Dec 2007
Rookie Year: 2007
Location: Austin, TX
Posts: 189
dyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond reputedyanoshak has a reputation beyond repute
Re: pic: cRIO CAN Jag

Quote:
Originally Posted by biojae View Post
My first test of the CAN bus will be to make a CIM servo, with PID and a tough box
Quote:
Originally Posted by s1900ahon View Post
So, if you really wanted to do your own enhancements to Jaguar (say as a senior project for a EE degree - but not for FIRST legal use) you could:
Funny you mention an EE senior project...

For my EE senior design project, me and my group constructed a master-slave robotic arm system. The big slave arm mimicked everything the small master arm did. We used Jaguars for the motor controllers, utilizing their CAN capabilities and built in position handling.

Here is a link to several pictures and a few videos of our project (Robby was one of my group members):

http://www.robbymorrill.com/464.htm

The pictures that pertain to this thread (several pictures down the page) are not too good at showing the CAN cables. The CAN cables are zip-tied to PWM style cables that we used to connect analog encoders to the Analog ports on the Jaguars. They were very easy and cheap to make. We bought 4 conductor phone cable, 4C6P phone jacks, and a cheap crimper from Fry's, and they worked perfectly.

Here is a basic outline of our project:
  1. Small master arm uses 10-turn potentiometers to measure joint angles.
  2. Custom PCB using LM3S5747 (control board) measures the pots, performs necessary calculations, and sends position data to the Jaguars through CAN bus. It also controls the gripper servo.
  3. Jaguars connected to control board through the can bus; daisy chained.
  4. Analog absolute encoders (MA3 encoders from US Digital) connected to Jaguar's analog port (by way of a voltage divider to step 5V down to 3V for the Jag).
  5. Jaguars hold position using the encoder feedback and the desired position based on the PID (Proportional - Integral - Differential) constants. (the PID constants were set by the control board via CAN)
  6. 4 Globe motors and Fischer Price motor connected to 5 Jags and one VEXplorer gripper (ran out of time for our custom designed gripper).
The first video doesn't show much arm movement except for the wrist, but you can kind of see the arm move close to the end. At that point we were working on tuning our PID constants. That was probably the last time we had the arm working really well with PI (no D). While working on D we began to see a lot of nasty oscillations in the shoulder joint. This joint used to be an RS545 motor with a Banebots 256:1 P60 gearbox. Despite Banebots hardening the shaft and the sun gear, it still deformed, creating a lot of play in the gearbox. The PID oscillations and the play in the gearbox lead to the motor eventually smoking an hour before the senior design competition! We replaced it with a Fischer Price motor (thanks 2158!) and only turned on P. Every video after that shows only P (still pretty good I might say).

We won first place in the University of Texas EE Senior Design Competition!

There were many difficult parts to the project; designing a robotic arm from scratch in Solidworks, designing a PCB, etc. Jaguar made it possible to focus on other things because the position handling was pretty much taken care of for us. We used one RDK-BDC (Reference Design Kit) to get started talking to the Jags with CAN, but all the rest were regular MDL-BDCs like we got in the kit this year. Setting the ID was very simple: send out an ID set message from the control board, press the user button on the Jag that you want to set as that ID number, presto, the ID is updated.

I'll try and get some better pictures of the Jags and the CAN cables if people are interested.

Thanks for letting me show off my project

Let me know if you have questions,
David
Reply With Quote