0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KakipからRoombaを制御する その2

0
Posted at

RoombaをROSから動かしてみる

ボードPC「Kakip」上のubuntuからシリアル通信でRoombaを動かすことに成功しましたので次はROSから動かしてみます
以下のサイトを参考にさせていただきました

ROS2のディストリビューションはJazzyですが、AutonomyLab/create_robotのhumbleブランチを使用しました。README.mdの通りでインストールできています。
ホストPC側から $ ros2 launch create_bringup create_2.launch でRoombaとの通信状態も監視できましたし、別ターミナルからもSSHでKakipにログインして
$ ros2 topic pub /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1}, angular: {z: 0.3}}'
でRoombaが少しずつ前進することを確認出来ました。

TurtleBot3のインストール

続いてホストPCからTurtleBot3を使ってキーボード操作で動かすことにトライします。
以下のサイトを参考にさせていただきました。

上のサイトの通りに実行したのですが、まだGazebo関連パッケージが不足していたようです

解決手順

1. 不足しているGazebo関連パッケージのインストール

新しいGazebo(Harmonic)と、ビルドに必要な開発用パッケージ(libgz-sim8-dev)を明示的にインストールします。

sudo apt update
sudo apt install ros-jazzy-ros-gz ros-jazzy-gz-sim-vendor libgz-sim8-dev

2. rosdepの更新と再実行(念のため)

rosdep update
cd ~/turtlebot3_jazzy_ws
rosdep install --from-paths src -y --ignore-src

3. 古いビルドキャッシュの削除

cd ~/turtlebot3_jazzy_ws
rm -rf build/ install/ log

4. 再ビルド

colcon build --symlink-install

5.「パッケージが見つかりません」となってしまいやり直し

Gazebo公式リポジトリはUbuntu 24.04の標準リポジトリやROS 2の標準リポジトリには含まれていないためGazeboの開発元であるOSRF(Open Source Robotics Foundation)の公式専用リポジトリをシステムに手動で追加します

# 1. 必要なツール(curlなど)をインストール
sudo apt install curl lsb-release gnupg -y

# 2. Gazebo公式の暗号キー(GPGキー)をダウンロード
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg

# 3. リポジトリをシステムのリストに追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt update
sudo apt install gz-harmonic libgz-sim8-dev ros-jazzy-ros-gz -y

6.古いビルドの削除と再ビルド

cd ~/turtlebot3_jazzy_ws

# 古いビルドファイルを完全に削除
rm -rf build/ install/ log/

# いざ、再ビルド!
colcon build --symlink-install

シミュレータ(Gazebo)の起動

無事にビルドが通りましたので、現在開いているターミナルで、環境を読み込んでから起動コマンドを打ちます。

# 1. ワークスペースの設定を読み込む
source /opt/ros/jazzy/setup.bash
source ~/turtlebot3_jazzy_ws/install/setup.bash

# 2. 動かすロボットのモデルを指定する(今回は定番のburger)
export TURTLEBOT3_MODEL=burger

# 3. シミュレータ環境を立ち上げる
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

キーボードで操縦する

Gazeboの画面が立ち上がり、小さなロボット(TurtleBot3 Burger)と障害物が表示されたら、**「新しいターミナル(2つ目の画面)」**を開いて以下のコマンドを実行します。

# 1. こちらのターミナルでも設定を読み込む
source /opt/ros/jazzy/setup.bash
source ~/turtlebot3_jazzy_ws/install/setup.bash
export TURTLEBOT3_MODEL=burger

# 2. キーボード操作ノードを起動
ros2 run turtlebot3_teleop teleop_keyboard

画面に w/x(前進/後退)、a/d(左右回転)、s(停止)といった操作案内のテキストが出ます。
このターミナルを選択した(アクティブにした)状態で w などを押すと、Gazebo上のTurtleBot3がスルスルと走り出しました!

でもRoombaは動かない

ですが、肝心のRoombaは動かなかったので、次回に続きます…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?