実践ロボットプログラミング 第2版: LEGO Mindstorms EV3で目指せロボコン!
藤吉 弘亘
近代科学社好評を得ている第1版を基にEV3に対応!! 本書は、はじめに目標となるアルゴリズムをPADで表して、それに対応するC言語プログラム,GUIプログラムを併記して立体的に学べるよう工夫。初心者から上級者まで、3つのソースを相互参照しながら、ロボットプログラミングを効率よくマスターできる。
【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。
書籍情報
著者: 藤吉 弘亘
共著者: , 藤井 隆司, 鈴木 裕利, 石井 成郎
発行日: 2018-05-29
最終更新日: 2018-05-29
バージョン: 1.0.0
ページ数: 196ページ(PDF版換算)ページ
対応フォーマット: PDF, EPUB
出版社: 近代科学社
対象読者
ロボット,LEGO,Mindstorms,EV3,プログラミングに興味がある人
著者について
1997年 中部大学大学院博士後期課程満期退学,博士(工学)
1997年 米カーネギーメロン大学ロボット工学研究所Postdoctoral Fellow
2000年 中部大学工学部講師
2004年 中部大学工学部准教授
2006年 米カーネギーメロン大学ロボット工学研究所客員研究員
2010年 中部大学工学部教授
ロボットビジョン,計算機視覚,動画像処理,パターン認識・理解の研究に従事.
目次
まえがき
目次
1 ロボット
- 1.1 ロボットとは
- 1.2 ロボットの歴史
- 1.3 ロボットの形態とその応用
- 演習問題1
- コラム1:人工知能とは?
- コラム2:ロボットは何ができるの?
2 プログラミングとは
- 2.1 プログラムとアルゴリズム
- 2.2 プログラムの設計図
- 2.2.1 PAD
- 2.2.2 フローチャート
- 2.3 コンピュータが理解できる言語
- 2.4 C言語の文法
- 2.4.1 変数のデータ型
- 2.4.2 演算子
- 2.4.3 選択構造(if文,switch文)
- 2.4.4 反復構造(for文,while文,do-while文)
- 2.4.5 配列
- 2.4.6 関数
- 2.4.7 #define文
- 2.4.8 外部変数とスコープ
- 演習問題2
- コラム3:きれいなプログラム
3 LEGOロボットをプログラムしよう
- 3.1 LEGO Mindstormsについて
- コラム4:中はどうなってるの?(センサ編)
- コラム5:中はどうなってるの?(EV3 本体,モータ編)
- 3.2 プログラムを作成するには
- 3.2.1 ロボットへプログラムを送るには
- 3.2.2 プログラムの作成
- 3.3 音を鳴らしてみよう
- 3.4 プログラムを実行してみよう
- 3.4.1 プログラムの転送と実行(EV3-SWの場合)
- 3.4.2 NXCのコンパイル(コマンドラインの場合)
- 3.4.3 NXCのコンパイル(BricxCCの場合)
- 3.4.4 プログラムの転送と実行(NXCの場合)
- 3.5 メロディを奏でよう
- 演習問題3
- コラム6:テンポ(BPM)
4 LEGOロボットのモータを制御しよう(基礎編)
- 4.1 ロボットの組み立て
- 4.1.1 入力ポートと出力ポート
- 4.2 ロボットを前進させるには(モータ制御1)
- 4.2.1 前進させるには
- 4.2.2 モータ制御によるロボットの前進
- 4.2.3 動作(実行)の確認
- 4.3 ロボットを旋回させるには(モータ制御2)
- 4.3.1 ロボットを右旋回させる
- 4.3.2 ロボットをその場で90度旋回させるには
- 4.3.3 一周するには(for文,ループブロック)
- 4.4 効率の良いプログラムをつくるには
- 4.4.1 ブロック間のデータのやりとり(EV3-SW)
- 4.4.2 マイブロック(EV3-SW)
- 4.4.3 関数化(NXC)
- 4.4.4 #define(NXC)
- 4.4.5 スパイラル軌跡を描く
- 演習問題4
5 LEGOロボットのセンサを利用しよう(基礎編)
- 5.1 タッチセンサによる障害物回避
- 5.1.1 タッチセンサの接続
- 5.1.2 タッチセンサによる障害物回避(if文,スイッチブロック)
- 5.2 超音波センサによる障害物回避
- 5.2.1 超音波センサの接続
- 5.2.2 超音波センサによる障害物回避
- 5.3 ジャイロセンサによるロボットの旋回
- 演習問題5(1)
- 5.4 カラーセンサによるライントレース
- 5.4.1 カラーセンサの接続
- 5.4.2 カラーセンサによる色の認識
- 5.4.3 カラーセンサによるライントレース
- 5.4.4 ライントレースアルゴリズムの改良
- 演習問題5(2)
- コラム7:センサの値を簡単に調べるには?
- コラム8:EV3本体の状況を知ろう
6 LEGOロボットの高度な制御(応用編)
- 6.1 ディスプレイ表示
- 6.1.1 テキストの表示
- 6.1.2 図形の表示
- 6.2 配列を利用したロボットの教示と再生
- 6.3 シングルタスクと並列タスク
- 6.3.1 並列タスク
- 6.3.2 プログラムのコンフリクトとセマフォ
- 6.3.3 セマフォによるコンフリクト回避(EV3-SW)
- 6.3.4 MUTEXによるコンフリクト回避(NXC)
- 6.4 高度なロボット制御
- 6.4.1 PID制御
- 6.4.2 PID制御による倒立振子ロボットの制御
- 演習問題6
7 ロボット大会に参加しよう(競技編)
- 7.1 自律型ロボット競技WRO
- 7.2 競技について
- 7.3 競技ロボットを考えよう
- 7.3.1 ロボットの設計
- 7.3.2 プログラムの設計
- 7.4 競技ロボットを作ろう
- 7.4.1 ライントレースのプログラム
- 7.4.2 オブジェクト回収プログラム
- 7.4.3 プログラムの合体
- 7.4.4 速いライントレースの実現
- コラム9:壁を使って角度修正
- 7.5 競技会に参加しよう
- 演習問題7
- コラム10:ピッキング能力を競うロボット大会:Amazon Robotics Challenge
8 ロボット作り上達のために
- 8.1 おもしろいロボットを考えよう
- 8.1.1 常識にとらわれない
- 8.1.2 アイディアを組み合わせる
- 8.1.3 身近な物を参考にする
- 8.2 グループで協力して作ろう
- 8.2.1 アイディアを共有する
- 8.2.2 積極的に評価する
- 8.2.3 作業の役割を分担する
- コラム11:ロボット作りの上級者はここが違う
- 8.3 ロボット作りのサイクル
- 演習問題8
9 コース攻略法を考えよう(モデリング入門)
- 9.1 モデリングとは
- 9.2 初心者のためのモデリング入門(UML-B)
- コラム12:UMLとUML-B
- 9.3 コース攻略をモデリング
- 9.3.1 コースの概要とルール
- 9.3.2 必要な機能の確認
- 9.3.3 機能モデルの例
- 9.3.4 詳細モデルの例
- 9.3.5 関連モデルの例
- 9.4 作成したモデルを評価しよう
- 演習問題9
- 9.5 ディティールPADとコーディング
- 9.6 モデリングのまとめ
10 リフレクションをしよう
- 10.1 リフレクションとは
- 10.2 作成中のリフレクション(作業記録の作成)
- コラム13:インターネットを利用した作業記録
- 10.3 作業記録のポイント
- 10.4 作成後のリフレクション(プロセスチャートの作成)
- 10.5 おわりに(学習内容のリフレクション)
付録
- EV3版NXC関数