記事一覧
メモ
- Ubuntu関連URLの個人的なまとめ。 - 可変ブログ
- C++関連URLの個人的なまとめ。 - 可変ブログ
- いろんなURLの個人的なまとめ。 - 可変ブログ
- WindowsのIPやプロキシ設定を変更するバッチファイルの作り方。 - 可変ブログ
- win10のタスクバーにフォルダやbatを登録する方法 - 可変ブログ
- キーレイアウトやショートカットキーのカスタマイズ - 可変ブログ
- Firefox57のアドオンと設定。 - 可変ブログ
- Windows上のVSCodeからsshでリモートファイル編集 - 可変ブログ
- TCPとUDPの違い - 可変ブログ
- マウスキーボード共有ソフトSynergyのインストール - 可変ブログ
- git 全体構造と使い方とコマンドの図解。 - 可変ブログ
- cmakeとかg++とか - 可変ブログ
- Windowsのややこしい場所にあるフォルダたちのショートカット - 可変ブログ
Linux
- WindowsにUbuntuの仮想環境を導入する。 - 可変ブログ
- ライブメディアを使ってUSBにubuntu14.04をインストールする。 - 可変ブログ
- checkinstallが便利そう。 - 可変ブログ
- ubuntuのシステムバックアップ - 可変ブログ
- UbuntuでCapsLockをCtrlに入れ替える。 - 可変ブログ
- Ubuntuでcdしたらlsする - 可変ブログ
- UbuntuでのHDDのフォーマット - 可変ブログ
- Ubuntuで一つのNICに複数のIPアドレスを割り当てる - 可変ブログ
- linuxのパッケージ探すところ - 可変ブログ
- UEFIブートのエントリを削除する方法 - 可変ブログ
- Dockerメモ。 - 可変ブログ
- Linuxの国設定, 言語設定とか項目一覧 - 可変ブログ
- シェルのタブ補完を大文字小文字区別なくする - 可変ブログ
- WSLでGUIアプリ起動 - 可変ブログ
- NetEnumの代わりになるLinuxコマンド - 可変ブログ
RaspberryPi
- Raspberry pi用のUPS - 可変ブログ
- MCP2515を使ってRaspberryPiでCAN通信 - 可変ブログ
- RaspberryPiのネットワーク設定 - 可変ブログ
- Raspberry Pi でSPI通信。 - 可変ブログ
- RaspberryPiのGPIOの操作方法それぞれ - 可変ブログ
- RaspberryPiの起動ボタンとシャットダウンボタンを作る(ついでにスタートアップについて) - 可変ブログ
- RaspberryPiのGPIO割り込み - 可変ブログ
- GYSFDMAXBとラズパイでGPS取得 - 可変ブログ
- MCP3208-CI/PとRaspberryPi3でAD変換 - 可変ブログ
- RaspberryPiをWi-fiのアクセスポイントにする。 - 可変ブログ
- Raspberry Piのセットアップ - 可変ブログ
- RaspberryPiでサーボモーターをPWM制御する。 - 可変ブログ
プログラミング
OpenCV
- OpenCVのVideoWriterを使って画像から動画を作る。 - 可変ブログ
- OpenCVあれこれ。 - 可変ブログ
- OpenCV3.2とcontribをWin10に導入してビルドしてサンプル実行。 - 可変ブログ
- OpenCVを使ったカメラの歪み補正。 - 可変ブログ
- UbuntuにOpenCVをパッケージからapt-getを使ってインストールする。 - 可変ブログ
- UbuntuにOpenCV3.2とcontribをインストールする。 - 可変ブログ
- OpenCVでGUI - 可変ブログ
- voronoi図を作ってみた。 - 可変ブログ
- SOM (自己組織化マップ) 作ってみた。 - 可変ブログ
ROS2参考URLまとめ
- ROS2導入&レクチャー - Qiita
- ROS 2の紹介 by gbiggs
- Windows Subsystem for Linux の Ubuntu に ROS2 をインストールする - Qiita
- ROS 2 Overview
- Redirecting…
プロセス内通信について
マルチスレッド
ROS2⇔ROS1 通信
ROS2 API
この方はおそらく同業者だ
俺用ROS2トラブルシューティング
ROS2の setup.bash を必要なときだけ source する
ROS2を入れたけど, setup.bash を source すると地味に時間がかかる.
これを .bashrc で source させるようにすると, ROS2 を使わないときでもターミナルを開くたびに時間がかかって地味にストレス.
かと言って, ROS2 を使うときだけ手打ちで source するのも面倒.
ということで, ターミナル開いて初めてROS2系コマンド (colcon含む) を打つときだけ source させるようなスクリプト書きました.
以下を .bashrc に追記すればOK
colconSetted() { if [ -z "$ROS2SETTED" ]; then source /opt/ros/dashing/setup.bash source ~/ros2_ws/install/setup.bash ROS2SETTED=1 fi \colcon "$@" } ros2Setted() { if [ -z "$ROS2SETTED" ]; then source /opt/ros/dashing/setup.bash source ~/ros2_ws/install/setup.bash ROS2SETTED=1 fi \ros2 "$@" } alias colcon="colconSetted" alias ros2="ros2Setted"
一発なにかROS2系のコマンドを打たないと補完が効かないのが玉にキズ.
それだったらエイリアス組んで自分で打ったほうがいいのではと思ってしまったりするけど気にしない.
あとまっさらな状態からパッケージを作ったとき, ~ros2_ws/install/setup.bash が無いとエラー出る.
おまけで, colconでパッケージを指定してビルドする
colcon build --symlink-install --packages-select
も長くて面倒なので cbp に置き換えるスクリプトを書きました.
cbp() { cd ~/ros2_ws && colcon build --symlink-install --packages-select "$@" cd - }
参考URL
- cd したら ls する - Qiita
- シェル変数と環境変数の違いをコマンドラインで確認する - Qiita
- 位置パラメーターの一括展開 $* $@ "$*" "$@" の違いを知れ!! - Shell Script Advent Calendar 2016 - ダメ出し Blog
- シェルスクリプトでの変数定義 - Qiita
- シェルで変数の空文字判定 | ハックノート
- シェルスクリプト(bash)のif文とtestコマンド([])自分メモ - Qiita
C++クラス内でのラムダ式のキャプチャとか
なんとメンバ変数はコピーキャプチャできない
デフォルトキャプチャを=にするとぱっと見コピーキャプチャできてるように見えるが, 実は参照キャプチャされているらしい
あとthisをキャプチャするとthisポインタだけがコピーされると思っていたが, メンバ変数も(参照だけど)触れるようになってる.
つーか下記サイトにちゃんと
[this] : *thisのメンバを参照して、ラムダ式のなかで使用する
って書いてある.
NetEnumの代わりになるLinuxコマンド
sudo nmap -sn 192.168.0.0/24 arp -a
arpのほうはなんかちょっと違う気がする。
windows.hとwinsock.hとwinsock2.hと
winsock.hとwinsock2.hは競合する
windows.hにはwinsock.hが含まれている
windows.hとwinsock2.hをどちらも使いたいときにどうしようもなくなる
windows.hをインクルードする前に下記を定義するとwinsock.hのインクルードを回避してくれる。
#define WIN32_LEAN_AND_MEAN
分割コンパイルの時には複数回ヘッダが読まれることがあるので#define WIN32_LEAN_AND_MEANを記載する位置に注意する。
なるべく上位で定義しないとうまく回避してくれない場合がある。
もしくはインクルードの順番をwinsock2.h -> winsock.hにするとよい。
#define _WINSOCKAPI_
この対処はよくないと思う。
本当はインクルードしてないwinsock.hをインクルードしたからもうしなくていいよっていうウソの定義をしている。
どっかでエラーが出るかもっていうか実際にboost::asioでエラーが出た。
boost::asioには_WINSOCKAPI_が定義されているとエラーを出すところがある。