|
|
(39 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | = Install Ubuntu on NUC = | + | = Primary References = |
| | | |
− | * New NUC11PAHi5 | + | * [https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/ TB3 eManual Quick Start] from Robotis |
| + | ** Set tab to "Humble" |
| + | * [https://docs.ros.org/en/humble/index.html ROS 2 Humble Documentation] |
| | | |
− | * Linux 22.04
| + | == Goal == |
| | | |
− | * [https://ubuntu.com/core/docs/install-nuc Installing Ubuntu Core on a NUC]
| + | The goal is to but as much of the intelligence on the robot as is reasonable. The PC and SBC (Single Board Computer) are combined in a NUC. The installation has been adjusted to accommodate. |
| | | |
− | == On Hood - NUC == | + | == Turtlebot3 Overview == |
| | | |
− | === download Linux ===
| + | * [https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/ Overview] |
| | | |
− | * Link from above
| + | = Install Ubuntu on NUC Named adams = |
− | * 22.04.4 LTS
| + | |
− | ** rw------- 1 eepp eepp 629882880 Apr 16 13:57 ubuntu-22.a5doQ9x1.04.4-desktop-amd64.iso.part
| + | |
| | | |
− | ERROR
| + | * [[Turtlebot3 Waffle NUC Install ubuntu jammy 22.04 20240422]] |
− | eepp@sisters:~$ sudo apt-get install MultiWriter
| + | * [[Turtlebot3 Waffle NUC Maintenance 20240617]] |
− | Reading package lists... Done
| + | |
− | Building dependency tree
| + | |
− | Reading state information... Done
| + | |
− | E: Unable to locate package MultiWriter
| + | |
− | eepp@sisters:~$
| + | |
| | | |
− | <pre>
| + | = Install ROS2 on NUC Named adams = |
− | eepp@hood:~$ sudo apt install gnome-multi-writer
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree
| + | |
− | Reading state information... Done
| + | |
− | The following NEW packages will be installed:
| + | |
− | gnome-multi-writer
| + | |
− | 0 upgraded, 1 newly installed, 0 to remove and 594 not upgraded.
| + | |
− | Need to get 135 kB of archives.
| + | |
− | After this operation, 572 kB of additional disk space will be used.
| + | |
− | Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gnome-multi-writer amd64 3.32.1-1 [135 kB]
| + | |
− | Fetched 135 kB in 1s (255 kB/s)
| + | |
− | Selecting previously unselected package gnome-multi-writer.
| + | |
− | (Reading database ... 291963 files and directories currently installed.)
| + | |
− | Preparing to unpack .../gnome-multi-writer_3.32.1-1_amd64.deb ...
| + | |
− | Unpacking gnome-multi-writer (3.32.1-1) ...
| + | |
− | Setting up gnome-multi-writer (3.32.1-1) ...
| + | |
− | Processing triggers for mime-support (3.64ubuntu1) ...
| + | |
− | Processing triggers for hicolor-icon-theme (0.17-2) ...
| + | |
− | Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
| + | |
− | Processing triggers for libglib2.0-0:amd64 (2.64.6-1~ubuntu20.04.6) ...
| + | |
− | Processing triggers for man-db (2.9.1-1) ...
| + | |
− | Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
| + | |
− | eepp@hood:~$
| + | |
− | </pre>
| + | |
| | | |
− | === Copy to USB ===
| + | * [[Turtlebot3 Waffle NUC Install ROS2 Humble 20240422]] |
− | * gnome-multi-writer & | + | * [[Turtlebot3 Waffle NUC Humble Configure 20240426]] |
| + | * [[Turtlebot3 Waffle NUC Humble Testing 20240520]] |
| + | * TBD [[Image Backup]] |
| | | |
− | == On New NUC == | + | = ROS 2 Build System = |
| | | |
− | === Boot Ubuntu Installer ===
| + | * [[ROS 2 Build System 20240524]] |
| | | |
− | * F10 on boot
| + | = Managing URDF Files = |
− | * Chose 4th time in the list with name xxx
| + | |
| | | |
− | === Pick Ubuntu Install Options ===
| + | * [[Turtlebot3 Waffle Nuc HW 20240623]] |
| + | * [[Turtlebot3 URDF Editing 20240524]] |
| + | * [[Turtlebot3 Waffle Nuc URDF 20240623]] |
| | | |
− | * Mostly defaults
| + | = Power Management = |
| | | |
− | = Install ROS 2.0 on adams =
| + | * [https://www.intel.com/content/www/us/en/support/articles/000007053/intel-nuc/intel-nuc-kits.html Power Adapter and Power Cord Specificiaton] |
− | * SBC Setup | + | * [[NUC_D54250WYK]] |
| | | |
| + | = Bringup Goal = |
| | | |
− | * * [https://emanual.robotis.com/docs/en/platform/turtlebot3/sbc_setup/#sbc-setup
| + | * [https://events.vtools.ieee.org/m/265434 TURTLEBOT3 BURGER BUILD 02 Build Introduction] |
− | * 12. Install ROS2 Humble Hawksbill
| + | |
| | | |
| + | = Adams SW Installations = |
| | | |
− | * [https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html Ubuntu Install Debians] | + | * [[Adams SW Installations]] |
− | | + | |
− | == Set Locales ==
| + | |
− | | + | |
− | <pre>
| + | |
− | eepp@adams:~/notes$ locale
| + | |
− | LANG=en_US.UTF-8
| + | |
− | LANGUAGE=
| + | |
− | LC_CTYPE="en_US.UTF-8"
| + | |
− | LC_NUMERIC="en_US.UTF-8"
| + | |
− | LC_TIME="en_US.UTF-8"
| + | |
− | LC_COLLATE="en_US.UTF-8"
| + | |
− | LC_MONETARY="en_US.UTF-8"
| + | |
− | LC_MESSAGES="en_US.UTF-8"
| + | |
− | LC_PAPER="en_US.UTF-8"
| + | |
− | LC_NAME="en_US.UTF-8"
| + | |
− | LC_ADDRESS="en_US.UTF-8"
| + | |
− | LC_TELEPHONE="en_US.UTF-8"
| + | |
− | LC_MEASUREMENT="en_US.UTF-8"
| + | |
− | LC_IDENTIFICATION="en_US.UTF-8"
| + | |
− | LC_ALL=
| + | |
− | eepp@adams:~/notes$
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <pre>
| + | |
− | epp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt update && sudo apt install locales
| + | |
− | Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
| + | |
− | Hit:2 http://us.archive.ubuntu.com/ubuntu jammy InRelease
| + | |
− | Get:3 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
| + | |
− | Hit:4 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease
| + | |
− | Get:5 http://us.archive.ubuntu.com/ubuntu jammy-updates/main i386 Packages [611 kB]
| + | |
− | Get:6 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1,562 kB]
| + | |
− | Get:7 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,075 kB]
| + | |
− | Get:8 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe i386 Packages [699 kB]
| + | |
− | Fetched 4,176 kB in 2s (2,656 kB/s)
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | 5 packages can be upgraded. Run 'apt list --upgradable' to see them.
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | locales is already the newest version (2.35-0ubuntu3.6).
| + | |
− | locales set to manually installed.
| + | |
− | The following packages were automatically installed and are no longer required:
| + | |
− | libwpe-1.0-1 libwpebackend-fdo-1.0-1
| + | |
− | Use 'sudo apt autoremove' to remove them.
| + | |
− | 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo locale-gen en_US en_US.UTF-8
| + | |
− | Generating locales (this might take a while)...
| + | |
− | en_US.ISO-8859-1... done
| + | |
− | en_US.UTF-8... done
| + | |
− | Generation complete.
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ export LANG=en_US.UTF-8
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ locale
| + | |
− | LANG=en_US.UTF-8
| + | |
− | LANGUAGE=
| + | |
− | LC_CTYPE="en_US.UTF-8"
| + | |
− | LC_NUMERIC="en_US.UTF-8"
| + | |
− | LC_TIME="en_US.UTF-8"
| + | |
− | LC_COLLATE="en_US.UTF-8"
| + | |
− | LC_MONETARY="en_US.UTF-8"
| + | |
− | LC_MESSAGES="en_US.UTF-8"
| + | |
− | LC_PAPER="en_US.UTF-8"
| + | |
− | LC_NAME="en_US.UTF-8"
| + | |
− | LC_ADDRESS="en_US.UTF-8"
| + | |
− | LC_TELEPHONE="en_US.UTF-8"
| + | |
− | LC_MEASUREMENT="en_US.UTF-8"
| + | |
− | LC_IDENTIFICATION="en_US.UTF-8"
| + | |
− | LC_ALL=
| + | |
− | eepp@adams:~/notes$
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ==Setup Sources ==
| + | |
− | <pre>
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt install software-properties-common
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | software-properties-common is already the newest version (0.99.22.9).
| + | |
− | software-properties-common set to manually installed.
| + | |
− | The following packages were automatically installed and are no longer required:
| + | |
− | libwpe-1.0-1 libwpebackend-fdo-1.0-1
| + | |
− | Use 'sudo apt autoremove' to remove them.
| + | |
− | 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo add-apt-repository universe
| + | |
− | Adding component(s) 'universe' to all repositories.
| + | |
− | Press [ENTER] to continue or Ctrl-c to cancel.
| + | |
− | Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
| + | |
− | Hit:2 http://us.archive.ubuntu.com/ubuntu jammy InRelease
| + | |
− | Hit:3 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease
| + | |
− | Hit:4 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease
| + | |
− | Reading package lists... Done
| + | |
− | eepp@adams:~/notes$
| + | |
− | | + | |
− | | + | |
− | | + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt update && sudo apt install curl -y
| + | |
− | Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
| + | |
− | Hit:2 http://us.archive.ubuntu.com/ubuntu jammy InRelease
| + | |
− | Hit:3 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease
| + | |
− | Hit:4 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | 5 packages can be upgraded. Run 'apt list --upgradable' to see them.
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | The following packages were automatically installed and are no longer required:
| + | |
− | libwpe-1.0-1 libwpebackend-fdo-1.0-1
| + | |
− | Use 'sudo apt autoremove' to remove them.
| + | |
− | The following NEW packages will be installed:
| + | |
− | curl
| + | |
− | 0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
| + | |
− | Need to get 194 kB of archives.
| + | |
− | After this operation, 454 kB of additional disk space will be used.
| + | |
− | Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 curl amd64 7.81.0-1ubuntu1.16 [194 kB]
| + | |
− | Fetched 194 kB in 1s (376 kB/s)
| + | |
− | Selecting previously unselected package curl.
| + | |
− | (Reading database ... 205154 files and directories currently installed.)
| + | |
− | Preparing to unpack .../curl_7.81.0-1ubuntu1.16_amd64.deb ...
| + | |
− | Unpacking curl (7.81.0-1ubuntu1.16) ...
| + | |
− | Setting up curl (7.81.0-1ubuntu1.16) ...
| + | |
− | Processing triggers for man-db (2.10.2-1) ...
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | <pre>
| + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
| + | |
− | eepp@adams:~/notes$
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | ==Install ROS 2 Packages==
| + | |
− | | + | |
− | | + | |
− | <pre>
| + | |
− | epp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt update
| + | |
− | Hit:1 http://us.archive.ubuntu.com/ubuntu jammy InRelease
| + | |
− | Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
| + | |
− | Hit:3 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease
| + | |
− | Get:4 http://packages.ros.org/ros2/ubuntu jammy InRelease [4,682 B]
| + | |
− | Hit:5 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease
| + | |
− | Get:6 http://packages.ros.org/ros2/ubuntu jammy/main amd64 Packages [1,481 kB]
| + | |
− | Fetched 1,485 kB in 1s (1,107 kB/s)
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | 5 packages can be upgraded. Run 'apt list --upgradable' to see them.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt upgrade
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | Calculating upgrade... Done
| + | |
− | The following packages were automatically installed and are no longer required:
| + | |
− | libwpe-1.0-1 libwpebackend-fdo-1.0-1
| + | |
− | Use 'sudo apt autoremove' to remove them.
| + | |
− | The following packages have been kept back:
| + | |
− | python3-update-manager ubuntu-advantage-tools ubuntu-pro-client-l10n
| + | |
− | update-manager update-manager-core
| + | |
− | 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
| + | |
− | eepp@adams:~/notes$
| + | |
− | | + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | [[InstallROS2Packages20240416]]
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <pre>
| + | |
− | | + | |
− | eepp@adams:~/notes$
| + | |
− | eepp@adams:~/notes$ sudo apt install ros-humble-ros-base
| + | |
− | [sudo] password for eepp:
| + | |
− | Reading package lists... Done
| + | |
− | Building dependency tree... Done
| + | |
− | Reading state information... Done
| + | |
− | ros-humble-ros-base is already the newest version (0.10.0-1jammy.20240217.113903).
| + | |
− | ros-humble-ros-base set to manually installed.
| + | |
− | The following packages were automatically installed and are no longer required:
| + | |
− | libwpe-1.0-1 libwpebackend-fdo-1.0-1
| + | |
− | Use 'sudo apt autoremove' to remove them.
| + | |
− | 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
| + | |
− | eepp@adams:~/notes$
| + | |
− | | + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[InstallROS2PackagesPart3-20240416]]
| + | |
− | | + | |
− | == Environment Setup ==
| + | |
− | | + | |
− | * See this section in
| + | |
− | * [https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html Ubuntu Install Debians]
| + | |
− | | + | |
− | | + | |
− | eepp@adams:~$ emacs ~/.bashrc &
| + | |
− | | + | |
− | * add at the end
| + | |
− | // Setup ROS Humble
| + | |
− | source /opt/ros/humble/setup.bash
| + | |
− | | + | |
− | == Example Talker Listener ==
| + | |
− | | + | |
− | '''TERMINAL 1'''
| + | |
− | | + | |
− | <pre>
| + | |
− | eepp@adams:~$ ros2 run demo_nodes_cpp talker
| + | |
− | [INFO] [1713744119.577519274] [talker]: Publishing: 'Hello World: 1'
| + | |
− | [INFO] [1713744120.577533489] [talker]: Publishing: 'Hello World: 2'
| + | |
− | [INFO] [1713744121.577567785] [talker]: Publishing: 'Hello World: 3'
| + | |
− | [INFO] [1713744122.577595544] [talker]: Publishing: 'Hello World: 4'
| + | |
− | [INFO] [1713744123.577632438] [talker]: Publishing: 'Hello World: 5'
| + | |
− | [INFO] [1713744124.577659430] [talker]: Publishing: 'Hello World: 6'
| + | |
− | [INFO] [1713744125.577675939] [talker]: Publishing: 'Hello World: 7'
| + | |
− | [INFO] [1713744126.577718998] [talker]: Publishing: 'Hello World: 8'
| + | |
− | [INFO] [1713744127.577753904] [talker]: Publishing: 'Hello World: 9'
| + | |
− | [INFO] [1713744128.577793539] [talker]: Publishing: 'Hello World: 10'
| + | |
− | [INFO] [1713744129.577829964] [talker]: Publishing: 'Hello World: 11'
| + | |
− | [INFO] [1713744130.577790922] [talker]: Publishing: 'Hello World: 12'
| + | |
− | [INFO] [1713744131.577873203] [talker]: Publishing: 'Hello World: 13'
| + | |
− | [INFO] [1713744132.577905447] [talker]: Publishing: 'Hello World: 14'
| + | |
− | [INFO] [1713744133.577939617] [talker]: Publishing: 'Hello World: 15'
| + | |
− | ^C[INFO] [1713744133.625163376] [rclcpp]: signal_handler(signum=2)
| + | |
− | eepp@adams:~$
| + | |
− | </pre>
| + | |
− | | + | |
− | '''TERMINAL 2'''
| + | |
− | | + | |
− | <pre>
| + | |
− | eepp@adams:~$ ros2 run demo_nodes_py listener
| + | |
− | [INFO] [1713744125.584516000] [listener]: I heard: [Hello World: 7]
| + | |
− | [INFO] [1713744126.578340393] [listener]: I heard: [Hello World: 8]
| + | |
− | [INFO] [1713744127.578443721] [listener]: I heard: [Hello World: 9]
| + | |
− | [INFO] [1713744128.578487730] [listener]: I heard: [Hello World: 10]
| + | |
− | [INFO] [1713744129.578498026] [listener]: I heard: [Hello World: 11]
| + | |
− | ^Ceepp@adams:~$
| + | |
− | </pre>
| + | |
− | | + | |
− | == Copied Navigation Scripts from Hood ==
| + | |
− | | + | |
− | 84 mkdir scripts
| + | |
− | 87 cd scripts/
| + | |
− | 93 scp 10.0.0.111:scripts/make_map.sh .
| + | |
− | 94 scp 10.0.0.111:scripts/nav2.sh .
| + | |
− | 95 scp 10.0.0.111:scripts/keyboard_teleop.sh .
| + | |
− | 96 scp 10.0.0.111:scripts/keyboard_save_map.sh .
| + | |
− | 97 scp 10.0.0.111:scripts/save_map.sh .
| + | |
− | 98 ls
| + | |
− | 99 ll
| + | |
The goal is to but as much of the intelligence on the robot as is reasonable. The PC and SBC (Single Board Computer) are combined in a NUC. The installation has been adjusted to accommodate.