CodeZine(コードジン)

特集ページ一覧

【第4回】レゴマインドストームNXTでライントレーサを作成しよう

レゴマインドストームNXTでロボットプログラミング

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/18 10:00

 これまで、RTOS(OSEK OS)の使うための手順と、実際に動作するサンプルプログラムについて解説してきました。今回は、いままでの基本的な内容をふまえて、制御を行うソフトウェアの作成方法について説明していきます。

目次

ライントレーサとは

 ライントレーサは、床上に引かれた線に沿って、前進していくロボットです。通常は、模造紙などの上に太めのマジック等で黒い線を引いて、線をトレースしていきます。

ライントレーサの動作イメージ
ライントレーサの動作イメージ

レゴマインドストームNXTライントレーサロボットの設計

 ここでは、ライントレーサロボットの動作に従って設計を行う手順を解説します。設計は、UML(Unidifed Modeling Language)を利用して行います。

STEP1:ライントレーサの制御パターンを考える(状態遷移図による制御方式決定)

 線上をトレースするためには、どのような制御を行うかを決定する必要があります。制御内容にかかわらず構造や動作を分析・設計することも可能ですが、制御方式を決定してからのほうがより具体的になります。

利用可能な機器

 レゴマインドストームNXT(※)では、以下の機器が本体に用意されており、提供されているAPIを利用して制御することができます。

  • モーター(タイヤを装着可能)
  • 真下の明るさを検知する照度センサ
  • バンパースイッチ

 本稿では、一般的な名称として「レゴマインドストームNXT」を使用していますが、正式な製品名は「教育用レゴマインドストームNXT」です。

ライントレースの実現方法

 モータ(とタイヤ)を使って前進することができます。真下の明るさ(線の色)は、照度センサの値を読み取ることで判定できそうです。スイッチも用意されているので、動作開始/終了もNXTの操作(バンパースイッチのON)をきっかけとして行えそうです。以上のことから、バンパースイッチが押されたら前進を開始し、線上であれば右に曲がり、線外であれば左に曲がることで、線の端にそって進むことができそうです。

制御のアルゴリズム

 「ライントレースの実現方法」で検討した内容を詳細化するために、ライントレーサがとりうる「状態」と「状態」間の遷移条件をまとめます。このような情報を整理する場合は、UMLの状態遷移図(ステートチャート図)を使います。

 今回のライントレーサの状態遷移図は以下のようになります。「状態」間の遷移制御=「プログラムで実装する制御内容」となります。

ライントレーサの状態遷移図
ライントレーサの状態遷移図

  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 柏崎 真司(カシワザキ シンジ)

    (株)永和システムマネジメント所属。カーネル開発から、組み込み開発の世界へと足を踏み入れた。共通部分を多く感じながらも、組込み独自の魅力に魅了されつつある。また、組込み開発と同様、それ以上に、家族と過ごす時間もこよなく愛している。

バックナンバー

連載:[組込み開発入門] ロボットを作ろう
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5