Developer

### Camera Stabilization (Tilt) w/ infinite servos (360)

Does anyone know how to configure APM to use infinite servos with camera stabilization? I have the photoshipone 2x gimbal.

#### Replies

• I am also working on a project using continuous servos for gimbal. I need a way to compensate for the gyro drift (for yaw) and thus, make the use gyro drift to determine the velocity of the servo.

Any suggestions on how to achieve these two aims will be helpful.
• I think Adam did the code for the infinite-servos, than I had some changes made that made his code incompatible with mine.

I'm not sure if he already merged his changes on top of mine.

I do not have infinite servos to test width, so I will not add infinite-servo control features.

• Developer

Turns out the solution was quite simple. I just checked new code into master that will allow users to specify if they are using 360 (continuous) servos. Currently the code uses the angular output from the AHRS solution to compute a corresponding PWM "position" for the servo. This works with regular servos where PWM = position, but with 360 servos PWM = speed of rotation. The solution was to use the output of the gyros (rate of rotation) from the AHRS rather than the angle. This way we know how fast the angle is changing instead of the actual angle. This is then multiplied by the proportional gain and transformed into the PWM signal. I did several tests today with my photoshipone gimbal (Spektrum H6040 servos) and it worked perfectly! This should be available in the next release and I will add documentation to the wiki when the code rolls out to everyone.

• If you're using some external rotary encoders, like the AS5040 magnetic encoder, and are using an Arduino or similar board to control a motor driver, maybe use the arduino map function to convert the pulse output from the APM for tilt or pan to a value in degrees at which you want to point the camera, then feed that into the controller for the servo/encoder. There is an excellent PID library for arduino that I've used for this very issue.

http://arduino.cc/en/Reference/map

http://arduino.cc/playground/Code/PIDLibrary

In the setup below I'm using a Baby Orangutan B-328 from Pololu.com, which has an ATmega328 and a dual channel motor driver that can push 1 amp, and is compatible with most arduino code. I cut the gears on the servo to allow continuous rotation, and removed all the electronics, setting it up as a basic gear motor. The magnetic encoder is on a board from Mad Scientist Hut.

• I'm wondering this as well.  I've got THESE installed in a pan tilt gimbal, but i'm not sure how to set them up.  Or if you even can.

Has anyone had luck with this?

• I have a 360 modded servo setup that uses the guts from two servos, one is used for the motor/gears the other is used for the potentiometer. they are geared together so I get 720degrees out of standard servo signals. its not really that hard, but if you mess up like i did it costs you a couple servos.

• Does it have optical encoders? Or how does it get the position data?

• Developer

I think that this is impossible because the code has no way of knowing the current position of the servo.

### Activity

RT @gclue_akira: 柏の葉で走行させてるjetracerの中身　#instantNeRF #jetracer https://t.co/giVvuE4hP7
Jul 4
Cool web-based self-driving simulator. Click save when the AI does the right thing https://github.com/pncsoares/self-driving-car
Jul 4
RT @donkey_car: Human-scale Donkey Car! Hope this makes it to a @diyrobocars race https://www.youtube.com/watch?v=ZMaf031U8jg
Jun 25
RT @GrantEMoe: I won my first @diyrobocars @donkey_car virtual race! Many thanks to @chr1sa @EllerbachMaxime @tawnkramer and everyone who m…
Jun 13
RT @gclue_akira: JetRacerで自動走行したコースを、InstantNeRFで再構築。データセットは別々に収集 #jetracer #instantNeRT https://t.co/T8zjg3MFyO
Jun 13
RT @SmallpixelCar: SPC 3.0 Now the motor also works. This car is doable. I just need to design a deck to mount my compute and sensors. http…
Jun 13