リアルタイムOS, ステレオカメラ, プログラミング, NVIDIA
その他
ここでは, プログラミングに関することが書かれます. 多くのプログラミング言語で共通することが書かれます.
OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.
このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.
話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.
話の流れは次のとおりです.
- RTOSとは
- 目標と使い方
- 準備
- ファイル構成
- スクリプト
- ボードの設定
- 仕組み
対応状況
- Arduino UNO
- Arduino Mega
動作確認済み環境
- Arduino IDE 1.8.10
- Arduino AVR Boards 1.8.1
ステレオカメラは,空間の深度を測定するのに使われます.本稿では,二台のウェブカメラを用いてステレオカメラを実装します.ある程度のロバスト性を確保するため,キャリブレーションも行います.
結果,以下のような深度画像を得ることができた.
あるファイルもしくは, フォルダが指定されたフォルダ以下にあるかどうかの簡単な判定方法について考える.
広く使われているUnicode規格を理解し, エンコーディングの手法, UTF-8, UTF-16, UTF-32, を理解して, 多言語の文字コードを扱えるようになることを目指します. 具体的に, UTF-8, UTF-16, UTF-32間の変換方法をC++で実装し, 手法はできるだけ速い方法を用います.
公式リファレンスを参考しつつ, Ubuntu 上にNVIDIA GPU ドライバ, CUDA, cuDNNを入れて, tensorflow をGPUで動かす方法を, フローチャートで進めます.