タグ

ETRoboconに関するteppodoneのブックマーク (73)

  • ETロボコン EV3way倒立走行の急停止処理について - Qiita

    2018年のコースはL/R共にゴール直後に急カーブがあって苦慮したチームが多かったと思います。 競技を見た範囲では以下のパターンが見られました。 最速で通過して減速しつつラインを外れてからコース復帰 ゴール手前で減速 最速で通過して倒立とラインとレースを維持 「1.ラインを外れてからコース復帰」はコースに復帰できないリスクが高く、実際に戻れないチームも見られました。 「2.ゴール手前で減速」はタイムを競っているのにとても残念です。 東海地区大会ではLコースのゴール計測を担当していましたが、ゴールゲート寸前で不意に減速するので、 (来たぞ、来たぞ、来たぞ、、おお!おおぉぉぅぅうぉぉい!)となってしまいましたw 倒立走行を維持した急減速の方法 3.の倒立とライントレースを維持して急減速する方法について解説します。 倒立振子APIは現在位置の維持をフィードバック制御で行っています。 前進・後退処

    ETロボコン EV3way倒立走行の急停止処理について - Qiita
    teppodone
    teppodone 2019/08/02
    #てぽめも“本当は安定倒立しているところに 倒れそうだよ! とウソの情報を送り込むイメージになります。”  これすき
  • 後輩たちのためのEV3rt講座⑨(Bluetooth開発環境構築【Windows・Mac】) - Qiita

    お久しぶりです… 2019年初投稿です〜 はじめに 今回から2回に渡って、EV3rtのBluetooth事情についてお伝えしていきたいと思います。 まずは環境構築をしなくてはなりません。EV3rtの一番最初の環境構築の時とは異なり、WindowsMacで全く異なります。それぞれちゃんと書き記しますが、間違えないようにしてください。 Windowsでの環境構築 ペアリング まずはEV3との接続ですが、Windowsの「設定」から「Mindstoms EV3」を選んで、ペアリングします。 この時パスコードを要求されますが、SDカード内のファイルをいじっていない限り、「0000」です。 (ev3rt/sdcard/ev3rt/etc/rc.conf.iniのPincodeを編集すると、パスコードが変えれますが、不具合等が起きやすい印象なので、触らないほうが無難でしょう。) このように表示されれ

    後輩たちのためのEV3rt講座⑨(Bluetooth開発環境構築【Windows・Mac】) - Qiita
    teppodone
    teppodone 2019/07/30
    #てぽめも
  • 組込み体験講座テキスト

    teppodone
    teppodone 2019/03/29
     #てぽめも 「いま、なぜ、モデル駆動開発なのか」
  • Xenial (16.04) cannot find package libboost-all-dev

    teppodone
    teppodone 2018/06/04
    #てぽめも “E: Unable to locate package libboost-all-dev ”
  • TOPPERSまとめ 名古屋のIoTは名古屋のOSで - Qiita

    はじめに TOPPERS のAUTOSARへの貢献(更新中) https://qiita.com/kaizen_nagoya/items/d363cf06e2176207b391 に書かせていただきましたように、 標題の内容で、TOPPERSコンテストで銅賞をいただきました。 ありがとうございます。 TOPPERS TOPPERSは、オープンソースのリアルタイムカーネル、通信ミドルウェア、道具類を提供する事業です。 NPO法人が運営しています。 http://toppers.jp なお、ここに掲載しているリンク先には、直接TOPPERSのオープンソースを利用していない場合もあるかもしれません。関連技術情報とご理解くださると幸いです。 名古屋のIoTは名古屋のOSで 『ゼロから作るDeep Learning』斉藤康穀 著 オライリージャパン, 2016 https://www.oreilly

    TOPPERSまとめ 名古屋のIoTは名古屋のOSで - Qiita
    teppodone
    teppodone 2018/03/14
    #てぽめも
  • EV3way ETロボコンで使用している倒立振子APIパラメーターの再計算手順 - Qiita

    float K_F[4] = {-0.870303F, -31.9978F, -1.1566F*0.6, -2.78873F}; モデルの入手 MathWorks社のサイトからnxtway_gsのモデルをダウンロードします。 計算ツールの入手 Octaveまたは、MATLABを使用します。 ここでは、Octaveを使用する場合の手順を説明します。 controlパッケージのインストール Octaveを起動したら、再計算に必要なパッケージのインストールを行います。※初回のみ >> pkg install -forge control [ENTER] 物理パラメーターの設定

    EV3way ETロボコンで使用している倒立振子APIパラメーターの再計算手順 - Qiita
    teppodone
    teppodone 2017/12/11
    #てぽめも“ 走行体の形状・重量に変更があった場合に、最適なパラメーターを再計算することができます。”
  • 【C++】メンバ関数には必要に応じてconstをつけよう - Flat Leon Works

    constメンバ関数 constメンバ関数のメリット constメンバ関数の使いどころ constメンバ関数内でもメンバ変数を変更したい場合 constメンバ関数の注意点 constメンバ関数のオーバーロード constメンバ関数を使うかどうかでソースコード全部に影響がでる constメンバ関数 メンバ関数につけるconstとは何か。これです。 class A { public: int m_Value; void Hoge( void ) const // ←このconstです { } }; メンバ関数の右側にconstをつけると、そのメンバ関数内ではメンバ変数の変更ができなくなります。このメンバ関数をconstメンバ関数と呼んだりもします。 constメンバ関数内では、メンバ変数を変更するような他の関数の呼び出しも禁止されます。 void SetZero( int& value ) {

    【C++】メンバ関数には必要に応じてconstをつけよう - Flat Leon Works
    teppodone
    teppodone 2017/10/13
    “メンバ関数の右側にconstをつけると、そのメンバ関数内ではメンバ変数の変更ができなくなります。このメンバ関数をconstメンバ関数と呼んだりもします。 ”#てぽめも
  • 配列を返す関数 - meryngii.neta

    C言語では配列を返す関数を作ることができない。 int a[100]; int f()[100] // エラー:関数は配列を返せない { return a; } 当は int[100] f() // エラー:構文エラー { return a; } と書きたいところだが、これはC言語の奇妙な文法に合致しない。 複雑な宣言 - meryngii.neta この現象は基的にC++でも同様である。上のようなコードを書くとエラーになる。 しかし、C++には参照がある。関数は参照を返すことができるし、配列の参照を取ることもできる。 int (&f())[100] { return a; } ... f()[0] = 0; // OK なんとこれはコンパイルすることができる。参照ってすごいや。 だがこの例は文法がいささか変態的である。できることなら次のように書きたいところだが、 int[100]&

    配列を返す関数 - meryngii.neta
    teppodone
    teppodone 2017/10/06
    “配列を返す関数 C++ C言語では配列を返す関数を作ることができない。” #てぽめも
  • C++メモ - new演算子の有無による宣言 | システムエンジニアの戯言

    Javaの場合 下のようなコードを実行すると、どうなると思いますか? List 1-1 String name; // 文字列クラスの変数を宣言する。 name.toString(); // nameはNullなので、ぬるぽ発生! name変数のコンストラクタが呼び出されていないため、NullPointerExceptionという例外が発生してしまいます。 これは、Javaに慣れた方ならご存知の事かと思います。 では、これを回避するには、どうしたら良いでしょうか? 下のように、new演算子で初期化しておけば、問題なく実行できますね。 (説明のため、便宜上new演算子を使用していますが、普通は""で初期化します。""を使用する方がメモリ効率の関係上有利です。) List 1-2 String name = new String("Hello World!"); // 文字列を代入する nam

    C++メモ - new演算子の有無による宣言 | システムエンジニアの戯言
    teppodone
    teppodone 2017/10/03
    “結論 該当スコープ内のみで使用する変数については、通常の宣言を行う。 該当スコープを超えてもなお、使用したい変数については、new演算子による宣言を行う。 ”#てぽめも
  • オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名hoge;」を書... - Yahoo!知恵袋

    オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名 hoge;」 を書くだけで、インスタンス生成と初期化(newの処理)をしてくれればいいのに。 オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名 hoge;」 を書くだけで、インスタンス生成と初期化(newの処理)をしてくれればいいのに。 例えば、 Class Dog { 略 } としてDogを定義して、コードの中で Dog pochi; と書くだけで、pochiインスタンスを生成(コンストラクタの実行)をしてほしいのですが、なぜ pochi = new Doc() みたいに、別途書かなければいけないのでしょうか。

    オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名hoge;」を書... - Yahoo!知恵袋
    teppodone
    teppodone 2017/10/03
    newを使わないときはプログラム実行時にメモリ確保 new宣言したらオブジェクトが必要になった時(プログラムがその文を通った時)に生成される。⇒new使うのはメモリをケチるため #てぽめも
  • C++ 値渡し、ポインタ渡し、参照渡しを使い分けよう - Qiita

    PR: CADDiではバックエンドエンジニア、フロントエンジニア、アルゴリズムエンジニア、SRE等などを募集しています。 C++ では, 関数呼び出しの際, 引数の渡し方が大きく分けて 3 種類ある. それぞれ「値渡し」「ポインタ渡し」「参照渡し」だ. この内, 値渡しとそれ以外の使い方の違いについては初学者であってもそれなりに理解している人が多い. 一方で, ポインタ渡しと参照渡しの使い方の違いについてはあまり理解出来てない人が多い. 記事では各々の違いについて触れながら, 使用場面の違いについて説明していく. 値渡しの基 値渡しは主に int , float , bool , char 等の組み込み型を使う際によく用いる. 値渡しを行うと, 平たく言えばコピーが行われる1. int が引数であれば, その数値がコピーされるので, コピーされた引数を変更しても関数を呼び出した側の変数

    C++ 値渡し、ポインタ渡し、参照渡しを使い分けよう - Qiita
    teppodone
    teppodone 2017/10/03
    “参照渡しの基本 参照渡しは C には無く, C++ で新たに追加された記法である. その実態は殆どの場合, より安全で, 制約の厳しいポインタであると言って差し支えない.” #てぽめも
  • http://crf.flib.u-fukui.ac.jp/dspace/bitstream/10461/28588/1/008-015.pdf

    teppodone
    teppodone 2017/08/03
    "ETロボコンのロボットを利用したプログラミング教育用教材の改良" #てぽめも
  • 阿克苏吨趟工程有限公司

  • https://qiita.com/y_jono/items/68861e4e722566355fd7

  • UML ロボットコンテスト参加レポート

    UML Forum/Tokyo 2002 では、UML ロボットコンテストという大会が同時開催されました。オージス総研 OTS 部の "面白そうなこと大好き人間達" がそんなイベントを見のがすはずもありません。新人や旧人、チームや部署も様々な、いろいろな特徴を持ったメンバーが集まって、オージス総研混成チームとしてコンテストに参加しました。そんな混成チームの汗と涙の(?)コンテスト出場までの道のりをレポートします。 LEGO ブロックで作ったロボット UML ロボットコンテスト(以下、UML ロボコン)は、LEGO Mindstorms (以下、Mindstorms)を使って組み立てたロボットを、決められたコースに沿って走行させる競技会です。ロボットを、白いフィールド(発泡スチロール)に引かれた、黒いライン(ビニールテープ)のコースを 1 つの光センサーで検知しならがら、コースに沿って周回さ

    UML ロボットコンテスト参加レポート
  • GitHub - selab601/etrobocon-logger

  • TOPPERSプロジェクト

    ETロボコン Advent Calendar 2016 11日目として、teppodoneさんが「ETロボコンの開発を無理矢理Chromebookでやってみた(C++) - 自作武器を作ろうず...

    TOPPERSプロジェクト
    teppodone
    teppodone 2017/02/12
    “ETロボコン Advent Calendar 2016 11日目として、teppodoneさんが「ETロボコンの開発を無理矢理Chromebookでやってみた(C++) - 自作武器を作ろうず 」を投稿されました。”
  • ETロボコンにおける自己位置計測(その2、方位計編) with EV3 - Qiita

    方位計の概要 さて、距離計に続いて今度は方位計です。これは「走行体は今、どの方向(方位)を向いているのか」を計測する計測器です。これも距離計と大体の考え方は同じですが、走行体の「全体の動き」から考えていかなければならないので、少し難しいです。以下の図のような状況を考えてみましょう。 それでは、図のように走行体が弧を描いたように旋回して移動したと考えます。その移動の軌跡を上から眺めているとします。この時に描かれる走行体の移動軌跡の弧も「大きな円(旋回円)の一部」と考えられます。この旋回円の一部として考えたときの弧の形は、扇形になります。そして、その扇形の中心角こそが走行体の方位角度になるのです。よって、扇形の公式から方位角度は以下のようになります。 これで方位角度を出そうとすると、「扇形の弧の長さ」は走行体の移動距離となるのでいいのですが、「旋回円の半径」がちょっと厄介です。ですので、これか

    ETロボコンにおける自己位置計測(その2、方位計編) with EV3 - Qiita
  • ETロボコンにおける自己位置計測(その1、距離計編) with EV3 - Qiita

    ETロボコンにおける計測器の活用 自己位置計測とは、走行体の移動距離や旋回方位などを逐次計測することによって「走行体がコース上の今どこにいるのか」を判別するものです。自己位置計測は「エリア走行」、「速度計」などの他の要素技術にも必要となる土台とも言える要素技術なので、ここで紹介したいと思います。(出場チームごとによって、自己位置計測の手法や計算式は若干の差異がある場合があります) 以下に用意しているサンプルプログラムは、ETロボコン2016アドバンストクラス走行体 「HackEV」 のトレッド幅に合わせた実装になります。 こちらの写真が、その「HackEV」になります。 [利用開発環境] ・OS:Windows7 ・環境:TOPPERS/EV3RT ・言語:C言語 距離計の概要 まずは「距離計」について説明します。距離計は「走行体の移動に対して、車輪がどれほど回転したか」という情報を基に、

    ETロボコンにおける自己位置計測(その1、距離計編) with EV3 - Qiita
  • 2年目のETロボコンに向けてプラットフォームの知識を深めよう - .logbook

    記事はETロボコン Advent Calendar 2016 7日目のエントリです。 3年目のETロボコン Advent Calendar。リタイアさせるのはもったいないので12/6が終わる10分前から書き始めました。が、@yuri_at_earthさんが先にフォローに入ってくださったので12/7のエントリに鞍替えしました...orz というわけで、EV3RTを使用するETロボコン初心者を対象にざっくりと書きます。 プラットフォームの仕様書を読もう はじめてEV3RTを使う人はきっとこのページを眺めていることでしょう。 WhatsEV3RT – EV3 Platform そしてたどり着くのはこのページ。 EV3RT C API Reference: 総合概要 とりあえずサンプルプログラムを動かして、モータやセンサを扱えるようになって、プラットフォームでできることを理解した気になりがちです

    2年目のETロボコンに向けてプラットフォームの知識を深めよう - .logbook