背景
uArmSwiftProとは、クラウドファウンディングで資金を集めてロボットアームを作るUFACTORYという会社が作ったロボットアームの1つです。ROSとは、ロボットを制御するためのフレームワークです。
Moveit!とは、ROSで利用できるロボットアームの制御プログラムです。
uArmSwiftProをROSでで動かすためのファイルががあったので、それを利用してuArmSwiftProを動かしてみました。
備忘録を兼ねて内容を共有します。
準備したもの
ROS Melodic + Moveit!をインストールしたPC
ROSのWiki(Ubuntu install of ROS Melodic)に従い、Ubuntu18.04にMelodicのDesktop-Full版をインストールしました。sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 sudo apt update sudo apt install ros-melodic-desktop-full echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
Desktop-Full版をインストールしたら、Moveit!のWikiに従い、Moveit!のインストールとワークスペースの確保を行いました・
rosdep update sudo apt update sudo apt dist-upgrade sudo apt install ros-melodic-catkin python-catkin-tools sudo apt install ros-melodic-moveit mkdir -p ~/ws_moveit/src cd ~/ws_moveit catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release catkin build echo 'source ~/ws_moveit/devel/setup.bash' >> ~/.bashrc
上記のコマンドだけでは自分の環境だとMoveit!のためにrvizを起動すると、下記のエラーが表示されました。
[ERROR] [1547206363.118853748]: PluginlibFactory: The plugin for class 'rviz_visual_tools/KeyTool' failed to load. Error: According to the loaded plugin descriptions the class rviz_visual_tools/KeyTool with base class type rviz::Tool does not exist. Declared types are rviz/FocusCamera rviz/Interact rviz/Measure rviz/MoveCamera rviz/PublishPoint rviz/Select rviz/SetGoal rviz/SetInitialPose rviz_plugin_tutorials/PlantFlag
掲示板(moveit rviz plugin error)の情報を参考に下記のコマンドを実行すると、上記のエラーを解消できました。
sudo apt install ros-melodic-moveit-visual-tools
uArmSwiftPro + グリッパ
ちなみに、サーボのケーブルはアーム先端上部のコネクタに、グリッパのケーブルはアーム先端下部のコネクタに接続します。
アームとグリッパのセットはこちらで購入できます。
uArm Robotic Arm
ファイルのダウンロードとビルド
ROSのワークスペースのsrcディレクトリに、uArmに関するファイルを配置します。cd ~/ws_catkin/src git clone git@github.com:uArm-Developer/RosForSwiftAndSwiftPro.git
ファイルを管理するREADMEを読み替えて、melodic向けの依存ライブラリをインストールします。
sudo apt install ros-melodic-serial
ワークスペースに移動してcatkin buildします。
cd ~/ws_moveit catkin build
ビルドしたらsetup.bashを読み直します。
source ~/.bashrdもしくは
source ~/ws_moveit/devel/setup.bash
これでuArmに関するROSプロジェクトを実行できるようになりました。
Moveit!を使わない位置表示プログラムを実行
READMEで紹介されている「Display mode: Get data from swiftpro」を実行してみます。uArmSwiftProをPCに接続し、出てくるポートのアクセス権限を変更します。
sudo chmod 666 /dev/ttyACM0
位置表示プログラムを実行します。
roslaunch swiftpro pro_display.launch
このプログラムを実行するとrvizというシミュレーション表示プログラムが起動するものの、それだけでは何も表示されません。
ロボットを表示するために、画面左下のAddを押します。
rvizディレクトリに含まれるRobotModelを選択してOKを押します。
rvizの中央の画面にロボットが表示されます。
マウスやタッチパネルでスクロールすると拡大できます。
それっぽいものが表示されたのですが、エラーが出て動いてくれません。
これはFixed FrameがBaseであることを前提に作られているデータをmap向けに表示しようとしているのが原因のようです。
掲示板で解決方法が提示されていました。
Problems about controlling UArm via ROS
Fixed Frameのmapをマウスで選択してBaseに変更します。
変更した後、値を反映するためにrviz内の何もないところをクリックすると、値が反映されてエラーが消えます。
ロボットも表示されました。
この状態でロボットアームを動かすと、アームの位置がrvizに表示されているロボットに反映されます。
アームの先端に取り付けたグリッパの向きは、このプログラムでは読み取れないようでした。
Moveit!でアームを制御
READMEで紹介されている「Control Mode: Send data to swiftpro」を実行してみます。uArmSwiftProをPCに接続し、出てくるポートのアクセス権限を変更します。
sudo chmod 666 /dev/ttyACM0
ターミナルを2つ使い、制御プログラムを実行します。
roslaunch swiftpro pro_control.launch
roslaunch pro_moveit_config demo.launch
プログラムが動くとuArmモデルが追加されたのrvizが表示されます。
uArmモデルの青色と赤色の矢印をドラッグすることで、移動先のアームの位置を変えれます。
移動先を決めたら、MotionPlanningのPlanningタブを選択して、その中のPlan and Executeを押すか、Planを押したあとにExecuteを押すことで、ロボットを動かせます。
(Moveit!の使い方は、Moveit!のwikiを参考にしてください。)
Moveit!で計算した経路に沿ってアームが動きました。
提供されているファイルが対応していないためか、y軸方向への移動とグリッパの回転はできなさそうでした。(操作する方法があれば、教えてもらえると嬉しいです。)
まとめ
アームの回転が取れなかったりy軸方向へ動かせなかったりするものの、公開されているファイルを利用してuArmSwiftProをMoveit!で動かせました。何かの参考になれば嬉しいです。
0 件のコメント :
コメントを投稿