NEW ENTRY

no image

2022/1/10

ABC234

A #include <bits/stdc++.h> using namespace std; int func(int x) { return x * x + 2 * x + 3; } int main() { int IN; cin >> IN; int x = 0; x = IN; cout << func(func(func(x) + x) + func(func(x))) << endl; }

ReadMore

no image

2021/12/17

RPLiDarを使ってみる!

参考 公式RPLiDar(?)https://github.com/youngday/rplidar_ros2 youtalkさんのGit RPLiDar A1M8 のデータシート #メモ mkdir ~/rplidar_ws cd ~/rplidar_ws git clone https://github.com/youtalk/rplidar_ros.git colcon build #ターミナル①RPLiDarのデータをパブリッシュ(Rviz2に送れるようにする) source install/local_setup.bash ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 world laser_frame #ターミナル②RPLiDarに接続(USB接続で/dev/ttyUSB0に接続) source install/local_setup.bash ros2 run rplidar_ros rplidar_node #ターミナル③Rviz2の起動 source install/local_setup.bash rviz2 ./install/rplidar_ros/share/rplidar_ros/rviz/rplidar.rviz ・AddからByTopicのLaserScanを選択して追加。 ・Fixed Frameをlaser_frameに設定。   マップ作るのできるようになりたい。

ReadMore

no image

2021/12/3

MacでAtCoder:g++の#includeのコンパイルエラーを回避

which -a g++ type -a g++ (-a : 全てのコマンドの場所を表示)   g++ -v % g++ -v Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 13.0.0 (clang-1300.0.29.3) Target: arm64-apple-darwin21.1.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin   ここから「stdc++.h」ファイルを取ってくる。 include-dirに指定されている場所にbitsディレクトリつくって、中にstdc++.hを設置。 無事にコンパイルできるようになりました。

ReadMore

no image

2021/12/2

NLP:すぐできる形態素解析。C++でMeCabとIPA辞書を使った形態素解析(Linux、Mac)

形態素解析を実装する必要があったのでメモ。 思った以上に簡単に始められた。 MeCabのインストール データのダウンロード MeCab、IPA辞書(Googleドライブのためwgetなど不可) インストール //一般的なフリーソフトウェアと同じ手順でインストールできます。 tar zxfv mecab-X.X.tar.gz cd mecab-X.X ./configure --with-charset=utf8 make sudo make install //辞書のインストール tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz mecab-ipadic-2.7.0-XXXX ./configure make sudo make install iTerm2やTerminalが文字化けしてしまう場合 こちら参考で解決できました。 形態素解析 #include <iostream> #include <mecab.h> int main(int argc, char **argv) { //解析する文章 char input[1024] = "司馬牛君子を問う。子曰く、君子は憂えず懼れず、と。曰く、憂えず懼れざれば、斯ち之を君子と謂うか、と。子曰く、内に省みて疚しからざれば、夫れ何をか憂え何をか懼れん、と。"; // 1語づつ品詞分類 MeCab::Tagger *tagger = MeCab::createTagger(""); // スペース区切りの文章に出力 // MeCab::Tagger *tagger = MeCab::createTagger("-Owakati"); const char *result = tagger->parse(input); //ターミナルに出力 std::cout << result << std::endl; delete tagger; } main.cppとして保存して、以下を実行。(main.cppとtext.txtは同じディレクトリに置いて、そのフォルダで実行) g++ `mecab-config --cflags` main.cpp `mecab-config --libs` && ./test.out | head -n 30 http://www.mwsoft.jp/programming/nlp/mecab_cpp.html 品詞ごとの登場頻度を調べる。 #include <fstream> #include <string> #include <vector> #include <map> #include <iostream> #include <mecab.h> using namespace std; vector<string> split(string s, string c) { vector<string> ret; for (int i = 0, n; i <= s.length(); i = n + 1) { n = s.find_first_of(c, i); if (n == string::npos) n = s.length(); string tmp = s.substr(i, n - i); ret.push_back(tmp); } return ret; } typedef map<string, int>::const_iterator map_freq_it; typedef std::vector<map_freq_it>::const_iterator vec_stu_citer_t; bool compare(const map_freq_it &a, const map_freq_it &b) { return (a->second > b->second); } int main(int argc, char **argv) { ifstream fin("./text.txt"); //同じフォルダの「text.txt」 string str; char c; while (fin.get(c)) { str.push_back(c); } MeCab::Tagger *tagger = MeCab::createTagger(""); const MeCab::Node *node = tagger->parseToNode(str.c_str()); map<string, int> freq; map<string, int>::iterator it; for (node = node->next; node->next; node = node->next) { vector<string> strvec = split(node->feature, ", "); if (strvec[0] == "動詞")//品詞を指定 { string noun = strvec[6]; it = freq.find(noun); if (it != freq.end()) { it->second += 1; } else { freq.insert(pair<string, int>(noun, 1)); } } } vector<map_freq_it> sorted; for (map_freq_it mfi = freq.begin(); mfi != ...

ReadMore

no image

2021/11/16

Arduino IDEの開発環境づくり

M5-Core2 値段:6,600円(スイッチサイエンス)   追加パッケージ情報 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json ボードマネージャー M5stack(130Mb) 追加ライブラリ   ESP32(販売元Espressif) スペック(ESP32-WROVER-E) 値段:1360円(秋月) Wi-Fi、Bluetooth(BLE)標準対応、M5stackの中身 特徴 いろんな種類のがある。無線付き便利。Micro-ROS対応。Arduino上位互換。 出会い 秋月で目が合ったから。 追加パッケージ情報 https://dl.espressif.com/dl/package_esp32_index.json ボードマネージャー esp32 by Espressif Systems Seeeduino(販売元seeed) ボード名:Seeeduino XIAO M0 スペック 値段:683円(スイッチサイエンス) コネクタ:Type-C CPU:Arm Cortex-M0+ 32ビット 48 MHz(SAMD21G18) ストレージ:256 KB Flash、32 KB SRAM ピン数:14(入出力 ×11、5 V ×1、3.3 V ×1、GND ×1) インターフェース: I2C ×1、UART ×1、SPI ×1 LED数:4(ユーザLED ×1、電源LED ×1、シリアルポートLED ×2) リセットボタン:基板上に二つのリセット用ランド(ショートすることでリセットできます) 給電 / 通信インターフェース:USB Type-C 電源パッド:バッテリ電源用 開発環境:Arduino IDE 回路保護用の突起カバー サイズ:20 × 17.5 × 3.5 mm ※GPIOピンの出力は3.3 Vです。 特徴 小さい、ハイスペ、安い、手に入りやすい。 出会い 飛行体をつくるのに軽量マイコンを探して。   追加パッケージ情報 https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.jsonz ボードマネージャー Seeduino SAMD Boards

ReadMore