Na wat pluiswerk liep ik tegen wat onzekerheid aan betreffende het aansturen van motoren. Mijn doel is het bewegen van een arm, en al dan niet mee trekken of tegenduwen wanneer iemand de hand vasthoudt.

Scenario's wat dit dient te kunnen;

1. De hand beweegt naar voren en achteren (zonder interactie met gebruiker). De beweging is niet van A naar B met een vooringestelde vaste snelheid, mijn uitdaging is om de vloeiendheid van bewegen op een continuere manier te bewerkstelligen.

2. Wanneer een gebruiker de hand vastpakt en naar zich toe wil trekken wil ik de mogelijkheid hiervan dynamisch laten zijn, ofwel de hand is makkelijk te bewegen of moeilijk. Dit overigens ook weer op een continue schaal, niet discreet makkelijk of moeilijk maar geleidelijk.

3. In het geval dat de gebruiker de hand beweegd wil ik soms niet alleen een weerstand verlagen of verhogen maar ook tegenduwen of meetrekken. Wat er dus eigenlijk gebeurd is dat de hand beweegd maar daarbij wel een controle heeft betreffende zijn kracht. Als mens kan ik mijn arm langzaam bewegen met veel of weinig kracht, voor mijn gevoel is zonder tegendruk bij een motor de kracht gekoppeld aan draaisnelheid.

Kortom (voor mijn gevoel) waar ik naar opzoek ben is een koppel en hoeksturing in één. Optimaal zou ik vanuit een microcontroller met bijvoorbeeld pwm a. continue de positie aansturen en b. continue hoeveel weerstand/kracht de deur zelf heeft.

Hoe pak ik dit aan, qua aansturing en qua keuze motoren?

Ergens rond 1990 was er een symposium "graphics and computed art" in de aula van de TUDelft. Daar waren een aantal mensen uit eindhoven die hun "dynamische trackball" lieten zien.

Zo'n trackball heeft normaliter net zoals een muis-met-bal een wieltje met een encoder wat ofwel op de X-as ofwel op de Y-as met de bal in aanraking is. Deze jongens hadden daarvoor in de plaats een motor-met-encoder genomen. De encoder geeft de sturing informatie over de snelheid. Door nu de motor aan te sturen met: I = α . C . V (V= snelheid) kan je de boel regelen. Door de grotere constructie draait de boel minder makkelijk als een normale trackball. Maar de wrijving blijkt ongeveer Fw = β . V te zijn. Door nu α = β te kiezen, kan je de kracht van de motor de wrijving laten opheffen. Je geeft de trackball een klein zetje en hij blijft heel lang doordraaien. Iets minder α, en hij komt rustig tot stilstand. Iets meer en hij wordt instabiel.

Hun idee daar was dat je voel-feedback aan de gebruiker zou kunnen geven door een virtuele bobbel te maken daar waar de gebruiker over de rand van een window muist of zo. Het idee is niet aangeslagen....

Maar het geeft wel aan wat jij nodig hebt:

Een motor (meer?) die vrij direct op de mechanica aansluit, die je stroomgestuurd kan aansturen, samen met een encoder waaruit de besturing kan bepalen wat de stroom moet worden. α > β Meehelpen. α = β -> voelt als geen wrijving. α < 0 -> Voelt als stroperig. Werkt niet mee.

P.S. Ik vind dat CO een raar font gebruikt waarbij de α als alpha slecht te herkennen is.

Bedankt rew,

Na een korte Google speurtocht naar aanleiding van je feedback kwam ik op het werk van D. Keyson die destijds aan de TU/e promoveerde en nu in Delft werkt. Een kleine wereld toch, aangezien Keyson danweer een promotor is geweest van een van mijn begeleiders.

Ik zal eens wat prototypen.

Ik denk dat je je toch vergist; je kunt zelf ook niet je hand langzaam bewegen met veel kracht, als er iets is om die kracht tegen uit te oefenen. Uiteindelijk bepaald de kracht samen met de massatraagheid en eventuele wrijving wat de snelheid wordt; als je iets langzaam wilt bewegen, zul je minder kracht moeten zetten dan wanneer je in dezelfde situatie snel zou willen bewegen.

Ik denk dat je eigenlijk 2 regelaars parallel zou willen plaatsen; de eerste probeert de gewenste snelheid te halen, door een koppel van de motor te vragen (bijvoorbeeld met een PID regelaar). Als je te snel gaat, ga je minder koppel leveren, of zelfs negatief koppel; als je te langzaam gaat, lever je juist meer koppel om te versnellen. De tweede regelaar geeft constant het maximaal toelaatbare koppel. Vervolgens kijk je steeds welke van die 2 koppels het kleinst is, en gebruikt dat voor de motorregeling. Natuurlijk wel even opletten dat de integrator van niet wegloopt als het koppel beperkt wordt en zo, maar echt ingewikkeld zou het niet moeten zijn, denk ik.

Je kan je arm/hand toch langzaam bewegen en toch kracht uitoefenen, volgens mij moet dat gewoon met één regelaar te doen zijn.
Als je maar een goede terugkoppeling van je motoras hebt.
Iets van een encoder of een tacho moet goed werken.
Je creëert zo een servo systeem, die kan je zelfs stil laten staan en toch koppel leveren. Je zal wel iets met PID moeten doen, om de regeling stabiel te krijgen, en het gewenste resultaat te behalen.

Uiteraard kun je langzaam bewegen of stilstaan en toch kracht / koppel leveren, en je kunt zelfs een kracht/koppel leveren terwijl de beweging in tegengestelde richting is, waarbij er dus extern een grotere kracht/groter koppel aangebracht wordt.

Wat je niet kunt, is langzaam bewegen en toch kracht uitoefenen als er geen tegengestelde kracht is; oftewel, je kunt geen grote kracht uitoefenen op een licht voorwerp met weinig wrijving zonder het te gaan versnellen. Een dergelijk krachtenspel moet ten alle tijden op een som van 0 komen; als de aangebrachte kracht groter is dan de wrijvingskracht, zal het "restant" gebruikt worden voor de versnelling, waarmee het totaal op 0 komt.

Zie het als een mechanisch equivalent van de wetten van Kirchhoff (som van stromen naar een knooppunt is 0, som van spanningen in een gesloten kring is 0).

Wat mogelijk in het spraakgebruik "met veel kracht" bewegen is, is het volgende: Die industrieele robots zijn positie gestuurd: Zet je er een muur tussen, duwt ie gewoon door de muur heen. Dus: positie gestuurd, zonder veel op de kracht te letten.

Dat moet met de door mij voorgestelde hardware kunnen, maar met andere instellingen.