Open Dynamic Robot

From Robin

Jump to: navigation, search
  1. Open Dynamic Robot

Dette er wiki-siden for Open Dynamic Robot prosjektet på robin. Vi bygger solo12

Setup av Ubuntu 18.04og annen software på Deepthinker

Ubuntu versjon:

For øyeblikket er at ODRI-software støttet av Ubuntu 16.04 og 18.04, men 16.04 støtte skal droppes etter hvert. Det kan hende at i framtiden så bytter man til en senere installasjon av Ubuntu hos ODRI, men de generelle problemene og løsningene burde være like allikevel. Sjekk README på https://github.com/machines-in-motion/ubuntu_installation_scripts for en oppdatert oversikt over støttede versjoner og lag en live disk som passer til den versjonen du velger å bruke.


Problemer:

Fordi Deepthinker er en "dual boot" maskin så kan det å aksessere BIOS være problematisk. En potensiell løsning er å koble et display til hovedkortet gjennom VGA eller HDMI. En annen ting man må ta hensyn til i et dual boot system, som Deepthinker, er de andre partisjonene. Ubuntu vil i utgangspunktet oppdage eventuelle Ubuntu partisjoner på maskinen din og spørre om du vil modifisere dem med en installasjons-disk ovenfor å velge partisjon selv. Det er allikevel lurt å forsikre seg om hvilke partisjoner på maskinen som er hva, slik at man ikke tilfeldigvis sletter partisjoner som er i bruk hos andre filsystem, som windows.


GitHub:

Det er en del GitHub sider som må lese og klones for å få en PC klar til å jobbe med en Open Dynamic Robot. I utgangspunktet er det bare å følge installasjonsguiden på https://github.com/machines-in-motion/ubuntu_installation_scripts for å få lastet alt ned. Allikevel er dette ikke helt uproblematisk, da scriptet bruker "pip" for å laste ned software istedenfor "apt". Dette kan skape problemer relatert til hvor software lastes ned. Det er derfor anbefalt at man bruker sudo -H ./setup_ubuntu install all. Dette vil laste ned software som om du var root på maskinen, og ikke i egen bruker mapper.


Installasjon:

Etter å ha lastet ned all hjelpe-software kan du kjøre en apt update og apt upgrade. Dette vil oppdatere all software til nyeste versjon som er støttet av din maskin sin gitte Ubuntu versjon. Etter at dette er gjort er det anbefalt å starte om PCen, slik at installasjoner som venter på omstart kan ferdigstilles. Deretter er det eneste som gjenstår å laste ned rt_preempt patchen til kernel. Dette gjøres ved å gå inn i rt-preempt mappa, som er hetet fra github linken over, og navigere til undermappa for din Ubuntu installasjon. Deretter skal man kjøre bash enable_kernel_sources for å så kjøre ./install_rt_preempt. Selve installasjonsfila beskriver alle steg man skal gjøre fortløpende. Den viktigste punktet å få med seg er:

Please apply the following configurations in the next step:

General setup [Enter]
  Local version - append to kernel release: [Enter] Add '-preempt-rt'

General setup [Enter]
  Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
    Fully Preemptible Kernel (RT) [Enter] #Select"

Når dette er ferdig og alt har lastet ned som det skal så skal man få opp denne meldingen:

=========================================================================
===
=== Installation done. Please reboot and select new kernel from grub menu.
===
=== Make sure to add all uses with rt permissions to the 'realtime' group using:
===
=== sudo usermod -a -G realtime $USER
===
=========================================================================


Om man ikke har fått denne meldingen, så har setup feilet et sted. Da kan det være lurt å prøve å laste ned setup software på nytt. HUSK! "sudo -H ./setup_ubuntu install all". Man kan også kjøre en ny apt update og upgrade, husk å bruke sudo. Dersom man ikke har sudo-rettigheter så er det tilnærmet umulig å sette opp maskinen som ønsket.

CAN Deepthinker kommuniserer TI-kortene over kan. foreløpig bruker vi en can channel per ti-kort, men såvidt vi vet, er det ingen annen grunn til å gjøre det, en at man må endre koden på ti-kortene til å være addresserbare. Vi sender altså bare "broadcast"-meldinger. Deepthinker har to PCI-CAN kort fra peak-systems. Disse støtter CAN FD som er kjapt. (FD = Flexible Data rate). De er "downward compatible" med CAN2.0, som TI kortene støtter.

Peak PCI kort:https://www.peak-system.com/PCAN-PCI-Express-FD.414.0.html?&L=1

User manual:https://www.peak-system.com/produktcd/Pdf/English/PCAN-PCI-Express-FD_UserMan_eng.pdf

--Vi har installert Drivere for can kortet fra: https://www.peak-system.com/fileadmin/media/linux/index.htm trykk på "Download PCAN Driver Package" som er en rød knapp litt lenger nede. installasjonsinstruksjoner er i readme.txt--

OBS! For at installasjonen av drivere skal gå feilfritt må man kompilere driverene med kjernen som 'ikke' er REALTIME_PREEMPT. Dette er fordi realtime kjernen ikke har reglene som trengs for å kompilere driverene.

--Deepthinker har PCAN-Basic API installert. Sidene til Pwak PCI kortene har en downloads side, der denne er lastet ned. installasjonsinstrukser er i "readme.txt".--


Troubleshooting CAN Sjekk at drivere er på plass: grep PEAK_ /boot/config-`uname -r` Sjekk at van device er initialisert: lsmod | grep ^peak (ref https://www.peak-system.com/fileadmin/media/linux/index.htm)

Setup Python CAN Vi valgte å bruke python_can som hoved-interface mellom CAN kortene i Deepthinker og TI kortene. For å sette opp python_can måtte vi først laste det ned ved å følge installasjonsinstruksene på https://python-can.readthedocs.io/en/master/installation.html. Etter å ha lastet ned python_can med pip install python-can, så bør man sette opp en python_can config fil. Det finnes en rekke ting denne filen kan inneholde, men viktigst for dette prosjektet er hvilken CAN-driver og hvilken CAN-enhet som er default i et pythoncan program. Dette er gjort ved å lage en .can fil hvor du skriver.

[default]
interface = pcan
channel = PCAN_PCIBUS1

For informasjon om hva de forskjellige tingene betyr les her: https://python-can.readthedocs.io/en/master/interfaces/pcan.html.

'Teste CAN kommunikasjon Når man har satt opp CAN kommunikasjon på Deepthinker så kan man teste det ved hjelp av Python BrushLess Motor Controll demoene som du finner på github på https://github.com/open-dynamic-robot-initiative/python_blmc. Disse testene baserer seg på at man har satt opp en testbentk og flashet TI kortene med koden som er hentet fra Dual Motor Torque Controll repoet https://github.com/open-dynamic-robot-initiative/mw_dual_motor_torque_ctrl. I Dual Motor Torque Controll repoet er det også en setupguide for hva som kreves for å flashe TI kortene i README.md fila til repoet. Allikevel kan det være ekstra lurt å legge merke til at man må laste ned Code Composer Studio med C2000 prosessor support. Dette må gjøres på en annen maskin en Deepthinker, da an trenger Windows for å bruke CCS uten videre arbeid. Nedlastningslinken finner du på https://www.ti.com/tool/CCSTUDIO.

Personal tools
Front page