Announcement

Collapse
No announcement yet.

Servos with new Modern Robotics Hardware

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Servos with new Modern Robotics Hardware

    We have been doing some testing with servos with the new Modern Robotics system. Continuous rotation servos are working fine, although the zero position is 0.55, but 180 servos seem to have range of motion problems.

    We have the Hitech hs-485hb 1/4 scale servo. It has a 180 degree range of motion with the HiTech controllers and RobotC. With our testing of the servo in the new servo controller it is limited to 90 degrees of motion. We don't believe we are missing anything. Has anyone else tried out 180 servos? If so do yours move all 180 degrees?

    Thanks Team 3491

  • #2
    Originally posted by 2009FTC3491 View Post
    We have been doing some testing with servos with the new Modern Robotics system. Continuous rotation servos are working fine, although the zero position is 0.55, but 180 servos seem to have range of motion problems.

    We have the Hitech hs-485hb 1/4 scale servo. It has a 180 degree range of motion with the HiTech controllers and RobotC. With our testing of the servo in the new servo controller it is limited to 90 degrees of motion. We don't believe we are missing anything. Has anyone else tried out 180 servos? If so do yours move all 180 degrees?

    Thanks Team 3491
    As a rookie team, we haven't purchased any servos yet, so we'd be VERY interested in feedback on this issue, as well as ANY teams recommendations on both continuous AND 180 servos in the moderate price range ($25$?) Thanks!
    Michael P Clark
    Founding Mentor, FTC 9958
    http://www.redfishrobotics.com
    "We're Hooked on FIRST"

    Comment


    • #3
      Could you try this test with the Android platform and a legacy HiTechnic controller, to see if the problem is with the new controller or with the Android SDK drivers of the new controller?

      Anecdotally, we also thought we were seeing smaller ranges of movement with the servos, but we haven't taken measurements to verify this.

      Comment


      • #4
        Yes, with the old Hitechnic servo controller the 180 servos have their full range of motion.

        Comment


        • #5
          Interesting ... time to do some more digging.
          We had one HiTec we plugged into Port1 and were seeing only about 135 degrees of range out of it. So we programmed the same code for port 2 and plugged a different manufacturer's servo in there and it ran simultaneously to 180 and it worked just fine. We didn't try the obvious (now) idea to swap them and see if it was port dependent or try a different servo of same type on port 1 yet. We will at the next practice later this week.

          Comment


          • #6
            I just ran a test with a new Modern Robotics servo controller and 4 HS-485HB servos (the ones that come with the Tetrix kit, or available from ServoCity). I could only get 135 degrees of rotation with these servos. I'm sure we got more like 190 degrees of rotation in previous seasons with the NXT and the old HiTechnic servo controllers.

            I've started some communication with Modern Robotics support about this. Steve at MRI says that they've tested it with their servos and things look OK. I'm asking them to try comparing the HS-485HB servos with the new Android platform using both their new Servo Controller and with the old HiTechnic servo controller through the legacy module. I'll report any response I get. I may be able to test this on the weekend too.

            In post #4, 2009FTC3491 reports the old controller has the full range of motion: did you guys find this to be the case when using the new Android platform, the legacy module, and the old controller, or just with the old NXT brick and the old controller?

            Comment


            • #7
              If you have an oscilloscope please measure the servo control pulse width. Neutral (mid-position) is 1.5ms and "normal" servo operation would be 1.0ms minimum and 2.0ms maximum for +-45deg on a standard unmodified servo.
              What the HiTechnic Servo controller does is produce an extended pulse width to drive 90deg servos to 180deg (+ a few degrees). In robotC this meant servo[servo1] = 0 -> pulse width of 0.5ms and servo[servo1] = 255 -> pulse width of 2.5ms. I guess 0-255 equates to 0-1.0 in the new system.
              If you're only getting 135 degrees then you're not getting 0.5ms - 2.5ms pulse width range being produced by the servo controller and/or FTC SDK. Check if MRI are actually using the FTC SDK when testing this. Something seems amiss here.

              Comment


              • #8
                We produced an op mode using the MIT app software. We followed Tom's excellent instructions and things worked as advertised. When we run the HiTech servo that came with the kit, the program used a minimum position of zero and a max of one. This produced a 145 degree movement of the servo. a position of .5 put the servo half way between the zero and one positions, and this was also half way between the physical limits of the servo. Zero and one did NOT push the servo to either end of its capability.

                Comment


                • #9
                  We did a test today with the new system, the legacy module, and the HT servo controller and found 180-190 degrees of motion with the HT-485HB servo, more than the 135 degrees of motion produced by the MRI servo controller.

                  If you want a full 180 degrees of motion with the Tetrix kit's HT-485HB servos, I suggest using the old HT servo controller (unless MRI comes out with an update that increases the range).

                  MRI reports using the FTC SDK with their testing. They also report in email to me (selected quotes): "The MRI and HiTechnic servo controllers produce a pulse width of about 750usec – 2,250usec and this may vary a little with some examples of the HiTechnic controller having a slightly wider range." and "The theoretical range of a HS-485 is 600usec – 2400usec and as noted in the 485 spec, most controllers do not deliver this wide a range of signal." While this second part may be true, all of our experience with the HT servo controller resulted in the servos moving 180-190 degrees. I wonder if perhaps the MRI controller has a slightly smaller PWM range and maybe also a slightly lower peak voltage out, which combine to produce a 25%ish reduction in the min-to-max range of the average PWM voltage?? Just speculating, though.

                  FTC5110, unfortunately I don't have a scope around. It would be great if somebody who did could measure the PWM range and peak voltage of both the MRI and HT servo controllers at their min and max settings. (Philbot???

                  Comment


                  • #10
                    Originally posted by Cheer4FTC View Post
                    I wonder if perhaps the MRI controller has a slightly smaller PWM range and maybe also a slightly lower peak voltage out, which combine to produce a 25%ish reduction in the min-to-max range of the average PWM voltage?? Just speculating, though.
                    Ignore this speculation. For some reason I was thinking that the PWM was just lowpass filtered to produce the target for the servo, so the peak voltage would affect the settings. That's evidently not how they work: the PWM pulse width is all that matters.

                    Nonetheless, the overall experimental finding that the MRI servo controller produces about 25% less range of motion than the HT servo controller does with the HT-485HB servo still holds.

                    Comment


                    • #11
                      I was just reading the latest Pitsco Tetrix catalog and there is information about the servos in it.

                      The interesting thing is that there is a special note about the 180 Standard scale HS-485HB servo. (It only appears with this servo)

                      The note says: "Standard operational range is 90 degrees, but this servo can be operated to 180 degrees with controllers capable of generating a pulse range from 600 usec to 2400 uSec"

                      So, it would appear that this servo needs timing beyond the normal range of most servos (1000 usec to 2000 uSec.)

                      In the FTC Java Docs, there is a relevant comment in the PWMController class:

                      >>> If the pwm feature is being used to generate pulses for a standard R/C style servo, the output period should be set to 20,000 and the output on time should be set within the range 750-2,250.

                      Phil.

                      Comment


                      • #12
                        Originally posted by Philbot View Post
                        In the FTC Java Docs, there is a relevant comment in the PWMController class:

                        >>> If the pwm feature is being used to generate pulses for a standard R/C style servo, the output period should be set to 20,000 and the output on time should be set within the range 750-2,250.

                        Phil.
                        Isn't this class for the Core Device Interface PWMs, not the Servo PWMs?

                        But yes, it would be great if we could set programmatically the range of the servo's output PWM pulses so they could be adjusted to meet the needs of specific servos. Given the huge number of HT-485HBs in use by FTC teams, it would be great if this could be done to allow for the same 180 degree range of motion that teams have always seen with this servo on the legacy hardware.

                        Tom or Jonathan, could you comment here?

                        Comment


                        • #13
                          Originally posted by Cheer4FTC View Post
                          Isn't this class for the Core Device Interface PWMs, not the Servo PWMs?
                          Yes, sure... I just thought that the comment was interesting since different developers seem to have varying opinions on the correct pulse width range...

                          I always thought that 1000 uSec to 2000 uSec was the appropriate range, but clearly this would not be sufficient for the HS-485HB servo.

                          Some technical specs on the Servo Controller would be really handy.. vs guesswork.

                          Phil.

                          Comment


                          • #14
                            With the API, a position of 0 represents the lowest value a given servo controller supports, and a position of 1 represents the highest value a given servo controller supports.

                            When this thread first appeared I looked over the code to see if there were any issues. Due to a math error we were capping the max position by about 6% less than the max. This API bug existed for both the HiTechnic and Modern Robotics servo controller. A fix is ready for the next release.

                            The API allows you to reduce this range, but not increase it; since it defaults to the max. To reduce the range, use the Servo.scaleRange(min, max) method.

                            Comment


                            • #15
                              Thanks, Jonathan.

                              Also, when I asked MRI support "Can anything be done to extend the PWM range of the new MRI servo controller (firmware update, etc.)? It would be better to have too large of a range and then have teams just limit the range via programming than to have too small of a range and have the servo not be able to be used in its full range of motion." the reply I received was "We will add a request to review and make any possible changes in a later release but for this season there are no changes that can be made to the controllers."

                              So, for this season, the new MRI servo controller will only be able to move the HS-485HB servos about 145 degrees. If you want to move these servos 180-190 degrees, you can still use the old HT servo controller with the Legacy module. There are likely many other servos that may be able to produce 180+degrees of motion with the MRI servo controller, but unfortunately not the HS-485HB servos that come with the Tetrix kit and have been used for years in FTC.

                              Comment

                              Working...
                              X