一般社団法人

日本ロボット学会 第 99 回 ロボット工学セミナー 実施レポート

ロボットの作り方 2016
〜移動ロボットの制御と ROS による動作計画実習〜
開催日：2016 年 6 月 25 日 (土)，26 日(日) 10:00〜17:00 (開場 9:30)
開催地：北陽電機株式会社 豊中事業所 5 階 (大阪府豊中市神州町 1 番 37 号)
参加者数：19 グループ (39 名)
オーガナイザ：渡辺敦志 (東北大学), 嶋地直広 (北陽電機(株) )概要
移動ロボットの研究を始めようとしている学生、研究者、企業の方を主な対象とした、ロボットの作り方 2016 のセミナーを、2016 年 6 月 25 日 (土) と 26 日(日) の 2 日間の日程で、北陽電機株式会社 豊中事業所において実施しました。
本セミナーでは、移動ロボットプラットフォームを制作し、ROS (Robot Operating System)を用いた動作計画を利用したプログラムを作成することで、移動ロボットのハードウェアとソフトウェアシステム構築を体験して頂くことを目標としました。また、本セミナーで制作した教材のロボットは、そのまま研究教育用途で使用でき、フレームやモータを用途に合わせて増強することで、同じ制御系を用いて様々な応用を可能にするように構成しています。また、本セミナーは、2014 年度のロボットの作り方からのシリーズで開催しており、2014 年度、2015年度の教材を持参しても参加を可能としました。また、移動ロボット用のセンサとして、URG04LX-UG1 (以下 URG)を北陽電機から貸し出していただき、演習で使用しました。
セミナー1 日目は、ロボットの組み立てと動作テスト、ROS とロボットの基本的な使い方の演習を行い、教材で使用したロボット制御の理論について、オーガナイザの渡辺が「モータ制御・ロボット動作制御の理論」と題して講義を行いました。2 日目は、センサデータを用いたロボット制御の演習を行い、千葉工大 fuRo の原祥尭 先生から「ROS を用いた自律移動ロボットのシステム構築」と題して講義を実施していただきました。最後に、ROS の navigation パッ
ケージを用いた地図生成、自律走行の演習を行い、演習課題に取り組んでいただきました。

移動ロボットプラットフォーム (教材)
本セミナーでは、図 1、図 2 に示すような、独立二輪駆動の移動ロボットを参加者グループ毎に 1 台製作しました。モータコントローラとしては、ブラシレスモータや大出力のモータにも対応可能な、T-frog プロジェクト(http://t-frog.com/) の二軸モータドライバ TF-2MD3-R6 を使用しました。また、ロボットの走行制御には、参加者に持参していただいたノート PC 上
で、オープンソースソフトウェア YP-Spur (https://openspur.org/) を用いました。なお、これらのモータドライバ、走行制御ソフトウェアは、筑波大学知能ロボット研究室の研究成果が用いられています。
ロボットプラットフォームのフレームには、DMM.make (http://make.dmm.com/) で製造したモータマウントと、FabLab SENDAI – FLAT (http://fablabsendai-flat.com/) のレーザー加工機を用いて製作した天板を用いました。
今年度の教材ロボットプラットフォームは、できるだけ製造時の加工を容易にすることを考慮して設計しており、昨年度よりも費用を抑えました。なお、このロボットプラットフォームは、追って一般にも購入可能にする計画です。

図 1 教材ロボットプラットフォームのキット

図 2 ロボットプラットフォーム

事前準備本セミナーでは、ロボット制御用の PC として、参加者にノート PC を持参していただくことにしましたが、実習で ROS を用いるため、Linux 環境を準備する必要があります。また、会場のネットワーク環境が限られ、当日に Linux および ROS 環境のセットアップを行うことが困難となっていました。また、Windows 上の仮想マシン上で Linux を動かしても、仮想マシンのUSB に問題が発生する事が非常に多いため、直接 Linux を起動する必要があります。
そこで、今回は、容量の大きな ROS パッケージをプレインストールした、Live USB を作成し、USB メモリ上から直接 Linux を起動して演習を行うことにしました。これにより、受講者の Linux 環境がほぼ統一でき、演習中のトラブルシューティングも容易になりました。
一方、以下の問題点があり、今後の同様なセミナーの課題となりました。
一部の PC で無線 LAN に Linux kernel が対応していない

Live USB が正しく作れていなかったLive USB を用いずに環境構築した方が一部の手順を忘れていた

これらの解決には、最新の Linux kernel を利用する (ただし、今回はセミナー実施タイミングと Ubuntu Long-Term Support のリリースタイミングの都合で不可だった)、事前の動作テスト手順を拡充する必要があると考えます。
なお、無線 LAN の問題について当日は、TA が USB メモリで必要なファイルを渡し、2 日目は USB 無線 LAN アダプタをご用意いただいて対応しました。

運営
ロボットの作り方の実習としては初めての地方開催ということで、会場として、大阪の北陽電機株式会社の食堂を利用させていただきました。ただし、インターネット接続は提供できないため、ロボット学会の WiMAX ルーター、実行委員の携帯回線等のテザリングを提供しました。ネットワーク接続に関しては、個人用途の Wi-Fi 機器を使用したため、同時接続数が限られ、特に 1 日目は受講者がインターネットに接続できない状況が多く発生しました。このような環境での開催に当たっては、業務用のモバイルルータを用意する必要があると考えます。
当日の運営にあたっては、立命館大学の島田先生にご協力いただき、同大学の斉藤さん、上間さん、福富さんに TA として尽力していただきました。会場設営（図 3）と当日の技術サポー
トには、北陽電機のみなさまにご協力いただきました。更に、2014 年度のロボットの作り方を担当した、防衛大学校の冨沢先生には名誉オーガナイザとして、技術サポートにご協力いただ
きました。また、来年度オーガナイザを担当する日本ロボット学会事業計画委員会の愛知県立大の鈴木委員、産総研のジェフ委員にも、当日の運営と技術サポートにご協力いただきました。

図 3 受付開始前の会場の様子

1 日目 (2016 年 6 月 25 日) の実施概要
セミナー1 日目には、以下の演習と講義を実施しました。
演習：Linux の基本操作



演習：ロボットの組み立て

講義：「モータ制御・ロボット動作制御の理論講師 渡辺敦志(東北大 助教)

演習：ROS プログラミングの基本とロボット動作

9 時半に開場、受付を開始し、10 時からスタッフの紹介、会場の諸注意などを行いました（図 4）。ロボットの組み立ての演習ではロボットの動作テストのために Linux 上でコマンドを実行する必要がありますが、事前のアンケートによると約半数の受講者が Linux の利用経験がなかったため、はじめに Linux の基本操作 (正確には、Ubuntu の GUI 操作とターミナル上でのコマンド操作) について、説明を行いました。
続いて、ロボットの組み立てを行いました。工具類は、可能な場合は参加者に持参していただき、不足分のみ、貸し出しました。組み立て作業中に行う、半田付け作業は、共用の半田付け作業机を用意して、北陽電機の機材を借用して順に作業をしていただきました。
昼休みをはさんで、ロボットの組み立て作業の続きを行う予定でしたが、全てのグループが組み立てを完了したため、若干前倒しして、オーガナイザの渡辺から、「モータ制御・ロボット動作制御の理論」について、講義を行いました（図 5）。この講義では、セミナーで利用し

図 4 開始の挨拶をするオーガナイザ

図 5 渡辺による講義

ている制御系の内部の構造と、制御式などを紹介し、ロボット毎に与える必要があるパラメータについての説明を行いました。
講義後には、ROS プログラミングの基本とロボット動作についての演習を行いました。はじめに、基本的な ROS の説明と、ROS の使い方、統合開発環境の使い方を説明し、配布したひな形のソースコードをベースに、ROS を介して教材のロボットに動作指令を与えるプログラム、オドメトリ情報を取得して動作に反映するプログラムの作成を行いました（図 6）。
1 日目の終了時刻までには、ほぼ全てのグループが、ROS を介してロボットに動作指令を与えることができるようになりました。

図 6 一日目の演習に取り組む受講者

2 日目 (2016 年 6 月 26 日) の実施概要
セミナー2 日目には、以下の演習と講義を実施しました。
演習：ROS を用いた URG のデータ取得



演習：ROS の便利機能



講義：「ROS を用いた自律移動ロボットのシステム構築」
講師 原祥尭(千葉工大 fuRo 主任研究員)

演習：ROS navigation パッケージを使ってみよう演習：演習課題と質疑

2 日目の午前中は、北陽電機から各グループに貸し出した URG-04LX-UG1 (URG)から ROS を介してユーザプログラム上でデータを取得する方法を説明し、画面上に任意の方向の距離データを表示する演習を行いました。この演習においては、センサ固有の計測データの仕様、ROSで標準的に使用されている urg̲node の計測範囲外エラーの表現に関する仕様を考慮していなかったため、受講者が作成したプログラムが意図しない動作をする問題が発生しました。そのため、正確な測定方向の範囲を表す図を追加で作成して提示し、説明を行いました。
昼食をはさんで、ROS 上で用意されている、ROS ノードの一括実行の仕組みや、ノード間の接続状態表示、データビューワ、コマンドラインツール類について、説明と演習を行いました。
続いて、千葉工大 fuRo の原祥尭先生から、「ROS を用いた自律移動ロボットのシステム構築」についての講義を実施していただきました（図 7）。講義中では、ROS の仕組みから、

図 7 千葉工大 fuRo の原先生による講義

navigation パッケージで提供されている機能の紹介に加え、ROS で、現状できないことの解説がありました。この種のセミナーでは、できることばかりを強調して説明し、受講者に実状以上の期待を持たせてしまう問題が発生する場合がありますが、本セミナーでは学習した内容を実際に使う際の注意や、現状の限界点を理解していただくことで、演習の内容から大きく踏み込んで、ROS について理解して頂けたと考えています。
続いて、講義で紹介された navigation パッケージを実際に体験するため、slam̲gmapping
パッケージを用いた地図生成と、navigation パッケージを用いた自律走行の演習を行いました（図 8）。自律走行には、ロボットの特性に合わせた調整が必要であり、PC の性能によるパラメータの限界があるため、事前に調整したパラメータを渡して実行していただきました。これにより、スムーズに実習ができたと考えています。
最後に、ここまでで行った演習の内容を使った、演習課題に各自で挑戦していただきました（図 9）。グループによって到達度にはある程度差がありましたが、「ROS navigation パッケージを使ってみよう」の小課題までは、全てのグループが到達できていたようです。

図 8 自律走行の演習中の様子

図 9 演習課題に取り組む受講者

まとめ
本年度のセミナーは、実習形式の回としては初の地方開催だったため、申込数に不安がありましたが、開催 2 週間前頃には定員に達しました。受講者の皆様は、東京を含む東海道・山陽新幹線沿線の方に多く参加していただけたようで、関西開催の意義は大いにあったと考えています。
セミナー当日には、受講者の皆様が積極的に演習に取り組み、全グループが演習内容を完了してロボットを動かすことができていたようです。また、アンケート結果においても、受講者の皆様に概ね満足いただけたようでした。
反省点としては、前述の開発環境の問題が、例年と比べると比較的良好ではありましたが、依然残っていました。また、当日の会場でのネットワーク環境の準備を改善する必要があります。セミナーテキストにも誤りが多くあり、主要な部分についてはテキストと同時に正誤表を配布しましたが、一部、演習時に混乱を招いてしまいました。テキストの問題点については、修正の後に受講者の皆様にデータで配布する予定です。
事前準備と当日の運営にご協力いただいた、防衛大学校の冨沢先生、立命館大学の島田先生、同大学の学生アルバイトの皆様、北陽電機の皆様、講師としてご参加いただいた千葉工大

図 10 集合写真

fuRo の原先生、教材の製作にご協力いただいた、ツジ電子株式会社、株式会社 Doog、FabLab
SENDAI – FLAT の皆様、日本ロボット学会事業計画委員会の皆様、事務局の皆様に心よりお礼申し上げます。
最後に、参加していただいた受講者の皆様に心より感謝申し上げます。

2016 年 7 月 26 日
オーガナイザ渡辺敦志 (東北大学), 嶋地直広 (北陽電機(株) )