1. 6 months ago

    Just wondering how to sync the left and right side of a reverse 4 bar?

    my team's current idea is to have one side as the dominant side and the other side adjust accordingly using 2 pot sensors.

    Is there any better way of doing this?

  2. How about this?

    shaft + 36 HS Gear + shaft coupler +36 HS Gear + shaft

  3. Carter

    9 Feb 2018 Alabama 13907A
    Edited 6 months ago by Carter

    @Justinachano Just wondering how to sync the left and right side of a reverse 4 bar?

    my team's current idea is to have one side as the dominant side and the other side adjust accordingly using 2 pot sensors.

    Is there any better way of doing this?

    A lot of teams use p or pid on both sides to sync the two sides

  4. hmm
    what's the theory behind the p or pod teams use?

    do they make one side dominant and the other side follow accordingly or?

  5. Yeah i was going to use high strength axles and buy the bearing blocks, clamp shaft collars, spacers for the hS axle. but didn't want to spend that money if there's a programming or altiernative mechanical solution

  6. Royal_Waffle

    9 Feb 2018 Washington State 3249Z -- The Mechanics of Oz

    @Justinachano
    The PID structure (there are a metric ton of forum responses about them) basically tells a motor (with a sensor) to go to a certain value and calculate/get rid of over or undershoot. It uses calculus. Search "What is PID?" on the forum to learn more. I'm just getting into this myself, actually.

    As for the practice...I wouldn't be surprised if they had a "main"sensor that the calculations are based off of. My P controller that I'm working with uses two potentiometers with one as the "main" that calculates for both motors. I haven't been able to test it (i have a comp tomorrow), but it should theoretically work if I'm using the right things...which I am usually potato with xD.

  7. The Electrobotz

    9 Feb 2018 Virginia 20181X

    In my opinion, the best way to go about this is slave one side to the other. I don't mean use the slaveMotor() function.

    @Justinachano hmm
    what's the theory behind the p or pod teams use?

    do they make one side dominant and the other side follow accordingly or?

    Your theory here is correct. The way I would do it is have one side be the "master" and then base your P calculations based on that potentiometer value.

    To provide an example: Say the left side is the "master", make error SensorValue[right] - SensorValue[left], and then multiply that by the constant of proportion. Set that to the motor value of your right side.

  8. Edited 6 months ago by Joshua_L

    The way I like to do it is have a base power (say 90 for example) and then subtract and add to that speed based on the difference between whatever sensor our using. This is called a P(roportional) controller, and will "synchronize" both sides of your lift. Similar to @The Electrobotz

    if( button == pressed)
    {
    error = SensorValue[right] - SensorValue[left];
    proportional = error*kP;
    
    motor[right] = 90 - proportional;
    motor[left] = 90 + proportional;
    }

    You can tune kP to whatever value is best for your robot. You can add I and D later on if you want.

    You could also do the same for distance. Say you want you lift to raise to a certain height, you would do something like this:

    if( button == pressed)
    {
    error = targetValue - (SensorValue[right] + SensorValue[left])/2;
    proportional = error*kP;
    
    motor[right] = proportional;
    motor[left] = proportional;
    }

    And then you could put the two together for super precision:

    if( button == pressed)
    {
    error1 = targetValue - (SensorValue[right] + SensorValue[left])/2;
    error2 = SensorValue[right] - SensorValue[left];
    proportional1 = error1*kP;
    proportional2 = error2*kP;
    
    motor[right] = proportional1 - proportional2;
    motor[left] = proportional + proportional1;
    }
  9. Royal_Waffle

    12 Feb 2018 Washington State 3249Z -- The Mechanics of Oz
    Edited 6 months ago by Royal_Waffle

    @Joshua_84927A
    That will make my life a whole lot easier.
    However: I have the P structure under an "int" placed before everything else that references a typedef struct. If I don't want to have to mess with a return value, what should I use instead? Or should I just make it easy and put the P controller in the "if" statement in the drivercontrol task?
    edit: I just changed it to a "void" and it compiled. is that gonna work?!

  10. @Royal_xD @Joshua_84927A
    That will make my life a whole lot easier.
    However: I have the P structure under an "int" placed before everything else that references a typedef struct. If I don't want to have to mess with a return value, what should I use instead? Or should I just make it easy and put the P controller in the "if" statement in the drivercontrol task?
    edit: I just changed it to a "void" and it compiled. is that gonna work?!

    The way i do it is put it in a function with a while loop. Like this:

    void foward (int targetValue)
    {
    while(SensorValue[encoder] < targetValue)
    {
    P Control Stuff
    }
    }
    
    task main()
    {
    forward(1000);
    }

    Im not sure how to implement it into drivercontrol. I only use these functions for autonomous.

  11. @Joshua_84927A Im not sure how to implement it into drivercontrol. I only use these functions for autonomous.

    You could put that code into a task instead of a function, that way it could run concurrently w/ driver control.

  12. @Rod You could put that code into a task instead of a function, that way it could run concurrently w/ driver control.

    Ive had bad experiences with having two tasks telling a motor to do something different

  13. @Joshua_84927A Ive had bad experiences with having two tasks telling a motor to do something different

    Oh yeah that won't work. You can have your driver control only control the master motor, and the PID task only control the slave motor.

  14. Royal_Waffle

    13 Feb 2018 Washington State 3249Z -- The Mechanics of Oz

    @Joshua_84927A
    Ok, I did that and it compiled...I'll test it tomorrow when I reinstall the potentiometers.
    Thank you so much!

  15. @Royal_xD No problem. If you have any problems/questions, feel free to PM me.

 

or Sign Up to reply!