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
インストール後、環境変数を設定します。
$ 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ケーブルはケーブルグランドを通しておきます。
USBケーブルをRaspberry Pi Pico 2W に接続します。これで、制御ボックスを閉じてもロボットとUSB接続が可能になりました。
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
以下のような画面が表示されます。
画面上部を見るとロボットのバッテリーの電圧が確認できます。
左側のステータスモニターでは、ロボットのエラー状態等が確認できます。
Step 9:RViz2でロボットモデルを確認する
RViz2 を起動して、ロボットの状態を確認します。
新しくターミナルを開き、以下のコマンドを実行します。
$ source ~/ros2_ws/install/setup.bash
$ rviz2
次に、RViz2を操作してロボットを表示する設定をします。
-
Fixed Frame をクリックし、
odomに設定する - 画面左下の Add をクリックする
- 新しく表示されたウィンドウから RobotModel を選択し、OK を押す
- 画面左に追加されたRobotModelの Description Topic を
/robot_descriptionに設定する
RViz上にロボットが表示されました。
Step 10:速度指令を送ってみる
Step 3 でインストールしたGUIツールを使って、ROS 2 からロボットを動作させてみましょう。
安全のため、ロボットを動かすことができる空間で実験を行ってください。
ロボットに付属のプロポを操作し、ロボットが非常停止状態であれば、非常停止状態を解除します。
その後、モード切替スイッチを下に倒し、プログラムからロボットが動作可能な状態にします。
次に、Ubuntu 24.04 LTSが動作するPCで、GUIツールの左下にある Enable Jog のチェックボックスにチェックを入れます。
X speed と Yaw 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上でもロボットが動いていることを確認できます。
/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や自律移動ロボットの開発において、足回りをゼロから実装する時間を大幅に短縮できます。試してみたい方はこちらから製品をご確認ください。
関連リンク
- 🔗 製品ページ: https://cuborex.com/product/?id=33
- 🔗 購入・予約: https://cuborex.myshopify.com/products/cugo-v4-5
- 🔗 cugo_v4.5_ros2_control: https://github.com/CuboRex-Development/cugo_v4.5_ros2_control
- 🔗 cugo_v4.5_ros2_motorcontroller: https://github.com/CuboRex-Development/cugo_v4.5_ros2_motorcontroller
- 🔗 取扱説明書(Manual): https://drive.google.com/drive/folders/1i-j2zjhofpZBpqAD0flYWyxNCtr3QkvG?usp=drive_link
- 🔗 お問い合わせ: robotics@cuborex.com
この記事はCuboRex株式会社が執筆しました。







