Ubuntu 20.04 ServerでWi-Fiを設定する

  1. 新しい設定ファイルの作成: **01-netcfg.yamlのような新しいファイルを/etc/netplan/**ディレクトリに作成します。

    sudo nano /etc/netplan/01-netcfg.yaml
    
  2. Wi-Fi設定の追加: 以下のようにWi-Fi設定をファイルに追加します。SSIDとパスワードは実際のものに置き換えてください。

    network:
      version: 2
      renderer: networkd
      wifis:
        wlan0:
          dhcp4: true
          optional: true
          access-points:
            "your_wifi_ssid":
              password: "your_wifi_password"
    
  3. 設定の適用: 新しい設定を適用するには、Netplanを実行します。

    sudo netplan apply
    
  4. ネットワーク接続の確認: 設定が正しく適用されたかを確認します。

    ip a
    

Ubuntu Server 22.04にデスクトップ環境を追加する

  1. パッケージリストの更新: 最新のパッケージ情報を取得します。

    sudo apt update
    
  2. GNOMEデスクトップのインストール: GNOMEデスクトップ環境と必要なコンポーネントをインストールします。

    sudo apt install ubuntu-desktop
    
  3. インストール後の再起動: インストールが完了したら、システムを再起動します。

    sudo reboot
    

Terminatorのインストール

sudo add-apt-repository ppa:mattrose/terminator
sudo apt update
sudo apt install terminator

SSHサービス

  1. SSHサーバのインストール: 以下のコマンドを使用して、SSHサーバ(openssh-server)をインストールします:

    sudo apt-get update
    sudo apt-get install openssh-server
    
  2. SSHサービスの状態確認: インストール後、SSHサービスが正しく実行されているかを確認します:

    sudo systemctl status ssh
    
  3. SSHサービスの起動: SSHサービスがまだ起動していない場合は、以下のコマンドで起動します:

    sudo systemctl start ssh
    
  4. 自動起動の有効化: システム起動時にSSHサービスが自動的に起動するように設定するには、以下のコマンドを使用します:

    sudo systemctl enable ssh
    

    ROS2(foxy)のインストール

    1. APTリポジトリの追加
    sudo apt update && sudo apt install curl gnupg2 lsb-release
    sudo curl -sSL <https://raw.githubusercontent.com/ros/rosdistro/master/ros.key>  -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] <http://packages.ros.org/ros2/ubuntu> $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
    1. インストール
    sudo apt update
    sudo apt install ros-foxy-desktop
    
    1. 環境設定
    echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
    1. 動作確認
    ros2 run demo_nodes_cpp talker
    ros2 run demo_nodes_py listener
    

    ROS2(humble)のインストール

    1. APTリポジトリの追加
    sudo apt update && sudo apt install curl gnupg lsb-release
    sudo curl -sSL <https://raw.githubusercontent.com/ros/rosdistro/master/ros.key> -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] <http://packages.ros.org/ros2/ubuntu> $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
    1. インストール
    sudo apt update
    sudo apt install ros-humble-desktop
    
    1. 環境設定
    echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
    source .bashrc
    
    1. 動作確認
    ros2 run demo_nodes_cpp talker
    ros2 run demo_nodes_py listener
    

    Turtlebot3パッケージ(foxy)のインストール

    sudo apt install -y python3-argcomplete python3-colcon-common-extensions python3-vcstool git
    sudo apt-get install ros-foxy-gazebo-* ros-foxy-cartographer ros-foxy-cartographer-ros \\
      ros-foxy-nav2-bringup ros-foxy-navigation2 ros-foxy-slam-toolbox
    
    sudo apt update
    sudo apt install libudev-dev
    
    mkdir -p ~/turtlebot3_ws2/src
    cd ~/turtlebot3_ws2/src/
    
    git clone -b foxy-devel <https://ghproxy.com/https://github.com/ROBOTIS-GIT/DynamixelSDK.git>
    git clone -b foxy-devel <https://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git>
    git clone -b foxy-devel <https://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3.git>
    git clone -b foxy-devel <https://ghproxy.com/https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git>
    git clone -b ros2-devel <https://ghproxy.com/https://github.com/ROBOTIS-GIT/ld08_driver.git>
    
    cd ~/turtlebot3_ws2
    colcon build --symlink-install
    echo 'source ~/turtlebot3_ws2/install/setup.bash' >> ~/.bashrc
    source ~/.bashrc
    

    Turtlebot3パッケージ(humble)のインストール

    sudo apt install ros-humble-joy ros-humble-teleop-twist-joy \\
    ros-humble-teleop-twist-keyboard ros-humble-laser-proc \\
    ros-humble-rgbd-launch ros-humble-rosserial-arduino \\
    ros-humble-rosserial-python ros-humble-rosserial-client \\
    ros-humble-rosserial-msgs ros-humble-amcl ros-humble-map-server \\
    ros-humble-move-base ros-humble-urdf ros-humble-xacro \\
    ros-humble-compressed-image-transport ros-humble-rqt* ros-humble-rviz \\
    ros-humble-gmapping ros-humble-navigation ros-humble-interactive-markers
    
    sudo apt update
    sudo apt install ros-humble-dynamixel-sdk
    sudo apt install ros-humble-turtlebot3-msgs
    sudo apt install ros-humble-turtlebot3
    
    mkdir -p ~/turtlebot3_ws2/src
    cd ~/turtlebot3_ws2/src/
    
    git clone -b humble-devel <https://github.com/ROBOTIS-GIT/DynamixelSDK.git>
    git clone -b humble-devel <https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git>
    git clone -b humble-devel <https://github.com/ROBOTIS-GIT/turtlebot3.git>
    
    cd ~/turtlebot3_ws2
    colcon build --symlink-install
    echo 'source ~/turtlebot3_ws2/install/setup.bash' >> ~/.bashrc
    source ~/.bashrc
    

    Turtlebot3の環境設置

    echo 'export LDS_MODEL=LDS-02 #LDS-01 or LDS-02' >> ~/.bashrc
    echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
    echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
    source ~/.bashrc
    

    地図作成(cartographer)

    ros2 launch turtlebot3_bringup robot.launch.py
    ros2 launch turtlebot3_cartographer cartographer.launch.py
    ros2 run turtlebot3_teleop teleop_keyboard
    

    地図作成(slam box)

    ros2 launch turtlebot3_bringup robot.launch.py
    ros2 launch slam_toolbox online_async_launch.py use_sim_time:=false
    ros2 launch nav2_bringup rviz_launch.py
    ros2 run turtlebot3_teleop teleop_keyboard
    

    地図保存

    ros2 run nav2_map_server map_saver_cli -f ~/map --ros-args -p save_map_timeout:=10000
    

    自律走行

    ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=$HOME/map.yaml