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?

CuGo V4.5 をROS 2 Jazzyで動かすまで

0
Posted at

CuGo V4.5 をROS 2 Jazzyで動かすまで

セットアップから /cmd_vel 送信まで完全ガイド

この記事は、CuboRex製クローラロボット開発プラットフォーム CuGo V4.5 の公式ROSパッケージを使って、Ubuntu 24.04 + ROS 2 Jazzy環境でロボットを動かすまでの手順をまとめたものです。

はじめに

AGVや自律移動ロボットの研究・開発を始めるとき、最初の壁は「足回りの実装」です。モータドライバの選定、オドメトリの計算、ROSトピックとのブリッジ……これらをゼロから作るのは時間がかかります。

CuGo V4.5 は、その「足回り」をまるごと提供するクローラロボット開発プラットフォームです。公式の cugo_v4.5_ros2_control パッケージを使えば、セットアップから /cmd_vel で動かすまで短時間で完結します。

CuGo V4.5 とは

項目 仕様
最高速度 約4.4 km/h(出荷時3.6 km/h、変更可)
可搬重量 最大80 kg
防水等級 IP54相当
通信 USB / UART / Bluetooth / WiFi
対応フレームワーク ROS 2 Jazzy、Arduino
価格 990,000円(税込)

前モデルのCuGo V4と比べて最高速度が約2.4倍に向上し、フラット荷台・外付けバッテリー対応・無線ROS通信対応が新たに追加されています。

🔗 製品詳細・購入: https://cuborex.com/product/?id=33

必要なもの

  • CuGo V4.5 本体
  • Ubuntu 24.04 LTS が動作するPC(Jetsonなど)
  • Arduino IDEが使用できるPC(Ubuntu PCでも可)
  • ROS 2 Jazzy Jalisco
  • CuGo V4.5 用プロポ(製品に付属)
  • USBケーブル(製品に付属)

Step 1:ROS 2 環境の準備

ROS 2 Documentation を参照し、Ubuntu 24.04 LTSが動作するPCにROS 2 Jazzy をインストールします。

ROS 2 Jazzyがインストール済みであれば、このステップはスキップしてください。

$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
$ export LANG=en_US.UTF-8
$ locale  # verify settings
$ sudo apt install software-properties-common
$ sudo add-apt-repository universe
$ sudo apt update && sudo apt install curl -y
$ export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}')
$ curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
$ sudo dpkg -i /tmp/ros2-apt-source.deb
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ros-jazzy-desktop

参照:ROS 2 Documentation

インストール後、環境変数を設定します。

$ echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

Step 2:パッケージのインストール

gitがインストールされていない方は、gitをインストールしてください。

$ sudo apt install git -y

ワークスペースを作成し、2つのパッケージをクローンします。

$ mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
$ git clone https://github.com/CuboRex-Development/cugo_v4.5_ros2_control.git
$ git clone https://github.com/CuboRex-Development/cugo_v4.5_ros2_msgs.git

rosdepがインストールされていない場合は、rosdepをインストールと初期設定を行います。

$ sudo apt install ros-dev-tools -y
$ cd ~/ros2_ws
$ sudo rosdep init
$ rosdep update

依存パッケージを解決してビルドします。

$ cd ~/ros2_ws
$ rosdep install -i --from-paths src/cugo_v4.5_ros2_control src/cugo_v4.5_ros2_msgs
$ colcon build --symlink-install
$ source ~/ros2_ws/install/local_setup.bash

Step 3:GUIツールのインストール

先ほどインストールしたパッケージだけでROS 2 からロボットを操作することはできますが、より便利にCuGo V4.5 を使用するためのGUIツールがあります。こちらもインストールしておきましょう。

$ cd ~
$ git clone https://github.com/CuboRex-Development/cugo_v4.5_ros2_status_monitor.git
$ sudo apt install python3-venv python3-pip pipx -y
$ pipx ensurepath
$ source ~/.bashrc
$ pipx install pyside6 --include-deps

Step 4:ロボットの配線

CuGo V4.5は4つの接続方式に対応しています。まず最もシンプルなUSB接続で試してみましょう。

接続方式の比較

方式 メリット 向いている用途
USB-Serial 追加機器不要・最も簡単 最初の動作確認、有線開発
BOXコネクタ Jetson等UART機器と直結可能 組み込み開発
Bluetooth ケーブルレス・ルータ不要 近距離無線制御のテスト
WiFi(AP/Station) ケーブルレス・ルータ不要(APのみ) 近距離無線制御のテスト

USB接続の際は、制御ボックスの中にあるRaspberry Pi Pico 2W にUSBケーブルを接続する必要があります。取扱説明書を見ながら、制御ボックスの蓋をあけて付属のUSBケーブルの配線を行います。

🔗 取扱説明書(Manual): https://drive.google.com/drive/folders/1i-j2zjhofpZBpqAD0flYWyxNCtr3QkvG?usp=drive_link

制御ボックスの蓋を締めた後も、Raspberry Pi Pico 2W とPCをUSBケーブルで接続したいので、USBケーブルはケーブルグランドを通しておきます。

画像1.png

USBケーブルをRaspberry Pi Pico 2W に接続します。これで、制御ボックスを閉じてもロボットとUSB接続が可能になりました。

画像2.png

Step 5:Arduinoスケッチの書き込み

Raspberry Pi Pico 2WにUSBケーブルを接続したら、CuGo V4.5 をROS 2 から動かすためのプログラムをRaspberry Pi Pico 2Wに書きこみます。

Arduino IDEのインストールされたPCから crst01a_arduino_lib のページを開き、readmeを参照しながらライブラリのインストールを行います。

🔗 crst01a_arduino_lib: https://github.com/CuboRex-Development/crst01a_arduino_lib

その後、cugo_v4.5_ros2_motorcontroller のソースコードをダウンロードし、readmeを参照しながらプログラムを書き込みます。

🔗 cugo_v4.5_ros2_motorcontroller: https://github.com/CuboRex-Development/cugo_v4.5_ros2_motorcontroller

Step 6:ロボットとの接続

Ubuntu 24.04 LTSが動作するPCの作業に戻ります。ロボットの電源を入れ、ロボットのUSBケーブルをUbuntu 24.04 LTSが動作するPCに接続します。

USBケーブルを接続したら、ROS 2 のプログラムがUSBケーブルの接続先と通信ができるように権限の設定を行いましょう。

USB接続

$ sudo chmod 777 /dev/ttyACM0

このコマンドは、USBをさしなおす度に実行が必要です。忘れず実行しましょう。

環境によっては、ポートが /dev/ttyACM0 では無いことがあります。ポート名は環境に合わせて修正して下さい。

Step 7:ノードの起動

USBケーブルを繋いだら、ROS 2 プログラムを実行します。

$ ros2 launch cugo_v4_5_ros2_control cugo_v4_5_launch.py

起動に成功すると以下のようなログが表示されます。

[cugo_v4_5_ros2_control]: [connection] Handshake Successful! State: -> CONNECTED

これでロボットとの通信が開始されました。

Step 8:ロボットの状態の確認

Step 3 でインストールしたGUIツールを使ってロボットの状態を確認しましょう。

新しくターミナルを開き、以下のコマンドを実行します。

$ source ~/ros2_ws/install/setup.bash
$ bash ~/cugo_v4.5_ros2_status_monitor/run.sh

以下のような画面が表示されます。

画像3.png

画面上部を見るとロボットのバッテリーの電圧が確認できます。

左側のステータスモニターでは、ロボットのエラー状態等が確認できます。

Step 9:RViz2でロボットモデルを確認する

RViz2 を起動して、ロボットの状態を確認します。

新しくターミナルを開き、以下のコマンドを実行します。

$ source ~/ros2_ws/install/setup.bash
$ rviz2

次に、RViz2を操作してロボットを表示する設定をします。

画像4.png

  1. Fixed Frame をクリックし、odom に設定する
  2. 画面左下の Add をクリックする
  3. 新しく表示されたウィンドウから RobotModel を選択し、OK を押す
  4. 画面左に追加されたRobotModelの Description Topic/robot_description に設定する

RViz上にロボットが表示されました。

画像5.png

Step 10:速度指令を送ってみる

Step 3 でインストールしたGUIツールを使って、ROS 2 からロボットを動作させてみましょう。

安全のため、ロボットを動かすことができる空間で実験を行ってください。

ロボットに付属のプロポを操作し、ロボットが非常停止状態であれば、非常停止状態を解除します。

その後、モード切替スイッチを下に倒し、プログラムからロボットが動作可能な状態にします。

画像6.png

次に、Ubuntu 24.04 LTSが動作するPCで、GUIツールの左下にある Enable Jog のチェックボックスにチェックを入れます。

画像7.png

X speedYaw speed に、ロボットを動作させたい速度を入力します。その後、Jog Controlの +X / -X / +Yaw / -Yaw をクリックすると、クリックしている間だけロボットが動作します。

この時、ロボットを動作させる信号は /cmd_vel トピックとしてパブリッシュされています。どのようなトピックが流れているかは、以下のコマンドで確認しましょう。

$ ros2 topic echo /cmd_vel

ロボットをJog Control から動作させると、/cmd_vel の値が変化することが確認できます。

このように /cmd_vel をパブリッシュするノードを用意することで、自由にCuGo V4.5を操作することができます。

ロボットを動かした後にRViz2を確認すると、RViz2上でもロボットが動いていることを確認できます。

画像8.png

/cmd_vel のサブスクライブ と /odom のパブリッシュがすでに完了しているため、Navigation2との統合はすぐに始められます。CuGo V4.5のURDF・メッシュも活用可能です。

自律走行の開発を行う上で、追加でセンサを取り付けたり、大容量のバッテリーに交換するといった拡張が必要になった際は、取扱説明書の「より複雑な開発をするために」を参照しながらカスタマイズが可能です。

🔗 取扱説明書(Manual): https://drive.google.com/drive/folders/1i-j2zjhofpZBpqAD0flYWyxNCtr3QkvG?usp=drive_link

市販のロボットではちょうどいい製品がみあたらない…といったときは、ぜひ本製品をオリジナルロボットの開発に役立ててください。

[参考] cugo_v4_5_ros2_control の便利なパラメータ設定

config/params.yaml で動作をカスタマイズできます。

パラメータ デフォルト 説明
comm_type serial serial / wifi / bluetooth
serial_port /dev/ttyACM0 シリアルポートのパス
control_frequency 10.0 制御周期 [Hz](最大50Hz・有線時)
cmd_vel_timeout 0.5 /cmd_vel タイムアウト [秒]
odometry_method midpoint midpoint / analytic

[参考] よくあるトラブル

症状 原因 対処
Permission denied: '/dev/ttyACM0' アクセス権不足 sudo chmod 777 /dev/ttyACM0
ハンドシェイクが確立しない マイコンスケッチ未書き込み motorcontrollerを書き込む
WiFiで [response lost] が頻出 通信遅延 response_lost_timeout: 0.3 を設定
colcon build でエラー msgsパッケージ不足 cugo_v4.5_ros2_msgs も一緒にクローン

まとめ

CuGo V4.5 + cugo_v4.5_ros2_control を使えば、以下がすぐに揃います。

  • /cmd_vel で動く足回り
  • /odom/tf の配信
  • ✅ URDFによる3Dモデル
  • ✅ Navigation2との即時統合

AGVや自律移動ロボットの開発において、足回りをゼロから実装する時間を大幅に短縮できます。試してみたい方はこちらから製品をご確認ください。

関連リンク


この記事はCuboRex株式会社が執筆しました。

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?