目次
1. ROS のパフォーマンス特性
2. ROS ディストリビューション バージョン
ROS システム アーキテクチャ
1. 計算グラフの観点から ROS アーキテクチャを理解する
2. ファイル システムの観点から ROS アーキテクチャを理解する
3. オープン ソース コミュニティの観点から ROS アーキテクチャを理解する
ホームページ 運用・保守 Linuxの運用と保守 ros は Linux のどのバージョンですか?

ros は Linux のどのバージョンですか?

Apr 12, 2023 pm 04:13 PM
linux

ros は Linux ディストリビューション バージョンです。 ROS の完全な名前はロボット オペレーティング システムで、ロボット オペレーティング システムと訳されます。ROS は Linux カーネルに基づいており、Linux 上でのみ実行できます。 ROS は、ハードウェア抽象化、基礎となるデバイス制御、共通機能実装、プロセス間メッセージング、パケット管理など、いくつかの標準オペレーティング システム サービスを提供します。 ROS は 2 つの層に分けることができ、下位層は前述のオペレーティング システム層であり、上位層は位置マッピング、アクション プランニング、知覚などのさまざまな機能を実装するために幅広いユーザー ベースによって提供されるさまざまなソフトウェア パッケージです。 。

ros は Linux のどのバージョンですか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

ROS 定義の紹介

ROS はロボット オペレーティング システムの略で、ロボット オペレーティング システムと訳されます。 Linux カーネルをベースにしており、現在は Linux 上でのみ実行されます。

ROS 設計者は、ROS を「ROS = Plumbing Tools Capabilities Ecosystem」と説明しています。つまり、ROS は、通信メカニズム、ツール ソフトウェア パッケージ、高度なロボット スキル、およびロボット エコシステムの集合です。

名前が示すように、ROS はシステムです。これは、私たちが使用する通常のオペレーティング システムに似ています。ROS は、基礎となるロボット ハードウェアをカプセル化します。言い換えれば、異なるロボットに含まれるさまざまな基礎となるパラメータは、ROS を使用して開発する人の目には同じに見えます。ここで、ROS には現在ビジュアル インターフェイスがないことにも言及する必要があります。私たちが使っている Windows や Linux はビジュアルインターフェースを持っているため、画像インターフェースを直接見て操作することができますが、ROS にはありません。私たちがオペレーティング システムと呼ぶものは、必ずしもビジュアル インターフェイスを備えている必要はありません。興味があれば、コマンド ラインのみがあり、カラフルなインターフェイスがなかった初期のオペレーティング システムを見てみることができます。

ROS は、ハードウェア抽象化、基盤となるデバイス制御、共通機能実装、プロセス間メッセージング、データ パケット管理など、いくつかの標準オペレーティング システム サービスを提供します。 ROS はグラフ アーキテクチャに基づいているため、さまざまなノード上のプロセスがさまざまな情報 (センシング、制御、ステータス、計画など) を受信、公開、集約できます。

ROS は 2 つの層に分けることができます。下位層は上記のオペレーティング システム層であり、上位層は位置マッピング、行動計画、認識、シミュレーションなど。

ROS は多義語であり、コミュニケーション メカニズムにもなります。 ROS 開発では、ノードはアプリケーションを表すために使用され、ノードは実行可能プログラムです。ノード間の通信は ROS を介して行われます。 ROS は、ノード マネージャー (マスター) を通じて各ノードを管理します。原則の具体的な実現については、後ほど説明します。

さらに、ROS は、ロボット開発のための一連のツールキット、アルゴリズム、スキル、プラットフォーム、エコロジーなども表します。

ROS の歴史。端的に言えば、ROS とは、ロボットを開発するときに優れていると考えた偉い人たちのグループ (便利なライブラリやソフトウェア、またはアイデア、プロトコル、標準など) が集まって形成されたものです。ロボットの開発では、さまざまなロボットの統一規格が存在せず、見たことのないロボットを開発するたびに、多くのことを改めて学習する必要があり、非常に不便です。オペレーティング システムから作成するシステムを、ロボットが最下層をカプセル化するシステムも構築できないのではないかと考えました。こうしてROSが誕生しました。何年にもわたる改良を経て、ROS はますます完璧になり、ますます多くの人がそれを使用しています。

ROS 関数

ROS が何をするのか知りたければ、一文を知るだけで十分です。 ROS はロボットやロボット アームの開発に使用されます。

ロボット開発の歴史において、標準化作業はまだ十分に行われていません。ロボットが異なれば、使用するシステムやプログラムなどが異なるため、クロスプラットフォームである限り開発は非常に困難になります。このような問題を解決するためにROSが誕生しました。 ROS は、カプセル化を通じて基盤となるハードウェアを開発者に対して透過的にすることができ、クロスプラットフォーム開発の困難さを大幅に軽減します。

ROS を選択する理由は、これまで述べてきたことを誰もが理解できるようにするためであり、多くの人に使用され、広く普及しているということに他なりません。 ROS には、多くのフィールド、データ、関数、コンテンツ、知識などが含まれています。ROS を使用せずに独自のデータベースを構築したいですか?

1. ROS のパフォーマンス特性

ROS を正式に学習する前に、まず ROS のいくつかの特性、つまりメタ オペレーティング システム、分散通信メカニズム、疎結合について紹介しましょう。 . 知覚的な理解を構築するのに役立つソフトウェア フレームワーク、豊富なオープンソース関数ライブラリなど。

ROS は、ロボット工学分野のメタ オペレーティング システムです。つまり、これは本当の意味でのオペレーティング システムではなく、その基礎となるタスク スケジューリング、コンパイル、デバイス ドライバーなどは依然としてネイティブ オペレーティング システムである Ubuntu Linux によって完成されます。

ROS は、実際には Ubuntu Linux 上で実行されるサブオペレーティング システム、またはソフトウェア フレームワークですが、ハードウェアの抽象化、関数呼び出し、プロセス管理などのオペレーティング システムのような機能を提供します。また、フェッチ、コンパイル、クロスプラットフォームのための関数とツールも提供します。

ROS の中心的なアイデアは、ロボットのソフトウェア機能をノードにし、ノードが相互にメッセージを送信することで通信することです。 これらのノードは、同じホスト、異なるホスト、さらにはインターネット上に展開できます。 ROS ネットワーク通信メカニズムのマスター ノード (マスター) は、ネットワーク内のさまざまなノード間の通信プロセスの管理とスケジュールを担当し、ネットワーク内のグローバル パラメーターを構成するサービスも提供します。

ROS は、分散通信メカニズムを使用してノード間のプロセス通信を実現する疎結合ソフトウェア フレームワークです。 ROS のソフトウェア コードは疎結合方式で編成されており、柔軟な開発プロセスと容易な管理とメンテナンスを備えています。

ROS には豊富なオープンソース関数ライブラリがあります。 ROS は、BSD (Berkeley Software Distribution) プロトコルに基づくオープン ソース ソフトウェアであり、誰でも変更、再利用、再配布、商用およびクローズドソース製品での使用が可能です。ROS を使用すると、独自のロボット プロトタイプを迅速に構築できます。

2. ROS ディストリビューション バージョン

Linux ディストリビューション バージョンと同様に、ROS ディストリビューション バージョンには、一般的に使用される一連の関数パッケージが組み込まれています。 ROS システムはパッケージ化され、ネイティブ システムにインストールされます。 ROS はもともと Ubuntu システムに基づいて開発されており、ROS のリリース バージョン名も Ubuntu と同じルールを採用しており、バージョン名は最初の文字が同じ 2 つの英単語で構成され、バージョンの最初の文字が選択されます。図 1-1 は、ROS のいくつかのメジャー リリースをアルファベットの昇順に示しています。

ros は Linux のどのバージョンですか?
図 1-1 ROS のメジャー バージョン

ROS システム アーキテクチャ

ROS をインストールしたら、多くの友人がすぐにプログラムを書き始めたくなるはずです。 ROS のアーキテクチャは比較的複雑であるため、後で説明するさまざまな概念を簡単に理解するために、誰もが ROS のさまざまな概念を包括的に理解できるように、最初に ROS のシステム アーキテクチャについて説明します。公式声明によると、ROS アーキテクチャは、計算グラフファイル システムオープン ソース コミュニティの観点から理解できます。

1. 計算グラフの観点から ROS アーキテクチャを理解する

ROS の実行可能プログラムの基本単位は node (ノード) と呼ばれます、ノード間の通信は、図 1-3 に示すように、計算図とも呼ばれるネットワーク図を形成するメッセージ メカニズムを通じて実行されます。

ros は Linux のどのバージョンですか?
図 1-3 ROS 計算グラフの構造

ノードは実行可能プログラムであり、通常はプロセスとも呼ばれます。 ROS 機能パッケージで作成された各実行可能プログラムは、起動されてシステム プロセス (図 1-3 のノード 1、ノード 2、ノード 3 など) にロードされた後、ROS ノードになります。

ノードはメッセージの送受信によって通信します。メッセージの送受信メカニズムは、topic(トピック)、service(サービス)、および action# に分かれています。 ##(action). 図 1-3 では、ノード 2 とノード 3、ノード 2 とノード 5 はトピック通信を使用し、ノード 2 とノード 4 はサービス通信を使用し、ノード 1 とノード 2 はアクション通信を使用します。 計算グラフ内のノード、トピック、サービス、およびアクションには、識別子として一意の名前が必要です。

ROS はノードを使用してコードと機能を分離し、システムの耐障害性と保守性を向上させます。したがって、すべてを包括する巨大なノードを 1 つ作成するよりも、各ノードに特定の単一の機能を提供させる方がよいでしょう。 C を使用してノードを作成する場合は、ROS が提供する roscpp ライブラリを使用する必要があります。Python を使用してノードを作成する場合は、ROS が提供する rospy ライブラリを使用する必要があります。

メッセージは、メッセージ メカニズムやメッセージ タイプなど、計算グラフの鍵となります。メッセージ メカニズムにはトピック、サービス、アクションの 3 つのタイプがあり、各メッセージ メカニズムで転送されるデータは特定のデータ型 (メッセージ タイプ) を持ち、メッセージ タイプはトピック メッセージ タイプ、サービス メッセージ タイプ、およびアクション メッセージ タイプに分類できます。メッセージのメカニズムとメッセージの種類については、セクション 1.5 で説明します。

データ パッケージ (rosbag) は、トピック内のデータの保存と再生に特別に使用される ROS のファイルです。収集が難しい一部のセンサー データは、データ パッケージに記録してから、アルゴリズムのパフォーマンスのデバッグを実行します。

パラメータ サーバーは、ROS ネットワーク全体のノードに簡単に変更されたパラメータを提供できます。パラメータは、静的パラメータや動的パラメータなど、外部から変更できるノード内のグローバル変数と考えることができます。静的パラメータは通常、ノードの起動時にノードの動作モードを設定するために使用されます。動的パラメータは、モータ制御ノードの PID 制御パラメータなど、ノードを動的に構成したり、ノードの実行中にノードの動作ステータスを変更したりするために使用できます。

マスター ノードは、各ノード間の通信プロセスのスケジューリングと管理を担当します。したがって、マスター ノードを最初に起動する必要があり、roscore コマンドを通じて起動できます。

2. ファイル システムの観点から ROS アーキテクチャを理解する

ROS プログラムの異なるコンポーネントは、異なるフォルダーに配置する必要があります。これらのフォルダーには、次に従ってファイルが保存されます。整理すると、これは ROS のファイル システム構造です (図 1-4 を参照)。

ros は Linux のどのバージョンですか?
図 1-4 ROS ファイル システムの構造

ワークスペースは、関数パッケージ、コンパイル パッケージを含むパッケージです。コンパイルされた実行可能ファイルのフォルダー内に、ユーザーは自分のニーズに応じて複数のワークスペースを作成し、各ワークスペースで異なる目的の機能パッケージを開発できます。図 1-4 では、catkin_ws という名前のワークスペースを作成しました。このワークスペースには、src、build、devel の 3 つのフォルダーが含まれています。

  • src フォルダ各機能パッケージと、その機能パッケージを構成する CMake 設定ファイル CMakeLists.txt を配置します。ここで説明すると、ROS のソース コードは catkin ツールを使用してコンパイルされ、catkin ツールは CMake テクノロジに基づいているため、src ソース ファイル領域と各関数パッケージに CMake 構成ファイル CMakeLists.txt が表示されます。役割を果たします コンパイルの役割を設定します。
  • build フォルダーCMake や catkin 関数パッケージのコンパイル時に生成されるキャッシュ、設定、中間ファイルなどを配置します。
  • devel フォルダコンパイル済みの実行可能プログラムを配置します。これらの実行可能プログラムは、インストールせずに直接実行できます。関数パッケージのソース コードがコンパイルされてテストされると、これらのコンパイルされた実行可能ファイルを直接エクスポートして、他の開発者と共有できます。

関数パッケージは、ROS のソフトウェア構成の基本的な形式であり、ROS プログラムを作成するための最小限の構造と最小限の内容があり、ROS ノードのソース コード、スクリプト、設定ファイルなどが含まれています。

i. CMakeLists.txt は、Cmake 関数パッケージのコンパイル構成をコンパイルするために使用される関数パッケージ構成ファイルです。

ii. package.xml は関数パッケージのマニフェスト ファイルであり、XML タグ形式を使用して、パッケージ名、開発者情報、依存関係など、関数パッケージのさまざまな関連情報をマークします。主に機能パッケージのインストールと配布を容易にするためです。

iii. include/ は機能パッケージのヘッダー ファイル ディレクトリであり、機能パッケージ プログラムに含まれる *.h ヘッダー ファイルをここに配置できます。インクルード ディレクトリに第 1 レベルのパス も追加される理由は、独自定義のヘッダー ファイルとシステム標準のヘッダー ファイルを区別するためです。 を実際の関数パッケージの名前に置き換えます。ただし、プログラムによってはヘッダー ファイルがない場合など、このフォルダーは必須ではありません。

iv. msg、srv、action の 3 つのフォルダーは、それぞれ非標準のトピック メッセージ、サービス メッセージ、アクション メッセージの定義ファイルを格納するために使用されます。 ROS は、ユーザーがメッセージ通信プロセスで使用されるメッセージ タイプをカスタマイズできるようにします。プログラムは標準のメッセージ タイプのみを使用するため、これらのカスタム メッセージは必要ありません。

v. script ディレクトリには Bash、Python、その他のスクリプト ファイルが保存されますが、これは必須ではありません。

vi. 起動ディレクトリには、ノードの起動ファイルが保存されます。*.launch ファイルは、1 つ以上のノードを起動するために使用されます。複数のノードを持つ大規模なプロジェクトで非常に役立ちますが、必須ではありません。

vii. src ディレクトリには、関数パッケージ ノードに対応するソース コードが格納されます。関数パッケージには、異なる関数を実行するために複数のノード プログラムを含めることができ、各ノード プログラムは独立して実行できます。ここの src ディレクトリには、これらのノード プログラムのソース コードが格納されます。必要に応じてフォルダーやファイルを作成してソース コードを整理できます。ソース コードは C、Python などで記述できます。

3. オープン ソース コミュニティの観点から ROS アーキテクチャを理解する

ROS はオープン ソース ソフトウェアであり、それぞれの独立したオンライン コミュニティがソフトウェアとチュートリアルを共有し、貢献して、図 1-5 に示すように、強力な ROS オープン ソース コミュニティ。

ros は Linux のどのバージョンですか?
図 1-5 ROS のオープン ソース コミュニティ構造

ROS の開発は、オープン ソースと共有ソフトウェアに依存しています。これらのコードは、GitHub ソース コード共有、Ubuntu ソフトウェア ウェアハウス リリース、サードパーティ ライブラリなど、さまざまな組織による共有と公開によって提供されます。 ROS の公式 Wiki は重要なドキュメントのディスカッション コミュニティであり、対応するドキュメント ページを簡単に公開および変更できます。 ROS Answer ホームページには、ROS 開発者からの多数の質問と回答が含まれており、ROS 開発で遭遇するさまざまな問題についての議論が非常に活発です。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がros は Linux のどのバージョンですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

DebianのNginx SSLパフォーマンスを監視する方法 DebianのNginx SSLパフォーマンスを監視する方法 Apr 12, 2025 pm 10:18 PM

この記事では、Debianシステム上のNginxサーバーのSSLパフォーマンスを効果的に監視する方法について説明します。 Nginxexporterを使用して、NginxステータスデータをPrometheusにエクスポートし、Grafanaを介して視覚的に表示します。ステップ1:NGINXの構成最初に、NGINX構成ファイルのSTUB_STATUSモジュールを有効にして、NGINXのステータス情報を取得する必要があります。 NGINX構成ファイルに次のスニペットを追加します(通常は/etc/nginx/nginx.confにあるか、そのインクルードファイルにあります):location/nginx_status {stub_status

Debianシステムでリサイクルビンをセットアップする方法 Debianシステムでリサイクルビンをセットアップする方法 Apr 12, 2025 pm 10:51 PM

この記事では、デビアンシステムでリサイクルビンを構成する2つの方法を紹介します:グラフィカルインターフェイスとコマンドライン。方法1:Nautilusグラフィカルインターフェイスを使用して、ファイルマネージャーを開きます。デスクトップまたはアプリケーションメニューでNautilusファイルマネージャー(通常は「ファイル」と呼ばれる)を見つけて起動します。リサイクルビンを見つけてください:左ナビゲーションバーのリサイクルビンフォルダーを探してください。見つからない場合は、「他の場所」または「コンピューター」をクリックして検索してみてください。リサイクルビンプロパティの構成:「リサイクルビン」を右クリックし、「プロパティ」を選択します。プロパティウィンドウで、次の設定を調整できます。最大サイズ:リサイクルビンで使用可能なディスクスペースを制限します。保持時間:リサイクルビンでファイルが自動的に削除される前に保存を設定します

Apacheサーバーを再起動する方法 Apacheサーバーを再起動する方法 Apr 13, 2025 pm 01:12 PM

Apacheサーバーを再起動するには、次の手順に従ってください。Linux/MacOS:sudo systemctl restart apache2を実行します。 Windows:Net Stop apache2.4を実行し、ネット開始apache2.4を実行します。 Netstat -A |を実行しますサーバーのステータスを確認するには、STR 80を見つけます。

ネットワーク監視におけるDebian Snifferの重要性 ネットワーク監視におけるDebian Snifferの重要性 Apr 12, 2025 pm 11:03 PM

検索結果は「DebiansNiffer」とネットワークモニタリングにおけるその特定のアプリケーションに直接言及するわけではありませんが、「Sniffer」はネットワークパケットキャプチャ分析ツールを指し、Debianシステムでのアプリケーションは他のLinux分布と本質的に違いはありません。ネットワークの監視は、ネットワークの安定性を維持し、パフォーマンスを最適化するために重要であり、パケットキャプチャ分析ツールが重要な役割を果たします。以下は、ネットワーク監視ツールの重要な役割(Debianシステムで実行されるSnifferなど)を説明しています。ネットワーク監視ツールの価値:高速障害場所:帯域幅の使用状況、遅延、パケット損失率など、ネットワーク障害の根本原因を迅速に特定し、トラブルシューティング時間を短縮できるようなネットワークメトリックのリアルタイム監視。

Debian Readdirのパフォーマンスを最適化する方法 Debian Readdirのパフォーマンスを最適化する方法 Apr 13, 2025 am 08:48 AM

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする

Apacheを開始できない問題を解決する方法 Apacheを開始できない問題を解決する方法 Apr 13, 2025 pm 01:21 PM

Apacheは、次の理由で起動できません。構成ファイル構文エラー。他のアプリケーションポートとの競合。権限の問題。メモリから。デッドロックを処理します。デーモン障害。 Selinux許可の問題。ファイアウォールの問題。ソフトウェアの競合。

See all articles