CuGo V4.5をROS 2 Jazzy(Ubuntu 24.04)で動かしたい方へ。本記事では、CuboRex製クローラロボット「CuGo V4.5」のROS 2環境構築から/cmd_velトピックへの速度指令送信まで、セットアップ手順を丁寧に解説します。
CuGo V4.5 と ROS 2 Jazzy とは?
CuGo V4.5 ── クローラ型ロボット開発プラットフォーム
CuGo V4.5 は、CuboRex社が開発したクローラ(キャタピラ)型ロボットのプラットフォームです。悪路や段差でも安定して走行できるクローラ機構を備えており、屋外フィールドでの研究・実証実験用途に広く採用されています。ROS対応の公式パッケージが提供されているため、ロボット開発環境との連携が比較的容易に行えるのも大きな特徴です。
ROS 2 Jazzy ── 2024年リリースの最新LTSバージョン
ROS 2 Jazzy は2024年にリリースされたROS 2の長期サポート(LTS)バージョンで、Ubuntu 24.04(Noble Numbat)に正式対応しています。セキュリティパッチや機能アップデートが長期間提供されるLTS版は、今後のロボット開発プロジェクトの基盤として最も安心感のある選択肢です。
CuGo V4.5 と ROS 2 Jazzy を組み合わせることで、ROSの豊富なエコシステム(地図生成・自律走行・センサ統合など)をクローラロボットに適用できるようになります。
Ubuntu 24.04 + ROS 2 Jazzy の環境構築手順
以下の4ステップでCuGo V4.5をROS 2 Jazzy上で動作させる環境を整えます。
- Ubuntu 24.04 のインストール
- ROS 2 Jazzy のインストール
- CuGo V4.5 公式ROSパッケージのセットアップ
- /cmd_vel トピックを使ってロボットを動かす
ステップ1:Ubuntu 24.04 のインストール
ROS 2 Jazzyの動作環境として、Ubuntu 24.04 LTS(デスクトップ版またはサーバー版)を用意します。既存の環境がある場合はアップグレードも可能ですが、クリーンインストールを推奨します。インストール後は sudo apt update && sudo apt upgrade でシステムを最新状態に更新しておきましょう。
ステップ2:ROS 2 Jazzy のインストール
ROS 2 Jazzyは公式の apt リポジトリからインストールできます。ROS 2公式ドキュメントの手順に従い、以下の流れでセットアップします。
# ロケール設定の確認
locale
# 必要なツールのインストール
sudo apt install -y software-properties-common curl
# ROS 2 GPGキーの追加
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 \
$(. /etc/os-release && echo $UBUNTU_CODENAME) main" \
| sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# ROS 2 Jazzy のインストール
sudo apt update
sudo apt install -y ros-jazzy-desktop
# 環境変数の設定(~/.bashrc に追記)
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
ステップ3:CuGo V4.5 公式ROSパッケージのセットアップ
CuboRexはCuGo V4.5向けの公式ROSパッケージをGitHubで公開しています。以下の手順でワークスペースにクローンし、ビルドします。
# ROS 2ワークスペースの作成
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
# CuGo V4.5公式パッケージのクローン(リポジトリ名は公式を確認)
git clone https://github.com/CuboRex-Development/cugo_ros2_control.git
# 依存パッケージのインストール
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
# ビルド
colcon build --symlink-install
# 環境のオーバーレイ
source ~/ros2_ws/install/setup.bash
ビルドが完了したら、ros2 pkg list | grep cugo でパッケージが認識されているか確認しましょう。
/cmd_vel トピックへの速度指令送信方法
環境構築が完了したら、実際にCuGo V4.5を動かしてみましょう。ROSではロボットへの移動命令を /cmd_vel トピック経由で行うのが標準的な作法です。メッセージ型には geometry_msgs/msg/Twist を使用します。
コマンドラインから /cmd_vel を送信する
ROS 2 では ros2 topic pub コマンドで手軽にトピックへメッセージを送れます。ターミナルから以下を実行してみましょう。
# /cmd_vel に速度指令を送信してロボットを前進させる(1回だけ送信)
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
"{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}" \
--once
# 継続的に送信する場合(1Hzで繰り返し)
ros2 topic pub --rate 1 /cmd_vel geometry_msgs/msg/Twist \
"{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
linear.x が前後方向の速度(m/s)、angular.z が旋回方向の角速度(rad/s)です。値を変えるだけで前進・後退・旋回を制御できるシンプルな仕組みになっています。
| パラメータ | 説明 | 例 |
|---|---|---|
linear.x | 前後方向の速度(m/s) | 0.3(前進)/ -0.3(後退) |
angular.z | 旋回方向の角速度(rad/s) | 0.5(左旋回)/ -0.5(右旋回) |
Pythonスクリプトから /cmd_vel を送信する
定期的・自律的に速度指令を送りたい場合は、PythonでROS 2ノードを作成するのがおすすめです。以下のサンプルコードは、1秒ごとに前進指令を送信し続けるシンプルなコントローラです。
import rclpy
from rclpy.node import Node
from geometry_msgs.msg import Twist
class CuGoController(Node):
def __init__(self):
super().__init__('cugo_controller')
# /cmd_vel トピックへの Publisher を作成(キューサイズ10)
self.publisher = self.create_publisher(Twist, '/cmd_vel', 10)
# 1秒ごとに速度指令を送信するタイマーを設定
self.timer = self.create_timer(1.0, self.send_cmd)
self.get_logger().info('CuGoControllerノードを起動しました')
def send_cmd(self):
msg = Twist()
msg.linear.x = 0.3 # 前進 0.3 m/s
msg.angular.z = 0.0 # 直進(旋回なし)
self.publisher.publish(msg)
self.get_logger().info(f'速度指令を送信: linear.x={msg.linear.x}, angular.z={msg.angular.z}')
def main():
rclpy.init()
node = CuGoController()
try:
rclpy.spin(node)
except KeyboardInterrupt:
node.get_logger().info('ノードを停止します')
finally:
# 停止指令を送信してからシャットダウン
stop_msg = Twist() # 全フィールドが0.0(停止)
node.publisher.publish(stop_msg)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
ROS 2のノードをPythonで書く基本構造は「Publisherを作成してメッセージを投げるだけ」です。慣れると意外とシンプルに感じられるはずです。なお、上記コードでは Ctrl+C で停止した際に停止指令(速度ゼロ)を送信するよう安全処理も加えています。
よくある疑問・トラブルシューティング
Q1. /cmd_vel を送ってもロボットが動かない
以下の点を確認してみてください。
ros2 topic listで/cmd_velトピックが表示されているか- CuGo V4.5のドライバノードが起動しているか(
ros2 node listで確認) - ロボット本体の電源・接続が正常か
- ワークスペースの
setup.bashをソースしているか
Q2. colcon build でエラーが出る
rosdep install で依存パッケージをすべてインストールしてから再ビルドしてみましょう。また、source /opt/ros/jazzy/setup.bash を実行してからビルドを行っているか確認してください。
Q3. ROS 2 Jazzy と ROS 2 Humble の違いは?
ROS 2 HumbleはUbuntu 22.04対応のLTS版、ROS 2 JazzyはUbuntu 24.04対応のLTS版です。新規プロジェクトを始めるなら最新LTSのJazzyを選ぶのがおすすめです。ただし、既存のHumble環境からの移行には一部パッケージの対応状況を事前に確認する必要があります。
まとめ:CuGo V4.5 × ROS 2 Jazzyで始めるクローラロボット開発
今回は CuGo V4.5 を Ubuntu 24.04 + ROS 2 Jazzy で動かすためのセットアップ手順を解説しました。要点を整理すると以下のとおりです。
- ✅ CuGo V4.5 はCuboRex社のクローラ型ロボット開発プラットフォーム
- ✅ ROS 2 Jazzy はUbuntu 24.04対応の最新LTS版。今から学ぶ最適なバージョン
- ✅ 公式パッケージのセットアップ → /cmd_vel トピックへの速度指令送信でロボットを制御できる
- ✅ コマンドラインでもPythonスクリプトでも手軽に操作可能
ROS 2 Jazzyは長期サポート版なので、今から学び始めるには絶好のタイミングです。CuGo V4.5のようなクローラロボットを活用すれば、屋外自律走行・SLAMによる地図生成・障害物回避など、より高度なロボットアプリケーション開発への道が開けます。
ROS 2関連の記事は今後も継続して公開予定です。ROS 2 Jazzyを使ったSLAMや自律走行の実装方法についても順次取り上げていきますので、ぜひブックマークや読者登録をお願いします!
📌 関連記事もあわせてどうぞ
・ROS 2 Jazzy インストール完全手順(Ubuntu 24.04対応)
・クローラロボットでSLAMを試してみた|Nav2 + CuGo V4.5
・ROS 2 入門:トピック・サービス・アクションの違いをやさしく解説
