インターンシップ(小銭)技術情報・開発日誌

CRANE+ V2セットアップ編 インターンシップ(小銭)Part1 

インターンシップ(小銭)

インターンシップでお世話になる小銭です。

8月30日に発売された書籍「ROS 2とPythonで作って学ぶAIロボット入門」にてアールティが販売するアームロボットCRANE+ V2を教材としてご紹介いただきました。今回のインターンでは実際に書籍を読み進めながらCRANE+ V2を動かそうと思います。

ROS2 と Python で作って学ぶ AI ロボット入門
音声認識・合成、ビジョン、ナビゲーション、マニピュレーション、プランニングといったAIロボットの基礎理論とプログラミング技法をていねいに解説。人工知能とロボット工学の俯瞰的な知識を、手を動かしながら学

CRANE+ V2について詳しくは下記の製品ページをご覧ください

CRANE+ V2
実機で学べるベーシックアームロボット ROS/ROS 2によるロボット開発の学習におすすめの教材用ロボット ROS/ROS 2で安価にアームロボットの開発をしたい人におすすめです。 RT ROBOT SHOPで購入する …

私はRoboCup@Home(人間とロボットが、共同に作業できるように研究した技術を競う競技)の大会に出場していて、ロボットを動かす環境がROS 1なのですが、インターンシップ初日にROS 2を使いますと言われ、「あ、ROS 2とROS 1って全然違うって聞いたことあるからインターンシップで活躍できるか不安だ!」って思いました。

しかしインターンで読む本はRoboCup@Homeでお世話になっている先生方が執筆されたロボットの入門書だったんですよ!4月頃のRoboCup Japan Open 2021 @Home Education(自作ロボットで問題を解決する部門)でロボットの入門書が出ることを知り、とても興味があったため何がなんでもROS 2を理解して行こうと思います!

ということで第一回目はCRANE+ V2の環境設定から始めていきます。

環境構築

ロボットを動かすには、環境を準備するところから始めます!今回の環境は以下の通りです。

  • CPU: Corei5-7200U
  • Ubuntu:20.04
  • ROS 2 : Foxy

ROS 2 Foxyをインストール

早速 ROS 2 Foxyをインストールします。今回は公式サイトとこちらの解説記事を参考にしました。

公式サイト:https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html

参考にしたサイト:https://demura.net/education/lecture/20536.html

大体公式のサイト通りコマンドを実行すればすぐにできるのですが、公式が英語なので参考にしたサイトと併用してインストールしました。今回は、躓いたところはないのですが、インストール時間が長くて驚きました。

ワークスペースを作成しよう

次にワークスペースを作ります。下記のサイトを参考にしてワークスペースを作成しました。

ROS2 workspaceの作成 - Qiita
ROS2でプログラミングするために勉強したメモです.ここではworkspaceの作成方法を書きます.workspaceの作成ROS2環境をターミナルに反映メインのROS2をunderlayに…

やってみた感想はROS 2のワークスペースはROS 1のワークスペースと同じ感じでした。コマンドの名前が違うだけなので、間違えることはなかったです。

CRANE+ V2を実機で動かそう

ワークスペースの作成も終わったので、実機の準備をしてみましょう。まずは下記のGitHubリポジトリからCRANE+ V2のROS 2パッケージをクローンします。

GitHub - rt-net/crane_plus: CRANE+ V2 ROS 2 Packages
CRANE+ V2 ROS 2 Packages. Contribute to rt-net/crane_plus development by creating an account on GitHub.
また、本の204ページに書かれているUSB通信(latency_timer)を自動的に設定してくれるファイルをダウンロードしました。下記サイトを参考に以下のコマンドを実行します。

$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/dynamixel-workbench/master/99-dynamixel-workbench-cdc.rules

$ sudo mv 99-dynamixel-workbench-cdc.rules /etc/udev/rules.d/

ここでlatency_timerはなぜ設定しないといけないのか調べてみました。latency_timerを設定しないとUSBを介して通信するときに、デフォルトで16msの待ち時間が発生します。この待ち時間のせいでロボットの動きが少しカクつくらしいです…。先程のコマンドはロボットの動きをなめらかにするために待ち時間を1msに設定するものでした。この設定で本当になめらかになるのか実験をしてみました!


latency_timerを1msに設定すると動き方がなめらかでした。
下記コマンドでサンプルを動かしてみます。
$ ros2 launch crane_plus_examples demo.launch.py

コマンドを実行したらRvizというURDFファイル(ロボットの形状などが書かれたデータファイル)を用いてロボットやセンサのアルゴリズムなどを可視化するツールが出現し、Rviz内のアームを動かしてexecuteを押すとRviz内で動かしたアームと同じように実機が動きました。ここまでエラーなく無事に環境構築ができました!

次回は書籍を読み進めてCRANE+ V2の順運動学、逆運動学を解いていきます!

タイトルとURLをコピーしました