ಸಿಂಗಲ್-ಬೋರ್ಡ್‌ಗಾಗಿ ಉಬುಂಟು IMG ಚಿತ್ರದಲ್ಲಿ ROS ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ

ಪರಿಚಯ

ಇನ್ನೊಂದು ದಿನ, ನನ್ನ ಪ್ರಬಂಧದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವಾಗ, ROS ಈಗಾಗಲೇ ಸ್ಥಾಪಿಸಲಾದ ಏಕ-ಬೋರ್ಡ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಉಬುಂಟು ಚಿತ್ರವನ್ನು ರಚಿಸುವ ಅಗತ್ಯವನ್ನು ನಾನು ಎದುರಿಸಿದೆ (ರೋಬೋಟ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ - ರೋಬೋಟ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್) ಸಂಕ್ಷಿಪ್ತವಾಗಿ, ಡಿಪ್ಲೊಮಾ ರೋಬೋಟ್‌ಗಳ ಗುಂಪನ್ನು ನಿರ್ವಹಿಸಲು ಮೀಸಲಾಗಿರುತ್ತದೆ. ರೋಬೋಟ್‌ಗಳು ಎರಡು ಚಕ್ರಗಳು ಮತ್ತು ಮೂರು ರೇಂಜ್‌ಫೈಂಡರ್‌ಗಳನ್ನು ಹೊಂದಿವೆ. ಇಡೀ ವಿಷಯವನ್ನು ROS ನಿಂದ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ, ಇದು ODROID-C2 ಬೋರ್ಡ್‌ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ.

ಸಿಂಗಲ್-ಬೋರ್ಡ್‌ಗಾಗಿ ಉಬುಂಟು IMG ಚಿತ್ರದಲ್ಲಿ ROS ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ
ರೋಬೋಟ್ ಲೇಡಿಬಗ್. ಕಳಪೆ ಫೋಟೋ ಗುಣಮಟ್ಟಕ್ಕಾಗಿ ಕ್ಷಮಿಸಿ

ಪ್ರತಿ ರೋಬೋಟ್‌ನಲ್ಲಿ ಪ್ರತ್ಯೇಕವಾಗಿ ROS ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಮಯ ಅಥವಾ ಬಯಕೆ ಇರಲಿಲ್ಲ, ಮತ್ತು ಆದ್ದರಿಂದ ಈಗಾಗಲೇ ಸ್ಥಾಪಿಸಲಾದ ROS ನೊಂದಿಗೆ ಸಿಸ್ಟಮ್ ಇಮೇಜ್‌ನ ಅಗತ್ಯವಿತ್ತು. ಇಂಟರ್ನೆಟ್ ಬ್ರೌಸ್ ಮಾಡಿದ ನಂತರ, ಇದನ್ನು ಹೇಗೆ ಮಾಡಬಹುದೆಂದು ನಾನು ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇನೆ.
ಸಾಮಾನ್ಯವಾಗಿ, ಕಂಡುಬರುವ ಎಲ್ಲಾ ಪರಿಹಾರಗಳನ್ನು ಈ ಕೆಳಗಿನ ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು.

  1. ಸಿದ್ಧಪಡಿಸಿದ ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ವ್ಯವಸ್ಥೆಯಿಂದ ಚಿತ್ರವನ್ನು ರಚಿಸುವ ಪ್ರೋಗ್ರಾಂಗಳು (ಡಿಸ್ಟ್ರೋಶೇರ್ ಉಬುಂಟು ಇಮೇಜರ್, ಲಿನಕ್ಸ್ ಲೈವ್ ಕಿಟ್, ಲಿನಕ್ಸ್ ರೆಸ್ಪಿನ್, ಸಿಸ್ಟಮ್ಬ್ಯಾಕ್, ಇತ್ಯಾದಿ)
  2. ನಿಮ್ಮ ಸ್ವಂತ ಚಿತ್ರವನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಯೋಜನೆಗಳು (yocto, ಮೊದಲಿನಿಂದ ಲಿನಕ್ಸ್)
  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 ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ಉಬುಂಟು ಅನ್ನು ಹೊಂದಿರುತ್ತೀರಿ!

ಉಲ್ಲೇಖಗಳು:

  • ಲಿನಕ್ಸ್‌ನಲ್ಲಿ ಮೋಸ ಮಾಡುವುದು ಹೇಗೆ ಮತ್ತು ನಿಮಗೆ ಅದು ಏಕೆ ಬೇಕು ಎಂಬುದಕ್ಕೆ ಈ ವೀಡಿಯೊ ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡಿದೆ:



ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ