/jnmouse_ros_examples

ROS example software for Jetson Nano Mouse

Primary LanguagePythonApache License 2.0Apache-2.0

jnmouse_ros_examples

Jetson Nano MouseのROSサンプルコード集です。

目次

動作環境

ハードウェア

ソフトウェア

Jetson Nano Mouse

Remote Computer

↑目次に戻る

インストール

Jetson Nano用のOS、L4Tのセットアップはこちらのブログ記事をご覧ください。
ROSのセットアップはこちらのブログ記事をご覧ください。

cd ~/catkin_ws/src
# Clone ROS packages
git clone https://github.com/rt-net/jnmouse_ros_examples.git
git clone https://github.com/rt-net/jetson_nano_csi_cam_ros.git 
git clone https://github.com/rt-net/gscam.git
git clone https://github.com/ryuichiueda/raspimouse_ros_2.git

# Install dependencies
rosdep install -r -y -i --from-paths .

# make & install
cd ~/catkin_ws && catkin build
source devel/setup.bash

本パッケージのスクリプトを実行する際はCPUのパフォーマンスを優先するMAXNモードを推奨します。下記コマンドでMAXNモードに変更できます。

sudo nvpmodel -m 0

CPUパフォーマンスとエネルギー消費を抑える5Wモードに戻す場合は下記コマンドを実行します。

sudo nvpmodel -m 1

↑目次に戻る

サンプルの実行方法

line_following

左カメラでキャプチャした黒線を使ってライントレースを行うコード例です。
詳細は https://rt-net.jp/mobility/archives/15597 に記載しています。

使い方

次のコマンドでノードを起動します。

roslaunch jnmouse_ros_examples line_following.launch

ライントレースのコース上で実行すればJetson Nano Mouseがコースに沿って移動します。

実行中は/line_follower_imgに追跡中のラインを示す画像が配信されます。
リモートでrqt_image_viewなどを使用すれば、実際にどのラインを検出しているのかが分かるようになっています。

rqt_image_view

↑目次に戻る

image_undistortion

ステレオカメラ画像の歪み補正とステレオ平行化を行うコード例です。
詳細は https://rt-net.jp/mobility/archives/17588 に記載しています。

使い方

こちらのNotebookでカメラパラメータファイルを作成しconfig/camera_param_fisheye.npzを作成したものと置き換えます。

次のコマンドでノードを起動します。

roslaunch jnmouse_ros_examples image_undistortion.launch

/camera_l/image_rect_color、/camera_r/image_rect_colorに歪み補正とステレオ平行化された画像が配信されます。
リモートでrqt_image_viewなどを使用すれば、補正前と補正後の画像を見比べることができます。

rqt_image_view

下記コマンドで歪み補正した画像を用いてライントレースを行います。

roslaunch jnmouse_ros_examples line_following_undistortion.launch

↑目次に戻る

teleop_vr

スマホVRでJetson Nano Mouseを操作するためのコード例です。
詳細は https://rt-net.jp/mobility/archives/16161 に記載しています。

使い方

次のコマンドでノードを起動します。

roslaunch jnmouse_ros_examples teleop_vr.launch

VRグラスをセットしたスマートフォンから http://jnmouse.local:8085/jnmouse_ros_examples/ にアクセスします。

↑目次に戻る

stereo_depth_estimation

ステレオカメラ画像から深度推定を行うコード例です。
詳細は https://rt-net.jp/mobility/archives/18036 に記載しています。

使い方

image_undistortionによる補正済み画像を用いるため、image_undistortionの環境構築と動作確認を行ってください。

次のコマンドでノードを起動します。

roslaunch jnmouse_ros_examples stereo_depth_estimation.launch

/depth/image_rectに深度画像が配信されます。
リモートでrvizなどを使用すれば、深度画像を見ることができます。

rviz

下記コマンドを実行した場合はカメラ**に写った物体までの推定距離がターミナルに表示されます。また目印として深度画像**に円が描画されます。

roslaunch jnmouse_ros_examples stereo_depth_estimation.launch debug:=true

↑目次に戻る

ライセンス

(C) 2020 RT Corporation <support@rt-net.jp>

各ファイルはライセンスがファイル中に明記されている場合、そのライセンスに従います。特に明記されていない場合は、Apache License, Version 2.0に基づき公開されています。 ライセンスの全文はLICENSEまたはhttps://www.apache.org/licenses/LICENSE-2.0から確認できます。

※このソフトウェアは基本的にオープンソースソフトウェアとして「AS IS」(現状有姿のまま)で提供しています。本ソフトウェアに関する無償サポートはありません。 バグの修正や誤字脱字の修正に関するリクエストは常に受け付けていますが、それ以外の機能追加等のリクエストについては社内のガイドラインを優先します。

↑目次に戻る