Main Content

plot

レーザーまたは LIDAR スキャンの読み取り値の表示

R2019b 以降

説明

plot(scanMsg) は、入力 LaserScan オブジェクト メッセージで指定したレーザー スキャンの読み取り値をプロットします。座標軸は、レーザー スキャナーでサポートされる最大範囲に適合するよう自動的にスケーリングされます。

メモ

plot は削除されます。代わりに rosPlot を使用してください。詳細については、ROS メッセージ構造体の関数を参照してください。

plot(scanObj) は、scanObj で指定した LIDAR スキャンの読み取り値をプロットします。

plot(___,Name,Value) は、1 つ以上の Name,Value 引数のペアによって指定された追加オプションを提供します。

linehandle = plot(___) は、これまでの構文のいずれかの引数を使用して、line series ハンドルの列ベクトルを返します。line series を作成した後でそれらのプロパティを変更する場合は linehandle を使用します。

ROS レーザー スキャン メッセージをプロットする場合、MATLAB® は軸の向きに対する ROS の標準の規則に従います。この規則は、正の x は前方向、正の y は左方向、正の z は上方向を示しています。詳細については、ROS Wiki の Axis Orientation を参照してください。

すべて折りたたむ

ROS ネットワークに接続します。レーザー スキャンのトピックをサブスクライブし、メッセージを受信します。

rosinit('192.168.17.129')
Initializing global node /matlab_global_node_90279 with NodeURI http://192.168.17.1:50889/
sub = rossubscriber('/scan');
scan = receive(sub);

レーザー スキャンをプロットします。

plot(scan)

ROS ネットワークをシャットダウンします。

rosshutdown
Shutting down global node /matlab_global_node_90279 with NodeURI http://192.168.17.1:50889/

ROS ネットワークに接続します。レーザー スキャンのトピックをサブスクライブし、メッセージを受信します。

rosinit('192.168.17.129')
Initializing global node /matlab_global_node_31712 with NodeURI http://192.168.17.1:51463/
sub = rossubscriber('/scan');
scan = receive(sub);

最大範囲を指定してレーザー スキャンをプロットします。

plot(scan,'MaximumRange',6)

ROS ネットワークをシャットダウンします。

rosshutdown
Shutting down global node /matlab_global_node_31712 with NodeURI http://192.168.17.1:51463/

LIDAR データを距離と角度のベクトルとして指定します。これらの値には、センサーの範囲外の読み取り値が含まれます。

x = linspace(-2,2);
ranges = abs((1.5).*x.^2 + 5);
ranges(45:55) = 3.5;
angles = linspace(-pi/2,pi/2,numel(ranges));

距離と角度を指定することにより、LIDAR スキャンを作成します。LIDAR スキャンのすべての点をプロットします。

scan = lidarScan(ranges,angles);
plot(scan)

Figure contains an axes object. The axes object with title LiDAR Scan, xlabel X, ylabel Y contains a line object which displays its values using only markers.

指定した最小/最大距離に基づいて、無効な点を削除します。

minRange = 0.1;
maxRange = 7;
scan2 = removeInvalidData(scan,'RangeLimits',[minRange maxRange]);
hold on
plot(scan2)
legend('All Points','Valid Points')

Figure contains an axes object. The axes object with title LiDAR Scan, xlabel X, ylabel Y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent All Points, Valid Points.

入力引数

すべて折りたたむ

sensor_msgs/LaserScan ROS メッセージ。LaserScan オブジェクト ハンドルとして指定します。

LiDAR スキャンの読み取り値。lidarScan (Navigation Toolbox) オブジェクトとして指定します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name引用符で囲みます。

例: "MaximumRange",5

座標軸の親。レーザー スキャンの描画に使用する、"Parent" と axes オブジェクトからなるコンマ区切りのペアとして指定します。既定では、レーザー スキャンは現在アクティブな座標軸にプロットされます。

レーザー スキャンの範囲。"MaximumRange" とスカラーからなるコンマ区切りのペアとして指定します。この名前と値のペアの引数を指定すると、x 軸の下限と上限、y 軸の上限が、指定した値に基づいて設定されます。y 軸の下限は、レーザー スキャナーの開口角によって自動的に決定されます。

この名前と値のペアは、scanMsg をレーザー スキャンとして入力した場合のみ機能します。

出力

すべて折りたたむ

1 つ以上の chart line オブジェクト。スカラーまたはベクトルとして返されます。この値は一意の識別子で、特定の chart line のプロパティのクエリと変更に使用できます。

バージョン履歴

R2019b で導入

すべて展開する