• ベストアンサー
  • 困ってます

リアルタイムOSが必要かどうか

Linuxが入ったPCで、AD/DAボードを介してロボット制御(サンプリング周期は1ms)をしようと思うのですが、RT Linuxなどのリアルタイムカーネルは入れた方が良いでしょうか?それとも、1ms程度なら必要ないでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数63
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

こういうのかな http://www.interface.co.jp/mathecon/index.asp ドライバ同梱でSDK(開発セット)を別途買います 基本的には普通のWINDOWSのプログラムと一緒です API(COM)を使って操作するだけ 現状あるシステムでやろうと思うのなら グラフィックボードを操作する開発セット DirextXSDK https://yttm-work.jp/directx/directx_0023.html ハローワールド http://marupeke296.sakura.ne.jp/TIPS_UltraShortDirectXProg.html でしょう ⇡ ハローワールドは基本中の基本 これができれば あとは一緒 Linux でも同じ 巷で話題らしい ITRON(私から言わせれば 腐ってやがる それはもう賞味期限を切れたひきわり納豆並みに原形を保ってない化石化した OSがなぜ?) でも一緒です https://monozukuri-c.com/itron-servicecall/ CPUの作り方と併せて読むもの 作って理解するOS x86系コンピュータを動かす理論と実装 Kindle版 https://www.amazon.co.jp/dp/B07YBQY75J/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1 コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~ (日本語) https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B%EF%BD%9E%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A8%E3%82%A2%EF%BC%86%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A8%E3%82%A2%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98%EF%BD%9E-%E7%9F%A2%E6%B2%A2-%E4%B9%85%E9%9B%84/dp/4822281655 プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 https://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B%EF%BD%9E%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A8%E3%82%A2%EF%BC%86%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A8%E3%82%A2%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98%EF%BD%9E-%E7%9F%A2%E6%B2%A2-%E4%B9%85%E9%9B%84/dp/4822281655 ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識 (日本語) https://www.amazon.co.jp/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%AA%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC2%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84TCP-IP%E3%80%81LAN%E3%80%81%E5%85%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%90%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E6%88%B8%E6%A0%B9/dp/4822283119/ref=pd_bxgy_img_3/356-8831902-3351417?_encoding=UTF8&pd_rd_i=4822283119&pd_rd_r=691796a1-35f3-49af-ae61-95f8f6f0ebf7&pd_rd_w=Msm9p&pd_rd_wg=g49sA&pf_rd_p=e64b0a81-ca1b-4802-bd2c-a4b65bccc76e&pf_rd_r=57ZEQP7EXK6MVGE228NS&psc=1&refRID=57ZEQP7EXK6MVGE228NS 分散システム (未来へつなぐデジタルシリーズ) (日本語) https://www.amazon.co.jp/%E5%88%86%E6%95%A3%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0-%E6%9C%AA%E6%9D%A5%E3%81%B8%E3%81%A4%E3%81%AA%E3%81%90%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%B0%B4%E9%87%8E-%E5%BF%A0%E5%89%87/dp/4320123514 でしょう ⇡ コンピュータ創世記から現代までの知識が付くはず 私ならOSなんか作ってられるかと思い WINDOWS シリアル通信 Arduino(マスター) I2C通信 Arduino(スレイブ)でやりますが Windows上陸でOSを作る意味はなくなった

共感・感謝の気持ちを伝えよう!

質問者からのお礼

色々と教えて頂き本当にありがとうございます。大変助かります。まずは「CPUの創りかた」を読んで勉強しようと思います。ボードやその他の情報についても勉強しようと思います。

関連するQ&A

  • リアルタイムOS(RTOS)の割り込み処理について

    RTOSではないOSの割り込み処理とRTOSの割り込み処理とでは,作成するプログラムは違うのでしょうか? 例えば,Linux PCでロボット制御のためのC言語プログラム(プログラムAとします)を作成して実行したところ,リアルタイム性が良くなかったため,リアルタイムカーネルをインストールしたとします.そうするとプログラムAを何も書き換えずにそのまま実行するとRTOSの割り込み処理がおこなわれるのでしょうか?それとも,プログラムAをRTOSの割り込み処理をするためのプログラムに書き換えないといけないというものでしょうか?(RTOS専用の割り込み処理のための関数などがあるのでしょうか?) よろしくお願いいたします.

  • Linuxでリアルタイム制御するには

    PCからAD/DAボードを介して小型のロボットをリアルタイム制御したいと思っています.これまではWindowsPCにMATLABをいれて,MATLABでプログラムを作って制御していたのですが,LinuxでMATLABを使わずにリアルタイム制御したいと思っています. そこで質問ですが,Linuxでリアルタイム制御するには,どのようなOSが必要なのでしょうか?Ubuntuで大丈夫でしょうか?また,PCにはOSの他に何を入れる必要があるのでしょうか?(これまではWindowsPCにMATLABとそのToolBoxを入れるだけでリアルタイム制御していたので,それ以外のやり方について全くの無知です.) アドバイス頂ければ幸いです.よろしくお願い致します.

  • ストップウォッチ

    油圧シリンダの弁をADボードを用いて外乱(構造物の地震による揺れ)を採取し、それに対してPID制御で調節する研究をしています。この制御は、あらかじめサンプリングクロックを設定し、あるサンプリング数に達したら、その度にswitch文を用いてを制御イベントが発生するプログラムとなっています。しかし、大まかには出来たのですがサンプリング周期がまだ目標には達していなく(目標サンプリング周期1ms)、プログラムをいじっても本当に改善されているのかわかりません。 そこで、このイベントが1回発生するために要する時間を知るため、制御ソフトのダイアログ上に0.001秒オーダーのストップウォッチを付けたいと思っていますが、何か参考になるサイト等はございますか。 上述の通り、サンプリング周期が数msオーダーとなるので、0.001秒オーダーのものが必要となります。 ちなみに使用言語はVC6のMFCを使用しています。また、PC環境等は影響するのでしょうか? よろしくお願いします。

その他の回答 (3)

  • 回答No.4

https://monoist.atmarkit.co.jp/mn/articles/2004/21/news020.html 「リアルタイムOSとは何か、ここ最近10年の動向を概説する」 https://techfactory.itmedia.co.jp/tf/articles/1705/17/news004.html 「「RTOSとは何か」を理解できる7つの特徴」 https://www.eipc.jp/embedded/ranking/20201203/ 「2020年11月度 リアルタイムOS(RTOS)ランキング」 https://www.kumikomi.jp/rtos/ 「組み込みで使用するリアルタイムOS(RTOS)とは?入門者向けに意味、種類、特徴を解説」 https://www.tron.org/ja/onwebseminar/chap3/ 「Chap3:リアルタイムOSのしくみ」

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • TIGANS
  • ベストアンサー率35% (201/568)

そもそもの処理の重さ次第だと思います。 ロボット制御処理が重ければ、リアルタイムカーネルをいれたところで 処理は追いつかず思い通りの動作にはなりません。 (動画を見るときにカクカクするのと同じだと考えてください) 1msのレスポンスを必要とするなら、普通の仮想記憶OSでは無理です。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

Linux でも WINDOWS でも一緒なんだが まず https://www.amazon.co.jp/CPU%E3%81%AE%E5%89%B5%E3%82%8A%E3%81%8B%E3%81%9F-%E6%B8%A1%E6%B3%A2-%E9%83%81-ebook/dp/B08639XM13/ref=bmx_5?pd_rd_w=mNP1T&pf_rd_p=b7a9e04d-ffeb-4fb8-bcb0-1dcc4f2433a5&pf_rd_r=EEA16B18DVDK1ZRAC4SZ&pd_rd_r=bb443d76-4a24-4b3b-b8af-ff9d9d293196&pd_rd_wg=Caqw7&pd_rd_i=B08639XM13&psc=1 これを読め バス の仕組みがわかるはず するとArduinoの見方が変わってくるでしょう リアルタイム という言葉が出て あなたの足りない知識は 割り込みです http://zattouka.net/GarageHouse/micon/Arduino/TIMERtoLED/TIMERtoLED.htm

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。本、教えて頂きありがとうございます。Arduinoで外部割り込み機能を使ってフィードバック制御はしたことがあります。ただ将来的に、複雑なロボットシステムの位置決め制御をPCで制御したく思っており、そのためのスキルを今のうちから勉強して身に付けたいと思っています。Arduinoは複雑なシステムには向いていないと思うので、Interface社のIOボードをPCに挿してRTOSで制御する方法を身につけたいと思っております。

関連するQ&A

  • 高速なサンプリングが可能なAD/DAカード(ボード)を探しています

    大学で研究をしている者です.ハードウェアに関してはほぼ素人です. 実験でAD/DAを行うため,以下のようなAD/DAカード(ボード)を探しています. ・ADは(最低でも)50[kHz]以上のサンプリングが可能 ・DAは10[kHz]程度の出力が可能 調べてみても専門用語が多く,高い買い物になりそうなので,使ってみて失敗したくありません. ですので,ノウハウを知っている方がいらっしゃいましたら御助言よろしくお願いします. 実験はC++を使ってセンサに電圧を出力し,センサからADで得られた波形をリアルタイムに解析するといった内容です. ノートPCを使う予定なのでAD/DAカードと記述しましたが,ボードでもかまいません.(カードよりもボードの方が一般的に性能が良いようなことがあればボードを使うつもりです.) 既出でしたら申し訳ありません.

  • AD、DA変換について

    素人の質問で申し訳ないのですが、 現在実験で動的試験を行なうので、油圧式疲労試験機を使っています。 試験機の制御は付属のソフトで行なっていますが不具合がでるので、PCのC++のプログラムで制御することになりました。 PCにAD、DAボードを用いて、ロードセルと変位計の値を取得し、変位計を正弦波負荷で入力したいのですが、何から手をつけて良いのか分からないのでボードの選び方、取り付け方、サンプリングの仕方等、参考になるHPや書籍等ありましたら教えて頂きたいです。

  • リアルタイム制御用のパソコンについて

    パソコンからAD/DAボードを介して、(MATLAB_Simulinkで組んだプログラムで)モータを制御(サンプル時間:1ms)しようと思っており、現在、それ用のパソコンの購入を検討しています。 このような用途の場合、ノートパソコンでも大丈夫なのでしょうか? 基本的には、使用するパソコンが、AD/DAボードの取説に記載の要求スペックを満たしていれば、問題なく動作するのでしょうか?

  • PCでモータなどをリアルタイム制御する方法

    RinuxOSのPCからAD/DAボード(USB接続)を介して、モーターなどのメカトロニクス機器をリアルタイム制御したいと思っています.それを実現するために, ・UbuntuなどにRTOSをインストールする。 ・PCにAD/DAボードを設置する。 ・デバイスドライバとAPIをインストールする。 まではわかったのですが、「AD/DAボードにアクセスするためのプログラム」をどのように書けばよいのかわかりません.また,「DAボードから任意の電圧を出力する(またはADボードを介して外部電圧をPCに取り込む)」にはどのようにプログラムを書けば良いのかもわかりません.そもそもAPIというものが何をするためのものかも分かっていません. ちなみに、Arduinoを使ってモータの制御はしたことがあります. どなたかアドバイスいただければ幸いです.「そもそもまず~~という本で~~の知識を入れるべき」というレベルでも結構ですので,どうかよろしくお願い致します。

  • PCに挿したIOボードを制御するためのプログラム

    IOボード(AD/DAボード)を使ってPCで入出力制御(例えばモーターのフィードバック制御)をしたいと思っているのですが、ボードにアクセスするためのプログラムや、信号を入出力するためのプログラムをどのように書いたら良いかわかりません。おそらくデータシート?に書いていると思うのですが、知識不足で読み解くことができません。(いままでArduino IDEでArduinoの制御をしたことしかありません。普通にC言語でAVRマイコンをプログラムして制御することはできません。C言語の基礎知識はあります。) そこで質問なのですが、PCから(例えばPCIスロットに挿した)IOボード(AD/DAボード)を制御するための知識は、どのようにして習得できますでしょうか?参考になる本やサイトが見つかりません。PICやAVRなどのマイコンであれば本が色々出ているようなのですが、そのようなマイコンを使えるようになれば、PCからIOボードを制御できる基礎知識は付きますでしょうか?

  • フィードバック制御におけるサンプリング周期の

    ある質問掲示板で、DCモーターのフィードバック制御について質問したときに、質問文の中の「サンプリング周期は1ms」ということに対して、回答者様から、 「>サンプリング周期は1ms←この時点で破綻していると思います。モーターの反応速度はそんなに速くありません。時定数を適切に設定しないと、制御系はまともに動きません。」 と回答を頂いたのですが、これは正しいのでしょうか?制御対象の時定数に対してサンプリング周期が短いことによって制御性能に与える悪影響はあるのでしょうか?PID制御などをする時に微分要素へのノイズ成分の影響が考えられますが、フィルタを通せば済む問題だと思います。その回答者様に追加質問したのですが、返答がありません。この回答者様はどのような理由で、サンプリング周期が1msというのが破綻している、と回答されたと思いますか? どなたかご意見頂けると幸いです。 よろしくお願い申し上げます。

  • I/Oボードについて

    現在、研究でi/oボード及びAD/DAボードを用いて電源の電流値を制御いようとしています。(使用している言語はC++) しかし、この研究の前任者とお会いしたことがなく、引き継ぎ作業が不十分で、これまで制御に携わったことがない私にとって取説等を呼んでも何が何だかさっぱりわかりません。 そこで、以下のことを質問させて頂きます。 ・I/Oボードは、端的に述べるとどういう役割を担っているのでしょうか?ちなみに、私が使うボードは1chタイプのシリアルI/Oボードです。 ・アナログ入力とアナログ出力の違いがよくわかりません。どちらがDAでどちらがADの信号でしょうか? ・関連事項でわかりやすい図書やサイト等がございますでしょうか? 初歩すぎる質問で大変申し訳ありませんが、わかる範囲でかまいませんので、ご回答よろしくお願いします。

  • I/Oボードについて

    在、研究でi/oボード及びAD/DAボードを用いて電源の電流値を制御いようとしています。(使用している言語はC++) しかし、この研究の前任者とお会いしたことがなく、引き継ぎ作業が不十分で、これまで制御に携わったことがない私にとって取説等を呼んでも何が何だかさっぱりわかりません。 そこで、以下のことを質問させて頂きます。 ・I/Oボードは、端的に述べるとどういう役割を担っているのでしょうか?ちなみに、私が使うボードは1chタイプのシリアルI/Oボードです。 ・アナログ入力とアナログ出力の違いがよくわかりません。どちらがDAでどちらがADの信号でしょうか? ・関連事項でわかりやすい図書やサイト等がございますでしょうか? 初歩すぎる質問で大変申し訳ありませんが、わかる範囲でかまいませんので、ご回答よろしくお願いします。

  • DAボードからの電圧出力変化について

    こんばんわ夜分失礼します。 当方、インターフェース社の型番PCIー3343AのDAボードを使用しRTLinuxモジュールより、ラジコン(正確にはラジコンの操縦機)に一定の電圧を送ろうとしております。 DAボードからの出力(今回の場合だと2.4[v])をテスターで確認致しましたが、ラジコンの操縦機につないだ際電圧値が大幅に変わってしまい(大よそ10[v]付近まで)所望の電圧値が得られず対処のしように困っております。 言葉足らずで恐縮ですが、このようなケースの改善方法等についてご意見を頂けましたら幸いです。どうぞ宜しく御願いいたいます。

  • AD/DAボードを用いたAD/DA変換プログラムについて

    C++を用いてAD/DAボードを用いたAD/DA変換プログラムを作成しようと思うのですが、何から書けばいいのか分かりません。 ボードの会社のHPにプログラミングの方法が記載されていたのですが、現在使用している開発環境よりも古いので、あまり参考に出来ませんでした。 調べたりもしたのですが、参考に出来るものがありませんでした。 環境は、  OS : WindowsXP  C++ : Visual C++ 2005 Express Edition  AD/DAボード : Interface製 PCI-3521 です。 参考になりそうなHP、本等がありましたら教えてください。 よろしくお願いします。