kakepro’s blog

プログラムとかPC周りのことを書いていきます

MoveIt!によるmyCobot280の制御

はじめに

【環境】
Windows10+WSL2+Ubuntu18.04+ROS melodic

myCobot280をROSから動かす
今回はMoveItでrviz上のmyCobotを動かしてみる

下準備

ROS melodicのインストールや必要なパッケージのインストールは下記を参照
kakepro.hatenablog.com

逆運動学的にmyCobotを動かす

ゴールとなるロボットの姿勢を入力として、各関節の角度の計算や経路生成をMoveIt!に行ってもらう
以下のソースコードは下記記事を参考にした
"mycobot_arm"を"arm_group"に変えるだけである
note.com

なおワークスペースの名前はmycobot_wsとした
~/mycobot_ws/src/myCobotROS/mycobot_280/scriptsに下記コードを新たに作成する
$ vim ./src/myCobotROS/mycobot_280/scripts/pose_planner.py

#!/usr/bin/env python
# coding: UTF-8
import geometry_msgs.msg
import moveit_commander
import rospy
import sys
from math import pi


def main():
    # Initialize moveit_commander
    moveit_commander.roscpp_initialize(sys.argv)

    # Initialize node
    rospy.init_node('hello_moveit')

    # make the instance of MoveGroupCommander
    move_group = moveit_commander.MoveGroupCommander("arm_group")

    # output the geometry msg
    # pose_goal = geometry_msgs.msg.Pose()

    # get current pose
    pose_goal = move_group.get_current_pose().pose

    # set goal pose
    pose_goal.position.x += 0.01
    pose_goal.position.y += 0.0
    pose_goal.position.z -= 0.03
    pose_goal.orientation.x += 0.0
    pose_goal.orientation.y += 0.0
    pose_goal.orientation.z += 0.0
    pose_goal.orientation.w += 0.0

    # plan and execute of the motion planning by pose
    move_group.set_pose_target(pose_goal)
    move_group.go(wait=True)

    # stop
    move_group.stop()

    # clear goal pose
    move_group.clear_pose_targets()


if __name__ == "__main__":
    main()

実行してみる

各Terminal共通*1
$ cd ~/mycobot_ws
$ source devel/setup.bash
・Terminal1
$ roslaunch mycobot_280_moveit mycobot_moveit.launch
・Terminal2*2
$ sudo chmod 666 /dev/ttyUSB0
$ rosrun mycobot_280 slider_control.py
・Terminal3
$ python ./src/myCobotROS/mycobot_280/scripts/pose_planner.py
youtu.be

*1:WSL2の場合はこの他XWindowの設定とusbipdによるmyCobotへのアタッチをしておくこと

*2:実機を動かさない場合は不要

InkscapeからのG-codeの生成

はじめに

オープンソースのドローソフトInkscapeを使って2DデータからG-codeを生成する。

環境

Windows10
inkscape-0.92.5-x64

Inkscapeのダウンロード

公式サイトからzipファイルをダウンロード
inkscape.org
バージョン1.0とか1.1も出てはいるが1.0で調子が悪かった記憶があるので今回は0.92で書きます。

G-codeの生成

まずは適当な図形を用意します。
CADで描いた.dxfとかでもOK。

f:id:kakepro:20220227154442p:plain
図形の描画

G-codeに変換したいパスを選択した状態でメニューバーから
エクステンション>G-code tools>Path to Gcode...を選択する

f:id:kakepro:20220227154549p:plain
パスからG-codeの生成

ファイル名や書き出し先のパスを設定する。
デフォルトだと桁数が多いのでRaund all values~をポストプロセスに追加する。

f:id:kakepro:20220227154743p:plain
書き出しの設定

Path to Gcodeタブに戻ってから「適用」をクリックする。

f:id:kakepro:20220227155014p:plain
G-codeの生成

G-codeの生成が始まる

f:id:kakepro:20220227155126p:plain
変換中

何かメッセージが表示されるが無視してOK

f:id:kakepro:20220227155159p:plain
メッセージ表示

正しく処理が行われるとInkscapeの画面上が以下のようになる

f:id:kakepro:20220227155300p:plain
G-codeの生成後画面

VScodeで生成されたG-codeを確認してみると、確かに生成されていることが分かる。

f:id:kakepro:20220227155400p:plain
G-codeの確認

bCNCでのパスの確認

bCNCで視覚的に生成されたG-codeの確認を行う。
bCNCのインストール方法は下記を参照のこと。
kakepro.hatenablog.com

PCとgrblを書き込んだArduinoをUSBでつなぎ、bCNCを起動する。

bCNCの左上の「開く」ボタンからG-codeを選択する。

f:id:kakepro:20220227155453p:plain
bCNCでG-codeを開く

G-codeを開くと下図のようにパスが表示される。
実線が加工パス、破線が早送り(G00)のパスである。
Startボタンを押すと加工が開始される。

f:id:kakepro:20220227155615p:plain
bCNCによるパスの確認

ROSからのmyCobot280の制御

はじめに

myCobot買ってからROSで動かすまでにハマったのでメモ
【環境】
Windows10+WSL2+Ubuntu18.04+ROS melodic
WSL2からのUSBデバイスの利用は下記記事を参照
kakepro.hatenablog.com

myCobotへのファームウェアの書き込み

ここがハマったところ
Atom(頭)にはAtomMain
・Basic(根本)にはminiRobotV3*1
をそれぞれ焼く
ファームウェアの書き込みには以下の記事を参考に「myCobot固件烧录器」を使った。
robohase01.hatenablog.com

その後BasicとPCをUSBで接続し、Basic側でTransponderを選択する

f:id:kakepro:20220227140021j:plain
Transponder

ROS melodicのインストール

【下準備】
$ 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 install -y curl
$ curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -

【インストール】
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install -y ros-melodic-desktop-full

【初期設定】
$ sudo apt install python-rosdep
$ sudo rosdep init
$ rosdep update

【環境設定・その他インストール】
$ cd
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools
$ sudo apt install ros-melodic-moveit
$ sudo apt-get install ros-melodic-joint-state-publisher-gui

myCobotをROSから動かす

ワークスペースの作成】
$ mkdir -p ./mycobot_ws/src

【公式パッケージのインストール・ビルド】
$ sudo apt install python-pip
$ pip install pymycobot --upgrade
$ cd ./mycobot_ws/src
$ git clone https://github.com/elephantrobotics/myCobotROS.git
$ cd ../
$ catkin build
$ source devel/setup.bash

【動かしてみる】
$ sudo chmod 666 /dev/ttyUSB0*2
・Terminal 1
$ roslaunch mycobot_280 slider_control.launch
・Terminal 2
$ rosrun mycobot_280 slider_control.py

スライドバーを動かすとmyCobotも動く(動画とってないけど実機も動く)

f:id:kakepro:20220227140427p:plain
myCobotoのROSからの制御テスト

youtu.be

参考

note.com

*1:BasicにTransponderを焼いてもうんともすんとも言わなかった

*2:PowerShellからusbipd wsl attach --busid *-*しておくこと

ArduinoIDEへのgrblのインクルード


はじめに

Windows10(64bit)+ArduinoIDE 1.8.19にgrbl v1.1を導入
ArduinoIDEはインストール済みとする

grblのダウンロード

GitHubからソースコード(.zip)をダウンロード
github.com

適当なフォルダに解凍しておく

ArduinoIDEへのインクルード

ArduinoIDEを起動し、
スケッチ>>>ライブラリをインクルード>>>.ZIP形式の~
を選択する。

f:id:kakepro:20220223155958p:plain
ライブラリのインクルード

先ほど解凍したフォルダに含まれるgrblを選択する。

f:id:kakepro:20220223160133p:plain
grblのインクルード

スケッチ例にgrblが追加されればOK

f:id:kakepro:20220223160258p:plain
インクルードの確認

Windows10へのbCNCのインストール


はじめに

Pythonがインストールされていることを前提とします。
Python 3.8以降じゃないとうまくいかない、かもしれない。

bCNCのインストール

コマンドプロンプトから以下の手順で行う

・pipのアップグレード
python -m pip install --upgrade pip

・bCNCのインストール
pip3 install bCNC

・bCNCのアップグレード
pip3 install --upgrade bCNC

f:id:kakepro:20220223150321p:plain
bCNCのインストール

上の写真だとwheelが無いって言われてますが、とりあえず問題なし。

bCNCの起動

コマンドプロンプトで下記コマンドから実行できる。
bCNC

f:id:kakepro:20220223150351p:plain
bCNCの起動

Windows10へのPythonのインストール

Pythonのダウンロード

下記URLからPythonインストーラをダウンロード

www.python.org

f:id:kakepro:20220223110109p:plain

Pythonのダウンロード

インストーラの実行

インストーラを実行し、最初の画面でAdd Python*.* to PATHにチェックをつけてInstall Nowをクリック

f:id:kakepro:20220223110159p:plain

Pathの追加

インストールが完了すると以下のような画面になる。Disable path length limitが表示されていたら実行してからCloseする。

f:id:kakepro:20220223110350p:plain

インストールの完了

Pythonの起動

コマンドプロンプトを起動し、pythonと入力して以下のようにPythonが起動すればOK。

f:id:kakepro:20220223110601p:plain

Pythonの起動

 

UbuntuへのArduinoIDEのインストール

【前提】

WSL2 + Ubuntu18.04

Arduino 1.8.19 64bit版

 

#WSL2

$ wget https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz

$ mkdir -p ~/.local

$ mv arduino-1.8.19 ~/.local

$ bash arduino-linux-setup.sh $USER

 

#Power Shell

wsl --shutdown

 

#WSL2

$ cd ~/.local/arduino-1.8.19/

$ sudo bash install.sh

で完了

$ arduino

で起動できる*1

 

【参考】

qiita.com

*1:WSL2の場合VcXservなどを起動してから実行のこと