ROSでrealsense(melodic)

※noeticではこの方法では無理です。noeticからカーネルのバージョンが5.11.0-37になったことが原因。melodicは5.4.0-81。

手順

  • git clone https://github.com/IntelRealSense/librealsense.git
  • cd librealsense/
  • sudo apt install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
  • sudo apt install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  • sudo apt install cmake
  • ./scripts/setup_udev_rules.sh
  • ./scripts/patch-realsense-ubuntu-lts.sh
    • 2時間ぐらいかかる
  • mkdir build && cd build
  • cmake ../
  • sudo make clean && make && sudo make install
  • realsense-viewer
    • 起動して動作確認

参考

arduinoをCUIで開発する

基本的に以下のサイトを参考にやらせてもらった。
qiita.com

シリアルモニタの使い方は以下のコマンドを実行する。

platformio device monitor

他のサイトでは「platformio serialports」を使っているが、私の環境ではserialportsというオプションは存在しなかった。
あとplatformioはtabキーで補完されず困った。

sshのサーバーの設定

ラズパイでは難なくsshで外部PCにアクセスできたが、自分のノートPC(ssh未経験)をサーバーにしたsshができなかった時のメモ。

どうやらubuntu18.04には/etc/init.d/sshという設定ファイルがないのでコレをインストールする。

sudo apt-get install aptitude
sudo aptitude install ssh

これができたらOK。ノートPCをサーバーにsshができる。

参考サイト
qiita.com

vimrcの設定

いろいろあって完全CUIでプログラムを書くことになり、ずっと避けてきたvimを使うことになった。

set clipboard=unnamedplus
set cindent
set tabstop=4
imap <c-h> <Left>
imap <c-j> <Down>
imap <c-k> <Up>
imap <c-l> <Right>

rosserialを使う(melodic)

rosserial関連のインストール

sudo apt-get install ros-melodic-rosserial-arduino
sudo apt-get install ros-melodic-rosserial

下のコマンドを実行してros_libを作成する。(私の場合は~/Arduino/librariesの中に作成)

rosrun rosserial_arduino make_libraries.py ~/Arduino/libraries

arduinoIDEをVScodeにする(ubuntu)

VScodearduinoのパスを設定する。私の場合は/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13
f:id:rerereren:20201118034702p:plain

VScodeの検索欄に「C_cpp.intelliSenseEngine」と入力する。defaultからTag Parserに変更する。
f:id:rerereren:20201118035028p:plain

念の為にVScodenの再起動。ctrl+shift+Pでarduino:Examplesがあり、サンプルプログラムに移動できたらOK。
あとは参考サイトをみて、ボードタイプとシリアルポートを設定すれば実行できる。


追記

VScodearduinoのプログラムファイルを新規作成できなかったため、shellscriptでプログラムを作った。テキトーに.inoファイルを作ってもArduinoへ書き込むことはできない。どうやら.vscodeフォルダにarduino.jsonとc_cpp_properties.jsonを作成しないといけないらしい。
実行方法(hoge.inoを作成する場合)

./shellscript hoge
mkdir $1
cd $1
mkdir .vscode
cd .vscode
echo "{
    "sketch": "$1.ino",
    "port": "/dev/ttyACM0",
    "board": "arduino:avr:uno"
}" > arduino.json
echo "{
    "configurations": [
        {
            "name": "Linux",
            "defines": [
                "ARDUINO=10800"
            ],
            "includePath": [
                "/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13/tools/**",
                "/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13/hardware/arduino/avr/**",
                "${workspaceRoot}",
                "/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13/hardware/tools/**",
                "/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13/libraries/**",
                "/home/ユーザー名/Arduino/hardware/tools/**",
                "/home/ユーザー名/Arduino/libraries/**"
            ],
            "forcedInclude": [
                "/home/ユーザー名/ドキュメント/arduino-1.8.13-linux64/arduino-1.8.13/hardware/arduino/avr/cores/arduino/Arduino.h"
            ],
            "intelliSenseMode": "clang-x64",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "compilerPath": "/usr/bin/gcc"
        }
    ],
    "version": 4
}" > c_cpp_properties.json
cd ../
echo "void setup()
{
}

void loop()
{
}" > $1.ino

参考サイト
novicengineering.com
qiita.com