... Ralph, I've also read about using the eQEP module to allow decoding of 
up to three quadrature encoders: https://www.youtube.com/watch?v=gEnrsIS17PM

Have you any experience with this? I though I might give it a go.

-Luke

On Thursday, September 15, 2016 at 9:36:51 AM UTC+1, Luke Steele wrote:
>
> Hi Ralph,
>
> I'd thought about reformulating the problem using velocity or acceleration 
> control, then using a PID loop to control cart velocity/acceleration. But 
> I'm not sure how to go about reformulating the equations of motion (to be 
> fair, I haven't really given it much consideration, it was just a passing 
> thought!). Maybe I'll give it a shot.
>
> Re the incremental encoders, isn't there some way of attaching interrupts 
> to the GPIOs on the BBB? Or what about high speed polling in the PRUs?
>
> Cheers,
>
> Luke
>
> On Wednesday, September 14, 2016 at 10:30:04 PM UTC+1, Ralph Stirling 
> wrote:
>>
>>
>> Luke,
>>
>> We have done both single and twin inverted pendulums in our Feedback &
>> Control classes.  Our apparatus (our design and fabrication) has a cart 
>> driven
>> by fishing line around a pulley on a high quality DC "basket weave" motor
>> (Escap or Maxon).  These have zero cogging, with no steel in the rotor.  
>> The
>> state space control law uses encoder feedback from the motor (for cart 
>> position)
>> and each of the pendulums.
>>
>> I've wanted somebody to work on the system identification problem to 
>> collect
>> all the data to compute the parameters needed by the control law, but so 
>> far
>> we just used statically measured data or manufacturer's datasheets.
>>
>> The difficulty with using a BBB for this project is that it doesn't have 
>> enough
>> counters (or drivers for them) to handle three incremental encoders.  If 
>> you
>> used one of the FPGA SoC boards that have been discussed on this list 
>> recently,
>> you could implement encoder counters in the FPGA.  Our inverted pendulum
>> setup uses a Digilent FPGA board, with a custom H-bridge and ethernet 
>> connection
>> to communicate with Octave running on a PC.  Octave does all the control
>> calculations and just gets encoder readings from the FPGA board, and 
>> writes
>> PWM values.
>>
>> I think your control law will be a lot simpler, and the rest of the 
>> system too,
>> if you use velocity control rather than torque control.  Then you only 
>> need
>> to control your motor voltage (proportional to velocity) rather than motor
>> current (proportional to torque).
>>
>> -- Ralph
>>
>> On Wednesday, September 14, 2016 at 9:20:11 AM UTC-7, Luke Steele wrote:
>>>
>>> Hello,
>>>
>>> I should probably explain that I'm a linux and BBB novice, and am 
>>> currently experiencing a crazily steep learning curve. So please bear with 
>>> me while I ask what are probably incredibly rudimentary questions...
>>>
>>> I'm interested in doing some realtime control (servos, reading encoders 
>>> etc) on my BBB rev C under Xenomai, and after some reading around it seemed 
>>> like the simplest way to get started was using the pre-built machinekit 
>>> images found here: 
>>> http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#BBW.2FBBB_.28All_Revs.29_Machinekit
>>>
>>> So, having installed this image I can now ssh into the BBB from a 
>>> Xubuntu install running under VMware on my PC.
>>>
>>> I thought a good place to start would be blinking an LED. To that end 
>>> I've compiled the C++ program here 
>>> <http://inspire.logicsupply.com/2014/07/beaglebone-c-programming-example.html>,
>>>  
>>> which works (only) if I use sudo, i.e. sudo ./myprog. I've also tried 
>>> turning them on and off at the command line as outlined on Derek 
>>> Molloy's site 
>>> <http://derekmolloy.ie/beaglebone-controlling-the-on-board-leds-using-c/>, 
>>> but this doesn't work:
>>>
>>> cd /sys/class/leds
>>> cd beaglebone:green:usr0
>>> echo none > trigger
>>>
>>> -bash: trigger: Permission denied
>>>
>>> sudo echo none > trigger doesn't work either...
>>>
>>> What am I doing wrong?
>>>
>>> Also more generally, is this approach of accessing LEDs and GPIOs 
>>> through the file system the right way to go if I'm interested in doing 
>>> things quickly? Intuitively it feels like it'd be slow - is there another 
>>> way?
>>>
>>> Incidentally this 
>>> <https://hackaday.io/project/12827-double-pendulum-cart> is what I'm 
>>> aiming to do eventually. 
>>>
>>> Thanks for any help, it's appreciated!
>>>
>>> Luke
>>>
>>>
>>>

-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to