సింగిల్-బోర్డ్ కోసం ఉబుంటు IMG ఇమేజ్‌లో ROSను ఇన్‌స్టాల్ చేస్తోంది

పరిచయం

మరొక రోజు, నా థీసిస్‌పై పని చేస్తున్నప్పుడు, ROS ఇప్పటికే ఇన్‌స్టాల్ చేయబడిన సింగిల్-బోర్డ్ ప్లాట్‌ఫారమ్ కోసం ఉబుంటు ఇమేజ్‌ని సృష్టించాల్సిన అవసరాన్ని నేను ఎదుర్కొన్నాను (రోబోట్ ఆపరేటింగ్ సిస్టమ్ - రోబోట్ ఆపరేటింగ్ సిస్టమ్) సంక్షిప్తంగా, డిప్లొమా రోబోట్‌ల సమూహాన్ని నిర్వహించడానికి అంకితం చేయబడింది. రోబోలు రెండు చక్రాలు మరియు మూడు రేంజ్ ఫైండర్లతో అమర్చబడి ఉంటాయి. మొత్తం విషయం ROS నుండి నియంత్రించబడుతుంది, ఇది ODROID-C2 బోర్డ్‌లో నడుస్తుంది.

సింగిల్-బోర్డ్ కోసం ఉబుంటు IMG ఇమేజ్‌లో ROSను ఇన్‌స్టాల్ చేస్తోంది
రోబోట్ లేడీబగ్. ఫోటో నాణ్యత తక్కువగా ఉన్నందుకు క్షమించండి

ప్రతి రోబోట్‌లో వ్యక్తిగతంగా ROSని ఇన్‌స్టాల్ చేయడానికి సమయం లేదా కోరిక లేదు, అందువల్ల ROS ఇప్పటికే ఇన్‌స్టాల్ చేయబడిన సిస్టమ్ ఇమేజ్ అవసరం. ఇంటర్నెట్‌ను బ్రౌజ్ చేసిన తర్వాత, దీన్ని ఎలా చేయవచ్చో నేను అనేక విధానాలను కనుగొన్నాను.
సాధారణంగా, కనుగొనబడిన అన్ని పరిష్కారాలను క్రింది సమూహాలుగా విభజించవచ్చు.

  1. రెడీమేడ్ మరియు కాన్ఫిగర్ చేయబడిన సిస్టమ్ నుండి చిత్రాన్ని సృష్టించే ప్రోగ్రామ్‌లు (డిస్ట్రోషేర్ ఉబుంటు ఇమేజర్, linux లైవ్ కిట్, linux రెస్పిన్, సిస్టమ్‌బ్యాక్, మొదలైనవి)
  2. మీ స్వంత చిత్రాన్ని రూపొందించడానికి మిమ్మల్ని అనుమతించే ప్రాజెక్ట్‌లు (యోక్టో, మొదటి నుండి linux)
  3. చిత్రాన్ని మీరే సమీకరించడం (ప్రత్యక్ష CD అనుకూలీకరణ и రష్యన్ సమానమైనది, ఒక ప్లస్ హబ్రేపై కథనం)

మొదటి సమూహం నుండి పరిష్కారాలను ఉపయోగించడం అనేది సరళమైన మరియు అత్యంత ఆకర్షణీయమైన ఎంపికగా అనిపించింది, కానీ నేను ODROID కోసం లైవ్ సిస్టమ్ ఇమేజ్‌ని సృష్టించలేకపోయాను. చాలా ఎక్కువ ఎంట్రీ థ్రెషోల్డ్ కారణంగా రెండవ సమూహం యొక్క పరిష్కారాలు కూడా నాకు సరిపోలేదు. అందుబాటులో ఉన్న ట్యుటోరియల్స్ ప్రకారం మాన్యువల్ అసెంబ్లీ కూడా తగినది కాదు, ఎందుకంటే... నా ఇమేజ్‌కి కంప్రెస్డ్ ఫైల్ సిస్టమ్ లేదు.
ఫలితంగా, నేను chroot గురించి ఒక వీడియోను చూశాను (chroot - రూట్ మార్చు, పోస్ట్ చివరిలో వీడియోకి లింక్) మరియు దాని సామర్థ్యాలు, దానిని ఉపయోగించాలని నిర్ణయించారు. తర్వాత, రోబోటిక్స్ డెవలపర్‌ల కోసం ఉబుంటును అనుకూలీకరించడానికి నా ప్రత్యేక సందర్భాన్ని వివరిస్తాను.

ప్రారంభ డేటా:

  • మొత్తం ఇమేజ్ సవరణ ప్రక్రియ (balenaEtcherని ఉపయోగించి SD కార్డ్‌కి వ్రాయడం మినహా) ఉబుంటు 18.04 ఆపరేటింగ్ సిస్టమ్‌లో నిర్వహించబడింది.
  • నేను అసెంబ్లీని సవరించిన ఆపరేటింగ్ సిస్టమ్ ఉబుంటు 18.04.3 మేట్ డెస్క్‌టాప్ వెర్షన్.
  • అసెంబుల్డ్ సిస్టమ్ పని చేసే యంత్రం ODROID-C2.

చిత్రాన్ని సిద్ధం చేస్తోంది

  1. ODROID కోసం ఉబుంటు చిత్రాన్ని డౌన్‌లోడ్ చేయండి అధికారిక సైట్

  2. ఆర్కైవ్‌ను అన్‌ప్యాక్ చేస్తోంది

    unxz –kv <файл архива с образом>

  3. మేము చిత్రాన్ని మౌంట్ చేసే డైరెక్టరీని సృష్టించండి

    mkdir mnt

  4. ఫైల్ సిస్టమ్ ఉన్న విభజనను నిర్ణయించండి

    file <файл образа>

    మేము ext2, ext3 లేదా ext4 ఫార్మాట్‌లో ఫైల్ సిస్టమ్‌తో విభజన కోసం చూస్తున్నాము. మాకు విభాగం ప్రారంభ చిరునామా అవసరం (స్క్రీన్‌పై ఎరుపు రంగులో హైలైట్ చేయబడింది):

    సింగిల్-బోర్డ్ కోసం ఉబుంటు IMG ఇమేజ్‌లో ROSను ఇన్‌స్టాల్ చేస్తోంది

    గమనించండి. ఫైల్ సిస్టమ్ యొక్క స్థానాన్ని కూడా యుటిలిటీని ఉపయోగించి చూడవచ్చు parted.

  5. చిత్రాన్ని మౌంట్ చేస్తోంది

    sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/

    మనకు అవసరమైన విభాగం బ్లాక్ 264192తో ప్రారంభమవుతుంది (మీ సంఖ్యలు మారవచ్చు), ఒక బ్లాక్ పరిమాణం 512 బైట్లు, బైట్‌లలో ఇండెంటేషన్ పొందడానికి వాటిని గుణించండి.

  6. మౌంటెడ్ సిస్టమ్‌తో ఫోల్డర్‌కి వెళ్లి దానిలో హ్యాంగ్ అవుట్ చేయండి

    cd mnt/
    sudo chroot ~/livecd/mnt/ bin/sh

    ~/livecd/mnt — మౌంటెడ్ సిస్టమ్‌తో డైరెక్టరీకి పూర్తి మార్గం
    బిన్/ష - షెల్ (దీనితో కూడా భర్తీ చేయవచ్చు బిన్/బాష్)
    ఇప్పుడు మీరు అవసరమైన ప్యాకేజీలు మరియు అప్లికేషన్‌లను ఇన్‌స్టాల్ చేయడం ప్రారంభించవచ్చు.

ROSని ఇన్‌స్టాల్ చేస్తోంది

నేను దాని ప్రకారం ROS (ROS మెలోడిక్) యొక్క తాజా వెర్షన్‌ను ఇన్‌స్టాల్ చేసాను అధికారిక ట్యుటోరియల్.

  1. ప్యాకేజీల జాబితాను నవీకరిస్తోంది

    sudo apt-get update

    ఇక్కడే నాకు లోపం వచ్చింది:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>

    ప్యాకేజీ సంతకం కీ గడువు ముగియడమే దీనికి కారణం. కీలను అప్‌డేట్ చేయడానికి, టైప్ చేయండి:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9

  2. ROSని ఇన్‌స్టాల్ చేయడానికి సిస్టమ్‌ను సిద్ధం చేస్తోంది

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

    sudo apt update

  3. ROSని ఇన్‌స్టాల్ చేస్తోంది
    దురదృష్టవశాత్తూ, నేను ROS డెస్క్‌టాప్ వెర్షన్‌ను ఇన్‌స్టాల్ చేయలేకపోయాను, కాబట్టి నేను ప్రాథమిక ప్యాకేజీలను మాత్రమే ఇన్‌స్టాల్ చేసాను:

    sudo apt install ros-melodic-ros-base
    apt search ros-melodic

    గమనిక 1 ఇన్‌స్టాలేషన్ ప్రక్రియలో కొన్నిసార్లు లోపం సంభవించింది:

    dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device

    ఇది సముచిత యుటిలిటీని ఉపయోగించి కాష్‌ను క్లియర్ చేయడం ద్వారా పరిష్కరించబడింది:

    sudo apt-get clean; sudo apt-get autoclean

    గమనిక 2 ఇన్‌స్టాలేషన్ తర్వాత, ఆదేశాన్ని ఉపయోగించి మూలం:

    source /opt/ros/melodic/setup.bash

    అది పని చేయదు, ఎందుకంటే మేము బాష్‌ని అమలు చేయలేదు, కనుక దీనిని టెర్మినల్‌లో టైప్ చేయవలసిన అవసరం లేదు.

  4. అవసరమైన డిపెండెన్సీలను ఇన్‌స్టాల్ చేస్తోంది

    sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

    sudo apt install python-rosdep

    sudo rosdep init
    rosdep update

  5. యాక్సెస్ హక్కులను సెటప్ చేస్తోంది
    మేము లాగిన్ అయ్యాము మరియు వాస్తవానికి, అసెంబుల్ చేయబడిన సిస్టమ్ యొక్క రూట్ తరపున అన్ని చర్యలను నిర్వహిస్తాము కాబట్టి, ROS సూపర్యూజర్ హక్కులతో మాత్రమే ప్రారంభించబడుతుంది.
    సుడో లేకుండా రోస్కోర్‌ని అమలు చేయడానికి ప్రయత్నిస్తున్నప్పుడు, లోపం ఏర్పడుతుంది:

    Traceback (most recent call last): File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'

    లోపం సంభవించకుండా నిరోధించడానికి, ROS వినియోగదారు హోమ్ డైరెక్టరీకి యాక్సెస్ హక్కులను పునరావృతంగా మారుద్దాం. దీన్ని చేయడానికి మేము టైప్ చేస్తాము:

    sudo rosdep fix-permissions

  6. rviz మరియు rqt ప్యాకేజీల అదనపు సంస్థాపన

    sudo apt-get install ros-melodic-rqt ros-melodic-rviz

తుది మెరుగులు దిద్దారు

  1. chroot నుండి నిష్క్రమించు:
    exit
  2. చిత్రాన్ని అన్‌మౌంట్ చేయండి
    cd ..
    sudo umount mnt/
  3. సిస్టమ్ ఇమేజ్‌ని ఆర్కైవ్‌లో ప్యాక్ చేద్దాం
    xz –ckv1 <файл образа>

అన్నీ! ఇప్పుడు సహాయంతో బాలెనా ఎచ్చర్ మీరు సిస్టమ్ ఇమేజ్‌ను SD కార్డ్‌కి బర్న్ చేయవచ్చు, దానిని ODROID-C2లో చొప్పించవచ్చు మరియు మీరు ROSతో ఉబుంటును ఇన్‌స్టాల్ చేయవచ్చు!

సూచనలు:

  • Linuxలో ఎలా మోసం చేయాలి మరియు మీకు ఇది ఎందుకు అవసరం అనే విషయంలో ఈ వీడియో చాలా సహాయపడింది:



మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి