AIキットにおけるロボットアームの種類:比較分析

AIキットに最適なロボットアームの選び方
急速に進歩する人工知能(AI)とロボット工学の分野において、 AIビジョンキットは機械と環境の相互作用に革命をもたらしています。AIキットは、 myPalletizer 260 、 myCobot 280 、 mechArm 270という3種類のロボットアームとシームレスに連携します。それぞれの違いを詳しく見ていきましょう。情報に基づいた選択に役立ちます。
この記事の内容:
Robotics AI Kitとは何ですか?
AIキットは、ビジョン、ポジショニング、把持、自動ソートの各モジュールを統合したエントリーレベルの人工知能キットです。LinuxシステムとROS(ロボットオペレーティングシステム)をベースとし、1対1のシミュレーションモデルを内蔵しています。ソフトウェア開発を通じてロボットアームの制御をサポートし、人工知能の基礎を短期間で習得できます。
AIキットを使用するメリット
現在、このAIキットは色と画像の認識、自動位置決めとソート機能を実現できます。このキットは、ロボットアームやマシンビジョンに不慣れなユーザーにとって非常に役立ちます。人工知能プロジェクトの構築方法を素早く理解し、ロボットアームとマシンビジョンの連携について詳しく学ぶことができます。

AIキット対応ロボットアーム
myCobot 280(6軸ロボットアーム)
myCobot 280は、世界最小・最軽量の6軸協働型ロボットアーム(Cobot構造)です。重量850g、可搬重量250g、有効作業半径280mm。小型ながらもパワフルで、様々なエンドエフェクタと組み合わせることで、様々なアプリケーションシナリオに対応します。また、複数のプラットフォームでのソフトウェア開発をサポートし、科学研究・教育、スマートホームアプリケーション、ビジネス開発の初期段階など、多様なニーズに対応します。

mechArm 270 (6軸ロボットアーム)
mechArm 270は、中心対称構造(産業構造のような)を備えた小型の6軸ロボットアームです。重量は1kg、可搬重量は250g、動作半径は270mmです。マーカー、デザイナー、そして創作活動に情熱を注ぐすべての方に最適です。

myPalletizer 260(4軸ロボットアーム)
myPalletizer 260は、バックパックに収納可能な軽量4軸ロボットアームです。省スペース化を実現するフィン設計コンセプトを採用し、従来のリンク型教育用4軸ロボットアームの常識を覆します。重量は960g、可搬重量は250g、動作半径は260mmです。メーカーや教育者にとって理想的な設計で、豊富な拡張インターフェースを備えています。

AI キットはロボットアームとどのように連携するのでしょうか?
色認識とインテリジェントソート機能を例に、視覚処理モジュールとコンピューティングモジュールについて学びましょう。それでは、AIキットが3つのロボットアームでどのように動作するかをビデオで見てみましょう。
OpenCV ビジョン処理モジュールを使用する
OpenCV(Open Source Computer Vision)は、コンピュータビジョンアプリケーションの開発に使用されるオープンソースのコンピュータビジョンライブラリです。OpenCVには、画像処理、動画解析、ディープラーニングに基づく物体検出・認識などのための多数の関数とアルゴリズムが含まれています。

画像の処理にはOpenCVを使用します。カメラからのビデオを処理し、色、画像、ビデオ内の平面座標(x, y)などの情報を取得します。取得した情報はプロセッサに渡され、さらに処理されます。
以下は、画像処理(色認識)に使用されるコードの一部です。
# detect cube color
def color_detect(self, img):
# set the arrangement of color'HSV
x = y = 0
gs_img = cv2.GaussianBlur(img, (3, 3), 0) # Gaussian blur
# transfrom the img to model of gray
hsv = cv2.cvtColor(gs_img, cv2.COLOR_BGR2HSV)
for mycolor, item in self.HSV.items():
redLower = np.array(item[0])
redUpper = np.array(item[1])
# wipe off all color expect color in range
mask = cv2.inRange(hsv, item[0], item[1])
# a etching operation on a picture to remove edge roughness
erosion = cv2.erode(mask, np.ones((1, 1), np.uint8), iterations=2)
# the image for expansion operation, its role is to deepen the color depth in the picture
dilation = cv2.dilate(erosion, np.ones(
(1, 1)、np.uint8)、反復回数=2)
# 画像にピクセルを追加します
ターゲット = cv2.bitwise_and(img, img, mask=dilation)
# フィルタリングされた画像はバイナリ画像に変換され、バイナリに配置されます
ret, バイナリ = cv2.threshold(dilation, 127, 255, cv2.THRESH_BINARY)
# 画像の輪郭座標を取得します。輪郭は座標値で、ここでは輪郭のみが検出されます。
輪郭、階層 = cv2.findContours(
膨張、cv2.RETR_EXTERNAL、cv2.CHAIN_APPROX_SIMPLE)
len(輪郭) > 0の場合:
# 誤認について何か対策を
ボックス = [
箱
ボックス内の[cv2.boundingRect(c)、c内の輪郭線]
min(img.shape[0], img.shape[1]) / 10の場合
< min(ボックス[2], ボックス[3])
< min(画像の形状[0], 画像の形状[1]) / 1
]
ボックスの場合:
ボックスインボックスの場合:
x, y, w, h = ボックス
# 要件を満たす最大のオブジェクトを見つける
c = max(輪郭, キー=cv2.contourArea)
# 配置オブジェクトの左下と右上の点を取得します
x, y, w, h = cv2.boundingRect(c)
# 四角形を描いてターゲットの位置を特定する
cv2.rectangle(画像, (x, y), (x+w, y+h), (153, 153, 0), 2)
# 長方形の中心を計算する
x, y = (x*2+w)/2, (y*2+h)/2
# ターゲットに対するmycobotの実際の座標を計算する
mycolor == "red"の場合:
自己色 = 0
mycolor == "green"の場合:
自己色 = 1
elif mycolor == "cyan" または mycolor == "blue" の場合:
自己色 = 2
それ以外:
自己色 = 3
abs(x) + abs(y) > 0の場合:
x, yを返す
それ以外:
なしを返す
画像情報を取得するだけでは不十分です。取得したデータを処理し、ロボットアームに渡してコマンドを実行する必要があります。ここで演算モジュールが活躍します。
数値計算Pythonモジュールを使用する
NumPy(Numerical Python)は、主に数学計算に使用されるオープンソースのPythonライブラリです。NumPyは、行列演算、線形代数、乱数生成、フーリエ変換など、科学計算のための多くの関数とアルゴリズムを提供します。

画像上の座標を処理し、実際の座標に変換する必要があります。これは専門用語で「eye-to-hand」と呼ばれます。PythonとNumPy計算ライブラリを使用して座標を計算し、ロボットアームに送信してソートを実行します。
以下は計算のコードの一部です。
while cv2.waitKey(1) < 0:
# read camera
_, frame = cap.read()
# deal img
frame = detect.transform_frame(frame)
if _init_ > 0:
_init_ -= 1
continue
# calculate the parameters of camera clipping
if init_num < 20:
if detect.get_calculate_params(frame) is None:
cv2.imshow("figure", frame)
continue
else:
x1, x2, y1, y2 = detect.get_calculate_params(frame)
detect.draw_marker(frame, x1, y1)
detect.draw_marker(frame, x2, y2)
detect.sum_x1 += x1
detect.sum_x2 += x2
detect.sum_y1 += y1
detect.sum_y2 += y2
init_num += 1
continue
elif init_num == 20:
detect.set_cut_params(
(detect.sum_x1)/20.0,
(detect.sum_y1)/20.0,
(detect.sum_x2)/20.0,
(detect.sum_y2)/20.0,
)
detect.sum_x1 = detect.sum_x2 = detect.sum_y1 = detect.sum_y2 = 0
init_num += 1
続く
# キューブとmycobot間の座標のパラメータを計算する
nparams < 10の場合:
detect.get_calculate_params(frame)がNoneの場合:
cv2.imshow("図", フレーム)
続く
それ以外:
x1、x2、y1、y2 =detect.get_calculate_params(フレーム)
検出.draw_marker(フレーム, x1, y1)
検出.draw_marker(フレーム, x2, y2)
検出合計x1 += x1
検出合計x2 += x2
検出合計y1 += y1
検出合計y2 += y2
nパラメータ += 1
続く
elif nparams == 10:
nパラメータ += 1
# キューブと mycobot 間の実座標を計算するためのパラメータを計算して設定します
検出.set_params(
(検出値x1+検出値x2)/20.0,
(検出値y1の合計+検出値y2の合計)/20.0,
絶対値(検出値x1-検出値x2)/10.0 +
絶対値(検出値y1-検出値y2)/10.0
)
印刷 ("ok")
続く
# 検出結果を取得
検出結果 = 検出.色検出(フレーム)
detect_resultがNoneの場合:
cv2.imshow("図", フレーム)
続く
それ以外:
x, y = 検出結果
# キューブとmycobot間の実座標を計算する
real_x、real_y = 検出位置の取得(x、y)
num == 20の場合:
検出.pub_marker(real_sx/20.0/1000.0, real_sy/20.0/1000.0)
検出.移動決定(real_sx/20.0, real_sy/20.0, 検出.色)
数値 = 実数 = 実数 = 0
それ以外:
数値 += 1
実数sy += 実数y
実数x += 実数x
AI キット プロジェクトはオープン ソースであり、 GitHubで見つけることができます。
3つのロボットアームの主な違い
3つのロボットアームの動画、コンテンツ、プログラムコードを比較したところ、いずれも同じフレームワークを共有しており、わずかなデータ修正だけで効果的に動作することがわかりました。これら3つのロボットアームには、主に2つの違いがあります。
4自由度ロボットアームと6自由度ロボットアーム
動画でご覧いただけるように、4軸ロボットアームと6軸ロボットアームはどちらもAIキットの作業エリア内で効果的に動作するのに十分な可動範囲を備えています。ただし、セットアップの複雑さには違いがあります。4軸ロボットのmyPalletizer 260は、可動ジョイント数が少ない(4)合理化された設計を採用しているため、起動プロセスを迅速化できます。一方、myCobot 280/mechArm 270は、myPalletizer 260よりも2つ多い6つのジョイントを必要とするため、プログラムでの計算量が増加し、起動時間も長くなります(小規模なシナリオの場合)。
集中型対称構造 vs. myCobot構造
産業用ロボットは主に中心対称構造を採用しています。2軸、3軸、4軸関節を備えたMechArm 270に代表されるこの設計は、両側支持による本質的な安定性とスムーズな動作を実現します。一方、Cobotの構造は、中央支持柱をなくすことでより大きな動作半径と高い動作柔軟性を優先した設計を採用しています。しかし、ロボットアームの安定性はモーター制御のみに依存するため、この柔軟性によって中心対称設計と比較して動作精度に若干の偏差が生じる可能性があります。

選択をする
AIキットに含まれる3種類のロボットアームの中から、最適なものを選択するには、用途に応じて選択する必要があります。考慮すべき重要な要素としては、アームの作業半径、動作環境、耐荷重などが挙げられます。
ロボットアーム技術の探求を目指す方にとって、現在入手可能なロボットモデルはどれも貴重な学習ツールとなります。Elephant Roboticsの各アームの設計理念について、以下に簡単にご説明します。
- myPalletizer 260 : パレタイジング ロボットからヒントを得たこの製品は、パレット上の商品のパレタイジングとハンドリングに優れています。
- mechArm 270 :特殊な構造で動作の安定性を重視した設計。
- myCobot 280 : 協働型ロボットの最近のトレンドを反映し、人間と安全にやりとりでき、人間の力と精度を模倣する機能を誇ります。