空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

C++

C++のお勉強(3) - ポインタ/スマートポインタ

C++

やりたいこと ポインタの考え方(特にC++11)を理解し、使いこなせるようにする ブラウザでのコード実行方法 C++ Shell がおススメ ポインタ 型* 変数名 = オブジェクトのアドレス &は変数のアドレスの取得 *は指定したアドレスのデータにアクセス 例1 : アド…

AtCoderチャレンジまとめ(6) - AtCoder Beginner Contest 119

やりたいこと C++に慣れつつアルゴリズムの知識を上げたい。 そんなわけでAtCoderにチャレンジ ! チャレンジコンテスト atcoder.jp 変数名が適当なのはご愛嬌 A問題: Still TBD 文字列 S が入力されます。これは、西暦 2019 年の実在する日付を yyyy/mm/dd …

AtCoderチャレンジまとめ(5) - AtCoder Beginner Contest 118

やりたいこと C++に慣れつつアルゴリズムの知識を上げたい。 そんなわけでAtCoderにチャレンジ ! チャレンジコンテスト atcoder.jp 変数名が適当なのはご愛嬌 A : A - B +/- A 正整数 A,Bが与えられます。 Aが B の約数なら A+B を、そうでなければ B−A を…

AtCoderチャレンジまとめ(4) - みんなのプロコン 2019

やりたいこと C++に慣れつつアルゴリズムの知識を上げたい。 そんなわけでAtCoderにチャレンジ ! チャレンジコンテスト Yahoo Programming Contest 2019 - AtCoder 変数名が適当なのはご愛嬌 問題A: Anti-Adjacency 1 以上 N 以下の異なる整数を、差が 1 の…

Eigen事始め

やりたいこと C++で行列計算を高速に行いたい! ので、行列計算ライブラリEigenを学ぶ。 教科書 Eigen: Getting started Eigen: The Matrix class インストール Eigen からダウンロードする。 もしくはROSが入っている場合、 /usr/include/eigen3/Eigen にEi…

AtCoderチャレンジまとめ(3) - NIKKEI Programming Contest 2019

やりたいこと C++に慣れつつアルゴリズムの知識を上げたい。 そんなわけでAtCoderにチャレンジ ! チェレンジコンテスト 全国統一プログラミング王決定戦予選/NIKKEI Programming Contest 2019 - AtCoder 問題A : Subscribers 私たちは、新聞の購読に関する…

AtCoderチャレンジまとめ(2) - AtCoder Beginner Contest 116

やりたいこと C++に慣れつつアルゴリズムの知識を上げたい。 そんなわけでAtCoderにチャレンジ ! チェレンジコンテスト AtCoder Beginner Contest 116 - AtCoder 変数名適当でごめんなさい。。。初めてのAtCoder。 問題A : Right Triangle 直角三角形 ABC …

Google Test C++の使い方(初級)

やりたいこと 教科書 入門まとめ 基本的なアサーション 簡単なテスト テストフィクスチャ:複数のテストで同じデータ設定を使う テストの呼び出し Mockまとめ わからないことがあったとき 基本ステップ 使うための準備 モック理解のためのサンプル モックの…

PCLを使って遊んでみる

やりたいこと 点群情報の処理をうまく扱えるようになりたい 教科書 Documentation - Point Cloud Library (PCL) Point Cloud Dataの作成 Documentation - Point Cloud Library (PCL) 実行手順(以下のスクリプトを同じ階層に準備した前提) mkdir build cd b…

座標変換のお勉強

やりたいこと ロボットの3次元座標の考え方を理解して、制御に役立てる ROSのtfの理解 座標変換教科書 座標変換 <- すごくわかりやすい! 第10回目 http://www.wakayama-u.ac.jp/~tokoi/lecture/gg/ggbook03.pdf tf教科書 tf (Python) — tf 0.1.0 documentat…

ROS x C++のお勉強

背景 PCLや画像処理の高速化などC++でしか扱えないものを使えるようになりたい。 ROSパッケージの構成検討 robonchu.hatenablog.com 最小構成(hello world) CMakeLists.txt cmake_minimum_required(VERSION 2.8.3) project(hello) find_package(catkin REQUI…

C++のお勉強(2)

C++

一歩ずつ! 型・インスタンス・オブジェクト 構造体は型、型を使って作られた変数はインスタンス。特に、構造体は意味のある情報の塊なので、構造体変数のことをオブジェクトということがある。 アクセスの仕方:①オブジェクト.メンバ ②オブジェクトのポイン…

オブジェクト指向プログラミング(OOP)のお勉強

C++

c++のコンパイルの仕方 構造化言語では解決できない2つの問題 OOPの優れた3つの仕組み クラスとは クラスの効能1:まとめる クラスの効能2:隠す クラスの効能3:たくさん作る インスタンス変数、グローバル変数、ローカル変数 インスタンス変数 ポリモーフィ…

ROSのスクリプト構成を考えてみる

C++編 pattern1 package 構成: func.h , func.cpp, func_node.cpp func.h include <必要なファイル> namespaceをパッケージ名で作成 Funcクラスを作成 コンストラクタとデストラクタの定義(Public) pubやsub,callbackを定義(Private) その他、必要な変数や…

ROS message_filtersのお勉強

複数のトピックの時間の同期を取りたいときなどに使用する。 Time Synchronizer ApproximateTime Policy Time Synchronizer imageとcamera_infoの同期をとっている The TimeSynchronizer filter synchronizes incoming channels by the timestamps contained…

C++のお勉強(1)

やりたいこと 教科書 環境構築 ビルド方法(単体) ビルド方法(複数) デバッグツール gdbの使い方 ポインタ Sample1 Sample2 スマートポインタ 継承 参照引数の関数 関数の引数の種類 テンプレート イテレータ 別名 キャスト ビット演算 列挙型 静的変数 名…