ニュース

    ARGOS Challenge (2014/10/01)

    フランスに拠点を置くトタル社にて企画され、ANRにて公募されておりましたガス・石油サイト向け自律ロボット国際コンテスト「ARGOS Challenge」に、私どものコンソーシアムが出場いたします。



    • 背景
    世界各地での石油ガス探査・生産開発活動は、多くの場合、海上や陸上を問わず、極寒地域・乾燥不毛地域・きわめて辺鄙な地域と いった制約条件の厳しい環境下で行われます。現在、海面下での自律ロボットはすでに稼働中なのに対し、陸上或いは海上のプラットフォームで同様の自律ロ ボットは未だ多く開発されていません。
    そこで、トタル社のE&P探査生産開発部門は、"The ARGOS challenge"と言う、石油ガスの探査生産現場のための陸上・海上プラットホーム用の自律ロボットの設計・製作の国際コンテストを提案・後援し、フランス国立研究機構(ANR -Agence Nationale de la Recherche)を窓口として、世界的に広く公募を実施いたします。
    地上での自律ロボット開発は幅広く世界中の工業コンビナート等での需要も見込まれることから、さまざまなビジネスの可能性を生み出す事と期待されます。

    このコンペティションは世界中の企業や研究機関を対象に広く公募され、選ばれた数チームが、自律した点検検査や、測量値や画像等を即時送信したり、極限状況の天候下、原油・ガスの流失と言った不慮の緊急事態や、異常事態の発見・警告といった様な、石油ガス生産現場において特有な必要課題に対応出来る能力を持ったロボットを開発製作する事を目的とします。
    又、トタル社のE&P探査生産開発部門の研究開発部においては、人と設備を災害から守る為の防災予防手段目的がロボット開発の最優先事項の核ともなります。

    当コンテストで選ばれたロボット研究が、世界中のロボット研究者と団結し、今日石油・ガス業界が直面している実際の困難を乗り越えるための洞察力と、先進的開発能力の推進に役立つよう期待するものです。
    • コンソーシアム
    株式会社ベストテクノロジー
    株式会社移動ロボット研究所
    東北大学
    芝浦工業大学
    富士ソフト株式会社
    • チーム名
    AIR-K
    • 協力
    トタル・ルブリカンツ・ジャパン株式会社
    • 主催


    夏季休業のお知らせ (2014/08/11)

    8月13日~15日は全ての業務をお休みさせて頂きます。
    その間にオンラインショップからご注文頂いた場合は、休み明けから順次発送を行います。

    予めご了承ください。

    Digitus STM32F3マイコンボードリリースのお知らせ (2014/08/08)

    カスタム製品の一環としてDigitusシリーズを展開しておりますが、STマイクロエレクトロニクス社のSTM32F373CCを搭載したマイコンボードが好評のため、このたび一般販売を開始いたします。

    STM32F373のコアはARM社のCortex-M4で、DSP命令及びFPU命令をサポートし、小型ながら高速かつ高度な演算をこなす事ができます。

    両端のランドは40ピンのDIPパッケージのICと同じサイズになっており、ブレッドボード等で実験する際も扱い安くなっています。


    また、USB I/Fを介してPCと接続する事で電源供給が行える他、プログラムの書き換えが行えます。



    ショップページへ
    商品名:Digitus STM32F3
    商品番号:BTC097
    価格:¥4,400. (税別)
    付属品:本体・ピンヘッダ

    詳細はこちらをご覧ください。

ニュースのトップへ

ブログ

    800mm光センサ復刻? (2014/10/20)

    使用パーツの製造終了に伴い廃盤になってしまった800mm光センサ
    この類のセンサの民生用途が少なくなった事が終了の主因ですが、ちょっとだけ長距離にあるモノを簡易的に検出したいといったニーズはまだあるわけでして、廃盤は我々としても残念でなりませんでした。

    なんとかして代替品をと計画しておりましたが、ようやく同等レベルの代物が用意できそうな段階になってきました。ロボット相撲の時期からはかなりズレてしまいましたが、近々代替品として紹介できると思います。
    なお、旧来のシャッターによる感度調整機能は無し、コネクタではなくケーブルを装備というスタイルになるかと思います。



    技術

    Status Return Levelの復帰 (2014/08/26)

    Dynamixelはシリアル通信でホストとコミュニケーションを行いますが、そのコミュニケーションを設定によって容易に阻害する事ができてしまいます。そのアイテムはStatus Return Levelでして、デフォルトは2なのですが、0にすると通常のコミュニケーションは一切できない様に見せかけられてしまいます(唯一Pingパケットには応答します)。
    この設定は不揮発領域に配置されており、電源を入れ直しても自動的に元に戻る事はありません

    ということで、アクチュエータ系のDynamixel前提ですが、Status Returl Levelのリカバリ用プログラムを作ってみました。
    ツクリは単純でして、ボーレートを順次変えながらPingで検索し、見つかったidに対してReadが失敗したらStatus Return Levelが0になっていると仮定し、強制的に2で上書きするといったものです。

    #include <stdio.h>
    #include <conio.h>
    #include "dxlib.h"

    #define OFFSETTIME  (50)  // タイムアウトオフセット[ms]

    void main (void) {
      TDeviceID   dev;
      char        inputcomport[10], mycomport[20]="\\\\.\\";
      int         bdiv=-1, baud, i, yn;
      uint16_t    val16;
      uint8_t     val8;

     printf ("input com name=");
      gets (inputcomport);
      printf ("use [%s]\n",inputcomport);
      strcat (mycomport, inputcomport);

      if ((dev = DX_OpenPort (mycomport, 3000000))) {
        DX_SetTimeOutOffset (dev, OFFSETTIME);
        printf ("Open success\n");
        for (bdiv=-1;bdiv<250;bdiv++) {
          // ボーレートの変更
          if (bdiv >= 0) DX_SetBaudrate (dev, (baud=2000000 / (bdiv + 1)));
          else           DX_SetBaudrate (dev, (baud=3000000));
          printf("\rbaud=%7d ",baud);

          uint32_t num = 253;
          TDxAlarmStatus stat[255];
          // Ping2で検索
          if (DX_Ping2 (dev, &num, stat, NULL)) {
            printf ("%d device found\n", num);
            // 検索で見つかったデバイスを列挙
            for (i = 0; i < num; i++) {
              // アドレス16(Status Return Level)を読み出し
              if (DX_ReadWordData (dev, stat[i].id, 0, &val16, NULL)) {
                printf ("Found ID=%d stat:$%04X modelno:$%04X\n", stat[i].id, stat[i].Status, val16);
              } else {
                // 読み出しに失敗したらおそらくStatus Return Levelが0だろう
                printf ("Found ID=%d stat:$%04X modelno:???? \n", stat[i].id, stat[i].Status);
                printf ("Do you want to reset Status Return Level ? (y/n)->");
                yn = getch ();
                putch( yn);
                if (yn == 'y' || yn == 'Y') {
                  printf ("\nupdate....");
                  DX_WriteByteData (dev, stat[i].id, 16, 2, NULL);
                  Sleep (800);
                  if (DX_ReadByteData (dev, stat[i].id, 16, &val8, NULL)) {
                    if (val8 == 2) printf ("success\n"); else printf("fail\n");
                  } else printf ("fail\n");
                } printf ("\n");
              }
            }
          }
        }
        DX_ClosePort (dev);
      } else {
        printf ("Open error\n");
      }
    }
    DXLIBを使っていますので、コンパイルにはGCC Developer Liteを使用したコンパイルの方法を参考にしてください。

    また、コンパイルが面倒といった場合は、ちょっとイリガルな方法ですがDXCONFを使って書き換える事もできます。
    Status Return Levelが0でもPingには応答するため、スキャンすると以下の様に???(不明なデバイス)として列挙されます。


    通常であれば、該当デバイスをクリックする事で右半分に表示されるコントロールテーブルがそのデバイスに応じて切り替わるのですが、不明なデバイスの場合はこの画面キャプチャの様に5個のアイテムのみの表示になってしまい、値自体も不定となります。
    ではこのコントロールテーブル上にマウスカーソルを置き、右クリックしてください。ポップアップメニューが表示されますので、もしデバイスの型式がわかっているのであれば、この中から該当するデバイスを選択します。


    選択したデバイスに応じた コントロールテーブルの表示に切り替わりますので、その後強制的にNo.16 Status Return Levelを2に変更します。処置後は全ての通信ができるようになる筈です。


    お試しください。

    技術

    Digitus STM32F3用ブートローダ (2014/08/20)

    Digitus STM32F3用ブートローダの情報が不完全でしたので本日補完しました。
    STM32F3 Bootloader
    ST社のDfuSeというツールを使えばUSB経由でチップのフラッシュへ書き込む事ができますが、その前にBOOT0端子(CN2-38)を3.3V端子(CN1-2)につないでからUSBケーブルを接続してください。

    技術

    DXLIB V3.0公開 (2014/06/11)

    Dynamixel Library Version 3.0を公開しました。

    既にいくつかのソフトウェアには導入済みですが、DXLIB2(XLやProシリーズの新プロトコル用API)の機能拡張に伴い、パラメータの互換性を保つためDXLIBも修正を施しました。
    主な変更点は以下の通りです。
    • アドレス指定を8bitから16bitに変更
    • 不明瞭だったTDxAlarmStatus構造体のアライメントを1バイト境界に固定
    • 似非ReadSync APIを追加
    • 不定なDevice IDを指定された際のクラッシュを簡易的にブロック
    • dllのソースをC++に
    • API引数の変更に伴い各サンプルを修正
    • LabVIEWのサンプルを大幅に拡充
    • EXCELのVBAを64bitに対応
    特にLabVIEWから制御する際の使い勝手を向上させたのと、サンプルプログラムを増やしました。特定のアイテムへのアクセスを対象としたviは、ループ中に適用しても不用意にトラフィックを上げない様な仕掛けや、LabVIEWのイベントストラクチャを多用したり、ダイナミックなポートの開閉等、そこそこがんばってみました。

    PCから直接制御する際の参考にして下さい。

    技術

ブログのトップへ