Difference between revisions of "Turtlebot3 Waffle NUC Install ROS2 Humble 20240422"

From wikidb
Jump to: navigation, search
(Install Dependent ROS Packages)
(Install Dependent ROS Packages)
Line 272: Line 272:
 
== Install Dependent ROS Packages ==
 
== Install Dependent ROS Packages ==
  
* Skip to section 3.1.3 in the Robotis e-Manual. Sections 3.1.1 Download and Install Ubuntu on PC and 3.1.2 Install ROS 2 on Remote PC where done in the SBC section above,
+
* Skip to section 3.1.3 in the Robotis e-Manual. Sections 3.1.1 "''Download and Install Ubuntu on PC''" and 3.1.2 "''Install ROS 2 on Remote PC''" where done in the SBC section above,
  
 
=== Gazebo ===
 
=== Gazebo ===

Revision as of 12:04, 18 May 2024

Configure the adams (NUC)

The adams NUC is a combination of the SBC and Remote PC. This page integrates these two camabilitiews.

SBC Capabilities Setup

SBC Primary References

The primary reference is on ros.org. These are the capabilities that were installed on the Raspberry Pi 4 in the original Waffle configuration. This is how I got to the correct link.

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$ 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$ 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$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

 eepp@adams:~/notes$ export LANG=en_US.UTF-8

 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=

Setup Sources

Ensure that the Ubuntu Universe repositoyr is enabled

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

Add the ROS 2 GPG key

 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$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

Add the repository to my source list

 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

Install ROS 2 Packages

Update and Upgrade

 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$ 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.

Install Humble ROS, RViz, demos, tutorials

 sudo apt install ros-humble-desktop

Install ROS Base - Bar Bones

 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.

Install development tools: Compiler, etc

 sudo apt install ros-dev-tools

Environment Setup

Add sourcing the Humble environment to our current environmnet

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

Example Talker Listener

Do a signs of life test of ROS 2 Humble by running the Talker/Listener demo.

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

Test passed

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

Remote PC Capabilities Setup

Remote PC Primary References

The primary reference is on ros.org. These are the capabilities that were installed on the robot laptop in the original Waffle configuration.

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

Install Dependent ROS Packages

  • Skip to section 3.1.3 in the Robotis e-Manual. Sections 3.1.1 "Download and Install Ubuntu on PC" and 3.1.2 "Install ROS 2 on Remote PC" where done in the SBC section above,

Gazebo

Cartographer

Navagation2

Turtlebot3

Environment

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