ヴイストン株式会社より発売されている全方向移動台車「メカナムローバーVer.3.0」をROS 2で制御するためのパッケージです。別途Linux搭載のPC及びロボット実機が必要になります。
メカナムローバーは、前後・左右・回転を組み合わせた自由度の高い移動ができることが大きな特徴で、細かい位置制御が求められる搬送・自律移動などの研究開発プロジェクトに好適です。このパッケージでは、メカナムローバーの制御を実現するためのROS2関連の機能を提供します。
- メカナムローバーVer.3.0:
- Ubuntu Linux - Jammy Jellyfish (22.04)
- ROS 2 Humble Hawksbill
mecanumrover3
: メカナムローバーVer.3.0のメタパッケージ。mecanumrover3_bringup
: メカナムローバーVer.3.0の起動に関連するノードやlaunchファイルを提供します。mecanumrover_description
: メカナムローバーVer.3.0の物理モデルやURDFモデルを含んでいるパッケージです。
このパッケージをインストールするには、以下の手順に従ってください。
-
こちらの手順に従って、ROS 2 Humbleをインストールしてください。
-
micro-ROS Agent のセットアップ: (実機を動かす場合のみ必要)
$ mkdir -p ~/uros_ws/src $ cd ~/uros_ws/src $ git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git $ cd ~/uros_ws $ rosdep update && rosdep install --from-paths src --ignore-src -y $ colcon build $ source install/local_setup.bash $ ros2 run micro_ros_setup create_agent_ws.sh $ ros2 run micro_ros_setup build_agent.sh $ source install/local_setup.bash
-
このリポジトリをワークスペースにクローンしてください:
$ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws/src $ git clone https://github.com/vstoneofficial/mecanumrover3_ros2.git --recurse-submodules $ git clone -b $ROS_DISTRO https://github.com/vstoneofficial/vs_rover_options_description.git # オプションを表示するため $ rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
-
ワークスペースをビルド:
$ cd ~/ros2_ws $ colcon build --symlink-install
-
ワークスペースのオーバレイ作業:
$ source ~/ros2_ws/install/local_setup.bash
-
シェルを起動時にワークスペースがオーバーレイされるように設定します。
$ echo "source ~/uros_ws/install/local_setup.bash" >> ~/.bashrc $ echo "source ~/ros2_ws/install/local_setup.bash" >> ~/.bashrc
このパッケージには、以下の主要な機能が含まれています。(詳細は各ファイルを確認してください)
-
URDFモデルの表示: 以下のコマンドを実行して、メカナムローバーのURDFモデルを表示します。
$ ros2 launch mecanumrover_description display.launch.py
-
メカナムローバー(実機)との通信: ROS 2とMicro-ROSを統合するためのエージェントノードを起動。
- 有線シリアル接続の場合:
$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0 -v4
- Wi-Fi 接続の場合:
$ ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888
- 有線シリアル接続の場合:
-
odometryをpublish: pub_odomノードとrviz上可視化
$ ros2 launch mecanumrover3_bringup robot.launch.py
-
キーボードで操作: キーボードを使用してロボットを操作するためのノードを起動。
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=rover_twist
-
マウスで操作: マウスを使用してロボットを操作するためのノードを起動。
$ ros2 launch mecanumrover3_bringup mouse_teleop.launch.py
このパッケージはApache 2.0ライセンスの下で提供されています。詳細については、LICENSEファイルを参照してください。
バグの報告や機能の提案など、このパッケージへの貢献は大歓迎です。プルリクエストやイシューを使用して、貢献してください。