はじめに
MacでMycobot 280 M5をRos2環境でシミュレーションする際の環境構築のメモです
あまり記事がなかったので執筆します
*ROS初学者です、指摘、補足などありましたらコメントお願いいたします🙇
環境
- M3 MacBook Air
- メモリ16GB
Ros2環境の構築
Docker上でRos2(humble)環境を構築します
こちらを参考にRos2インストール済みUbuntuGUI環境の構築を行います
https://memoteki.net/archives/2955#index_id3
dockerコンテナの作成
*Mチップの場合、-arm64
をつける
shm-size
:共有メモリ defautは64MBで少ないので少なくとも2gb以上に設定した方が良いです
docker run -p 6080:80 --security-opt seccomp=unconfined --shm-size=2G tiryoh/ros2-desktop-vnc:humble-amd64
起動に成功したらhttp://127.0.0.1:6080/
へアクセスします
ubuntuが起動しているはずです
MoveIt2環境の構築
公式のチュートリアルを参考に行います
https://moveit.picknik.ai/main/doc/tutorials/getting_started/getting_started.html
コマンドを順に実行します
*ubuntuのターミナル
source /opt/ros/humble/setup.bash
rosdepインストール(おそらくすでにインストール済み)
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
sudo apt update
sudo apt dist-upgrade
colconのmixin拡張をインストール
sudo apt install python3-colcon-common-extensions
sudo apt install python3-colcon-mixin
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
vsctoolのインストール
sudo apt install python3-vcstool
colconワークスペースを作成
mkdir -p ~/ws_moveit/src
moveitソースコードの取得
cd ~/ws_moveit/src
git clone -b humble https://github.com/moveit/moveit2_tutorials
vcs import --recursive < moveit2_tutorials/moveit2_tutorials.repos
colconワークスペースの構築
sudo apt remove ros-humble-moveit*
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro humble -y
ビルドします
数十分〜1時間程度かかります
build
の引数について
docker環境の場合、メモリ不足になる可能性があるので、以下の引数を指定することを推奨
-
--executor sequential
:ひとつずつビルド -
--parallel-workers 2
:同時ビルド数を指定
できるのであればdockerの共有メモリを増やすと、ビルド時間が早くなります
cd ~/ws_moveit
colcon build --mixin release
sourceする
source ~/ws_moveit/install/setup.bash
echo 'source ~/ws_moveit/install/setup.bash' >> ~/.bashrc
ビルドエラーについて
様々なエラーが出たのでメモとして残します
moveit2でmycobotシミュレータを動かせるようにする
こちらを参考に作成します
https://www.youtube.com/watch?v=ZOIKEV_BCBE&t=566s
ROS2用mycobotソースを取得
ws_moveit/src
下にclone
git clone https://github.com/elephantrobotics/mycobot_ros2.git
セットアップアシスタントを起動
ros2 launch moveit_setup_assistant setup_assistant.launch.py
Create New MoviItを選択
mycobotのURDFを選択し、loadFileを押下
mycobot_ros2/mycobot_description/urdf/mhcobot_280_m5/mycobot_280_m5.urdf
先端にpumpやカメラがついたモデルが用意されているので状況に応じて選択できます
self collisionの設定
デフォルトのままGenerate Collision matrix
Virtual jointsの設定
Add Virtual joint
で追加、適当な名前をつけて保存
Planning Groupsの定義
Add Group
で追加
Solverはkdl_kinematics_plugin
を選択
Kin. parameters file
は3
に設定
ポーズの追加
スライダーを使用してポーズを作成します
あとから追加することも可
ROS2コントローラーのセットアップ
Auto Addでok
moveitコントローラーのセットアップ
Auto Addでok
Authorとメールの追加
ジェネレート&保存
ビルド・インストール
cd ~/ws_moveit
colcon build --mixin release
. install/setup.bash
起動
ros2 launch mycobot_move_it demo.launch.py
おわりに
とりあえずシミュレータ上で動かすことができました
*macだとDocker経由でusb使えないらしいので実機を動かせないのがネックですね。。。