Turtlebot 3 Waffle NUC Humble NUC 20240422

From wikidb
Jump to: navigation, search

Reforences

Robotis


Install Ubuntu on NUC

  • New NUC11PAHi5
  • Linux 22.04

On Hood - NUC

download Linux

  • Link from above
  • 22.04.4 LTS
    • rw------- 1 eepp eepp 629882880 Apr 16 13:57 ubuntu-22.a5doQ9x1.04.4-desktop-amd64.iso.part

ERROR

 eepp@sisters:~$ sudo apt-get install MultiWriter
     Reading package lists... Done
     Building dependency tree       
     Reading state information... Done
     E: Unable to locate package MultiWriter
 eepp@sisters:~$
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:~$ 

Copy to USB

  • gnome-multi-writer &

On New NUC

Boot Ubuntu Installer

  • F10 on boot
  • Chose 4th time in the list with name xxx

Pick Ubuntu Install Options

  • Mostly defaults

Install ROS 2.0 on adams

  • SBC Setup



Set Locales

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$


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$ 


Setup Sources

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$ 



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$ 


Install ROS 2 Packages

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$ 


InstallROS2Packages20240416



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$ 


InstallROS2PackagesPart3-20240416

Environment Setup


  eepp@adams:~$ emacs ~/.bashrc &
  • add at the end
 // Setup ROS Humble
 source /opt/ros/humble/setup.bash

Example Talker Listener

TERMINAL 1

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:~$ 

TERMINAL 2

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:~$ 

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

PC Setup

  • PC Setup
  • make sure "Humble" tab is selected


Install Dependent ROS Packages

Gazebo

Cartographer

Navagation2

Turtlebot3

Environment

 $ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
 $ source ~/.bashrc