ロボティクス

プロのロボットエンジニア、愛好家、研究者、学生のためのQ&A

3
垂直関節軸のフォワードキネマティクス/ DHパラメータ
私は、DH規則を使用して、Kuka youBotのフォワードキネマティクスを計算しようとしています。 http://www.youbot-store.com/youbot-developers/software/simulation/kuka-youbot-kinematics-dynamics-and-3d-model アームジョイント1とアームジョイント5は回転し、世界のz軸を中心に回転します(空を指します)。 しかし、他の3つのジョイントはすべて回転しており、x軸を中心に回転します。 DH規約では、「ジョイント距離」は「共通法線」に沿っているとされています。しかし、私が誤解しない限り、唯一の一般的な法線はy軸であり、それも水平であり、関節距離はありません。 ジョイント1-ジョイント2にリンクオフセットを使用すると考えていましたが、ジョイント4-ジョイント5で問題が発生しました。リンクオフセットは前のz軸に沿っていると想定されており、その場合、水平方向のどこにも向いていません。しかし、リンク距離STILLも機能しません。これは、一般的な法線距離であり、確立された法線はx軸であり、水平でもあるためです。だから今、私は非常にねじ込まれていると感じています。簡単な解決策があると確信していますが、それを見ることができません。 それで、私は、関節の回転軸が垂直である場合、1-2と4-5の間のリンクに対してどのようにDH規則を使用するのかという質問だと思います。

4
オドメトリと推測航法
ロボット工学に関して、オドメトリと推測航法の違いは何ですか? オドメトリは位置を推定するためにホイールセンサーを使用し、推測航法もホイールセンサーを使用しますが、「方位センサー」も使用することを読みました。誰かがこの点について詳しく説明してくれませんか?

4
四元数を使用してPIDクワッドコプター安定化ループに供給する方法は?
クワッドコプターを作っています。PIDループを設定して、特定のオイラー角(ピッチとロール)で安定させます。ロールが90度(45度以上)に近づくと、問題が発生します。ジンバルロックに近づくと、値は意味をなさなくなります。45度の回転制限を超える、ループなどの複雑な操作を行うつもりです。 クォータニオンを使用してこの問題を解決するにはどうすればよいですか?(MPU-9150から四元数を取得します。)四元数の問題について多くの記事を読みましたが、それらはすべて3Dソフトウェアでの回転、および2つの回転ポイント間のトゥイーンについて話しています。私は虚数と行列を知らないので、これはほとんど意味がありません。

2
私たちのクワッドコプターは、その場にホバリングする代わりに前進します。それを修正するには?
友達とクワッドコプターをやろうとしているのですが、問題があります。その場でホバリングするのではなく、前進します。それを説明するビデオを作りました、あなたはここでそれを見ることができます。 ご覧のように、クワッドコプターでフライトし、コントローラーに触れないで前進します。後退するように修正する必要があり、再び前進します。 kk2.1.5を使用しています。 HobbyKing KK2.1.5マルチローターコントローラーは、マルチローター航空機(トリコプター、クワッドコプター、ヘキサコプターなど)のフライトコントロールボードです。その目的は、飛行中に航空機を安定させることです。これを行うには、6050MPUジャイロ/加速度計(ロール、ピッチ、ヨー)から信号を受け取り、その信号をAtmega644PA ICに渡します。次に、Atmega644PA ICユニットは、ユーザーが選択したファームウェアに従ってこれらの信号を処理し、インストールされている電子スピードコントローラー(ESC)に制御信号を渡します。これらの信号は、ESCにモーターの回転速度を微調整して、マルチロータークラフトを安定させるよう指示します。 私たちはいくつかのテストを行いました。ビデオでわかるように、バッテリーを後ろに置いて、重さがかからないようにしました。デバッグモードで値を確認すると、何も押されていない場合、すべての値が0になります。

2
ラインフォロワー最適化
私はラインフォロワーロボットの構築に取り組んでおり、そのパフォーマンスを最適化したいと考えています。PIDアルゴリズムを使用するよう提案されました。私はPIDについてたくさん読みましたが、以下について少し混乱しています: を使用してerror_valueを計算しました が、モーター速度の変化に関して、差(つまり、現在の位置-セットポイント)またはエラー値の比較中に何を使用するかについて混乱しています。それは私が使うべきですkp∗ p r o p o r t i o n a l + 。。。kp∗proport私oんal+。。。k_p * proportional + ... if (difference > 0) { //code for changing appropriate motor's speed using error_value } または if (error_value > 0) { //code for changing appropriate motor's speed using error_value } …

3
KINECTを使用してモバイル自律ロボットのマップを改善するにはどうすればよいですか
私の狙いの背景 私は、未知の領域の周りをナビゲートし、障害物を回避し、さまざまなタスクを実行するために音声入力を受信する必要がある移動自律ロボットを構築しています。また、顔やオブジェクトなども認識しなければなりません。Kinectセンサーとホイールオドメトリデータをセンサーとして使用しています。公式ドライバーとSDKがすぐに利用できるので、私はC#を主要言語として選択しました。ビジョンとNLPモジュールを完了し、ナビゲーション部分に取り組んでいます。 私のロボットは現在、Arduinoを通信用のモジュールとして使用し、ラップトップ上のIntel i7 x64ビットプロセッサをCPUとして使用しています。 これはロボットとその電子機器の概要です: 問題 エンコーダーからロボットの位置を取得するシンプルなSLAMアルゴリズムを実装し、Kinectを使用して(3D点群の2Dスライスとして)見えるものをマップに追加します。 これは私の部屋の地図が現在どのように見えるかです: これは私の実際の部屋の大まかな表現です: ご覧のとおり、それらは非常に異なり、非常に悪いマップです。 これは推測航法だけを使用することから予想されますか? 私はそれを洗練して実装する準備ができている粒子フィルターを知っていますが、この結果を改善する方法は何ですか? 更新 私の現在のアプローチについて言及するのを忘れていました(以前は忘れていました)。私のプログラムは大まかにこれを行います:(私は動的テーブルを格納するためにハッシュテーブルを使用しています) Kinectから点群を取得 シリアルオドメトリデータの受信を待つ タイムスタンプベースの方法を使用して同期する ウィキペディアの方程式とエンコーダーデータを使用してロボットのポーズ(x、y、theta)を推定する 点群の「スライス」を取得する 私のスライスは基本的にXおよびZパラメータの配列です 次に、ロボットのポーズとXおよびZパラメータに基づいてこれらのポイントをプロットします 繰り返す

2
必要なパワーとトルクは何らかの形で関連していますか?
私は屋外ロボット工学用の新しいプラットフォームを設計しており、プラットフォームを動かすために必要なパワーやトルクを計算する必要があります。それを動かすのに約720 W(モーターあたり360W)の総電力が必要であると計算しましたが、必要なトルクを計算する方法がわかりません。 それは本当に必要なパワーを持ち、トルクを無視することに関するだけですか、それとも簡単に計算する方法がありますか? プラットフォームの既知のパラメータは次のとおりです。 プラットフォーム全体の重量:75 kg。 ホイールの数:4。 動力輪の数:4。 ホイールの直径:30 cm。 モーター数:2。 必要な速度:180 RPM(3 m / s)。 必要な加速度:> 0.2 m / s ^ 2

2
回転軸に取り付けられた2Dスキャナーを較正する
2Dレーザースキャナーが回転軸に取り付けられています。スキャナーからの入力と回転角度のみを使用して、軸の中心からスキャナーの中心への変換行列を決定したいと思います。 2Dスキャナー自体は校正済みであると想定されており、スキャナーの原点に関して、レーザーの平面内のオブジェクトの位置を正確に測定します。 回転軸も校正されており、自身の動きの角度を正確に測定します。 スキャナーは回転の中心の近くに位置合わせされて取り付けられていますが、正確なオフセットは不明であり、時間とともにドリフトする可能性があります。 スキャナーの位置と向きを直接測定するのは実際的ではないと仮定します。スキャナーからの6度のオフセットの正確な値を決定する方法を探しています。これは、スキャナーからの2d情報と軸からの回転角度だけで決定されます。 他の2つは入力データから一貫した3D点群を生成することに関して重要ではないので、ここで示されている4つのオフセットに主に関心があります。 既知のキャリブレーションオブジェクトをスキャンすることで、これらのオフセットを特定できるはずです。このための数式は何ですか? 最低限どのような校正情報が必要ですか?たとえば、平らな表面をスキャンするだけですべてのパラメータを決定できますが、表面が平らであること以外は何も知りませんか? (回転軸から世界への変換行列も不明ですが、軸からカメラへの変換がわかれば、それは簡単に決定できます。) 例 左側では、カメラは回転軸に正確に配置されています。カメラは、参照点ABおよびCで平面オブジェクトをスキャンします。レーザー距離測定値と軸の角度に基づいて、この平面オブジェクトを再構築できます。 右側では、カメラの軸に対するオフセットが不明です。同じオブジェクトをスキャンします。このオフセットを認識せずに点群を作成すると、平面サーフェスは曲面にマッピングされます。 表面の曲率に基づいてオフセットを計算できますか? A、B、C間の実際の距離と角度がわかっている場合、そこからカメラのオフセットを計算するにはどうすればよいですか?4つのオフセットすべてに必要な参照ポイントの最小数はいくつですか?

1
ロボットアームジョイントの構築
私はロボット設計に非常に慣れていないため、腕の関節を組み立てるのに必要な部品を決定する必要があります。ジョイントには、リモートモーターが回転する1つのタイミングベルトプーリー、プーリーが回転する前腕、および実際には2つの平行なアームとなる上腕の部品が含まれ、プーリーを上下でつかんで支えます。タイミングベルトからの軸外トルクからのプーリー。 これらすべてを一緒にマウントする方法について、私はちょっと困っています。前腕を直接プーリーに取り付け、次に2本の平行なアーム(上腕を含む)がプーリーの上部と前腕の下部を挟みます。これは、ターンテーブルを使用して取り付けられます。シャフトをこれらに取り付ける方法についてのアイデアはありますか?または、プーリーを腕自体に取り付ける方法は? どんな方向やリンクでも大歓迎です。探しているパーツの名前すらわかりません。 このASCIIアートモデルでは、破線(-)は腕です。左側の腕は前腕で、右側の2本の腕は上腕の2つの平行な部分です。星はベルト、棒(||)は肘の滑車| E |です。と肩| S |。 ----------------- |E|***********|S| ----------------- ----------------- プーリーを左腕に直接取り付けて(ブッシング?)、次にターンテーブルを使用してプーリーを上腕に取り付け、別のターンテーブルを使って左腕を下腕に取り付けようと考えています。 これは、視覚化に役立つデザインの写真です。

1
ステッピングモーターの制御パラメーターを最適化するにはどうすればよいですか?
産業用ロボット工学者として、私はほとんどの時間をブラシレスDCモーターまたはリニアモーターを使用するロボットや機械での作業に費やしたので、これらのモーターのPIDパラメーターの調整に多くの経験があります。 今、ステッピングモーターを使用して趣味のロボット工学を行うことに移行しています(私は最初のRepRapを作成しています)。 エンコーダフィードバックがないことは明らかですが、モーターへのリクエストはより保守的にする必要があり、可能なことの範囲内に常に留まるようにしますが、チューニングが最適か、準最適か、または(最悪の場合)どうやって調べるのですか?やや不安定? 明らかに、与えられた負荷(私の場合は押出機のヘッド)に対して、ステップパルス列を生成する必要があります。これにより、モーターは、ステップを逃すことなく、要求される加速と速度に対応できます。 私の最初の考えは、例えばいくつかのテストシーケンスを行うことです: 正確にホームセンサー上のホームモーター。 動く CCC ゆっくり家から離れます。 動く MMM 控えめな移動プロファイルで家から離れます。 動く NNN テストの加速/速度プロファイルのステップ。 動く NNN 保守的な移動プロファイルを使用して、テスト移動の開始に戻ります。 動く MMM 保守的な移動プロファイルで家に戻ります。 動く CCC ホームセンサーにゆっくり戻り、センサーが正しい位置でトリガーされていることを確認します。 さまざまな繰り返します NNN、 MMM、加速/速度および負荷プロファイル。 これは、テストプロファイルの移動で失われたステップを確実に検出するはずですが、テストするには非常に大きなスペースのように思えるので、ステッピングモーター制御パラメーターを最適化するためにどのような技術が開発されたのでしょうか。

2
ROSのPythonで赤[エラー]出力
ROSでは、Pythonを使用すると[ERROR]ログが赤く印刷されません。黒ではなく赤で表示するにはどうすればよいですか? たとえば、次のPython: rospy.logerr("No analog input received.") この出力を黒で生成します。 [エラー] [WallTime:135601422.876123]アナログ入力を受け取りませんでした。 一方、次のC ++: ROS_ERROR("No analog input received."); 次の出力を赤で生成します。 [エラー] [135601551.192412]:アナログ入力を受信して​​いません。
9 ros  python 

3
リニアベアリングにはどのレール材料が最適ですか?
3DプリンターRepRap Prusaの場合、プリンターヘッドを異なる軸にガイドする複数のレール(滑らかなロッド)があります。プリンタヘッドは、いくつかのリニアベアリングを使用してレールに沿って滑空します。 リニアベアリングの場合、この目的に最適な材料の種類についての仕様はありません。私の最初の仮定は、ステンレス鋼であり、表面を腐食(錆)させないためですが、これがすべてのプリンター(3Dプリンターであるかどうかに関係なく)に当てはまるかどうかはわかりません。より簡単に滑るリニアベアリング。アルミニウムが私の2番目の選択でしたが、どのグレードが最も耐性が低いかについては、同じ予約があります。 このリソースには限られた情報しかありませんが、この特定のアプリケーションに最適な情報には役立ちません。 この目的に最適な材料は何ですか?

2
軌道による位置制御が中断された場合はどうすればよいですか?
ロボットの関節に適用される軌道が中断されるときに使用される戦略は何ですか?ロボットアームが障害物にぶつかったとすると、コントローラーは軌道を適用し続けます。その後、エラーが非常に大きくなり、トルクが非常に強くなり、ロボットまたはスナップに損傷を与える可能性があります。

2
電子シャッターに関する概念的な問題
CCDとCMOSのセンサーとカメラを見て、印刷プロセスの自動制御のプロセスでどちらを使用するかを決定しました。今ではほとんどすべての必須の数字と略語を把握していますが、シャッターにはまだ問題があります。 機械式と電子式のシャッターにはさまざまなタイプがあることを理解しています。私の問題はシャッター速度に関係しています。メカニカルシャッターを使用する場合、最大シャッタースピードはアセンブリ内の特定の要素によって異なりますが、電子シャッターではどのように機能しますか?私はどのような仕様でも「最大シャッター速度」を読んだことがありません。私がいつも浮かんでいるのはフレーム/秒だけです。しかし、それらは通常、約120 fpsの制限を通過しません。センサーの構成によっては、ハーフフレームを使用する場合、最大シャッタースピードは1/120または1/240であると考えることができます。 これは正しいのでしょうか?本当に遅いようです。約17 m / sで移動する紙の鮮明で鮮明な画像を記録するタスクに直面します。シャッタースピードが遅いと、これは不可能です。メカニカルシャッターを使わざるを得ませんか、それとも誤解していますか?

2
クワッドコプター用のモーターとプロペラの仕様をどのように計算しますか?
クワッドコプターでおよそ100kgの推力を生み出すことができるモーターとプロペラの仕様は何ですか? クワッドコプター自体の20 Kgの重量とともに、50 Kgの総重量を持ち上げる予定です。したがって、スロットルが50%の場合、それによって生成される総推力は150 Kg、モーターあたりの総推力は37.5 kgになります。 クワッドコプターのリフト機能を計算する方法へのこの回答を見てきましたか?しかし、この情報を使用して、アプリケーションに必要なモーターとプロペラの仕様を理解する方法がわかりません。 前の質問で与えられた答えは小さなクワッドに対して制限されており、Kv、トルク、Imax、V、パワーなどのBLDCモーターの仕様と、そのようなモーターに適したプロペラの仕様が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.