IT×農家の長男

研究や趣味についてのメモ

Arduino MicroでLチカ

はじめに

Arduino Microはブレッドボードに直接挿すことができるArduinoのボードで、
省スペース化を図ることができます。

f:id:crowsky:20181206161602j:plain:w350
左: Arduino Uno 右: Arduino Micro

実際にLチカしてみる

モジュールの配置と配線

LEDと100Ωの抵抗を下図のように配線します。


f:id:crowsky:20181206222930p:plain:w350

プログラム

Arduino IDEをインストールしていない方は以下の記事を参照。

zaka-think.com

Arduino IDEを起動し以下のコードを記述。

マイコンボードに書き込みが完了すると図のようにLEDが点滅を繰り返します。


f:id:crowsky:20181206225043j:plain:w350


f:id:crowsky:20181206225054j:plain:w350


おわりに

研究室の新配属生の学習に使っていて,これからライントレースロボットを作ってもらう予定です。

DualShock4でturtlesim (2)

はじめに

turtlesimで亀を移動させすぎると画面が線だらけになります。 その場合、再度turtlesimを立ち上げなおすか、rosのコマンドを叩いてサービスをクリアするしかありません。 そこで今回は前回作成したプログラムを改良し、 DualShock4のボタンを押すことで画面をクリアする機能を追加していきたいと思います。

rosserviceについて

亀の移動によって描画される線はrosserviceで実装されている。

例えば、線の色を変更したい場合は以下のコマンドを入力する。

$ rosservice call /turtle1/set_pen 255 0 0 5 0 
$ rosservice call clear

/turtle/set_penの後ろに続く数値は引数で [R、 G、 B、 線の幅、 線描画のon-off切り替え] の順に指定する。 また、turtlesimノードは実行中にパラメータを読まないので clear コマンドを入力することによって反映させる。 今回はこの clear コマンドをプログラムに組み込む。

f:id:crowsky:20181122062154p:plain

実装

前回作成したプログラムに数行追加するだけでよい。

プログラムのコピーが完了したらcatkin_makeを実行し、 launchファイルの実行を行う。

$ cd ~/catkin_ws 
$ catkin_make
$ roslaunch ps4_turtlesim turtle.launch

亀をしばらく移動させた後、DualShock4のL1ボタンを押すことによって線が消去されると思います。

f:id:crowsky:20181122045610p:plain

f:id:crowsky:20181122061248p:plain

DualShock4でturtlesim

はじめに

DualShock4でturtlesimを動かせるようにしたので、そのまとめ。

DualShock4の環境構築

環境

パッケージインスール

はじめにjoyパッケージをインストールを行う。

$ sudo apt-get install ros-kinetic-joy

無線接続を行う場合はds4drvをインストール。

$ sudo pip install ds4drv

ペアリングの方法は以下のサイトを参照。

cryborg.hatenablog.com

動作確認

DualShock4の入力を確認するために以下のコマンドを入力。

$ roscore 
$ rosrun joy joy_node

ノードが起動しない場合はデバイス番号が /dev/input/js0 以外が指定されていることが想定される。 ジョイスティックの確認にはJoystick-gtkを利用すると便利です。 以下のコマンドでインストールが可能。

$ sudo apt-get install joystick jstest-gtk 

この場合、DualShock4は js1 に接続されているので, joyノードの起動は以下のように書き換える。

$ rosrun joy joy_node _dev:="/dev/input/js1" 

入力値の確認はrostopicで行う。

$ rostopic echo /joy 


turtlesimの実行

以下のサイトを参考に進める。

qiita.com

はじめにturtlesimのインストールを行う。

$ sudo apt-get install ros-kinetic-turtlesim 

turtlesimの実行は以下のコマンドを入力。

$ rosrun turtlesim turtlesim_node 


次にパッケージの作成を行う。

$ cd ~/catkin_ws/src 
$ catkin_create_pkg ps4_turtlesim std_msgs roscpp rospy


シミュレーションで扱う亀は turtle1/cmd_vel トピックにコマンドを送ることで動かせる。 そこで、geometry_msgs::Twist型をDualShock4で書き換えるプログラムを作成。

$ sudo vi src/twist_publisher.cpp 

CMakeList.txtの下部に以下の行を追加。

 add_executable(twist_publisher src/twist_publisher.cpp)
target_link_libraries(twist_publisher ${catkin_LIBRARIES})

launchファイルを以下のように記述。

$ mkdir launch
$ sudo vi launch/turtle.launch

パッケージのビルドを行う。

$ cd ~/catkin_ws
$ catkin_make

以下のコマンドで実行。

$ roslaunch ps4_turtlesim turtle.launch

おわりに

今後はDualShock4でモータやサーボを動かせるようにしていきたい。

VSCodeでLaTeX (Windows10)

はじめに

以前、macVSCodeLaTeX拡張機能の導入について紹介しました。

今回はWindows10版VSCodeLaTeX拡張機能を導入する方法についてまとめます。

crowsky.hatenablog.com


環境構築

TeX Liveのインストール

以下のサイトを参考にTeX Liveをインストールしてください。リンク先ではTeXLive 2014が紹介されていますが、現在はTeXLive2018がインストールされます。

medemanabu.net

LaTex Extensionの追加方法

VSCodeの起動後、"Extensions"をクリック → "Search Extensions in ..."と記述がある検索ボックスに"LaTeX"と入力し、インストール。f:id:crowsky:20181114092135p:plain

"ctrl + ,"と入力すると以下の画面に切り替わるので、"Extensions"→"JSON"→"Edit in settings.json"の順にクリック。

f:id:crowsky:20181114095749p:plain

"USER SETTING"に以下のコードをコピペ。


f:id:crowsky:20181114110310p:plain


動作チェック

"File"→"Add Folder to Workspace"で任意の場所に新しいフォルダを作成."ctrl + n"と入力し,以下のコードを貼り付け, 作成したフォルダに保存.

"ctrl + Alt + b" でプロジェクトをコンパイル."ctrl+ Alt + v" でタブにpdfが表示されるようになります.
f:id:crowsky:20181114110739p:plain

おわりに

windows10のVSCodeでもLaTeXを使えるようになりました。 今後はUsers Settingsを改良して、より快適な環境をつくっていきたいと思います。

ROSでCRANE+V2を動かす

はじめに

研究用でロボットアームCRANE+V2を買ってもらったので、その使い方メモ。

アクチュエータにはDynamixelが使われているのでROSとの相性も抜群です。

環境構築

実行環境

ROSの環境構築がまだの方は以下のサイトを参考に導入してください。

qiita.com

Dynamixelパッケージインストール

以下のコマンドを入力し、ドライバをインストール。

$ cd ~/catkin_ws/src
$ git clone https://github.com/arebgun/dynamixel_motor.git
$ cd ..
$ catkin_make

動作チェック

はじめにパッケージの作成を行う。

$ cd ~/catkin_ws/src
$ catkin_create_pkg my_dynamixel_tutorial dynamixel_controllers std_msgs rospy roscpp

 

次に作成したパッケージの中にlaunchファイルを作成する。

$ roscd my_dynamixel_tutorial
$ mkdir launch | cd launch
$ sudo vi controller_manager.launch

ここで port_name を確認したい時は以下のコマンドで確認。

$ ls /dev/ttyUSB*

また、モータ動作にはパーミッショの設定が必要となるので以下のコマンドを入力。(ttyUSB0の場合)

$ sudo chmod 666 /dev/ttyUSB0 

dynamixelのセットアップのために以下のコマンドを入力。 出力が表示のようになれば成功。

$ roslaunch my_dynamixel_tutorial controller_manager.launch
<中略>
[INFO] [1541683728.201621]: pan_tilt_port: Pinging motor IDs 1 through 25...
[INFO] [1541683730.663679]: pan_tilt_port: Found 5 motors - 5 AX-12 [1, 2, 3, 4, 5], initialization complete.

 

次にモータのコンフィギュレーションファイルを作成する。 新しいターミナル上でパッケージに移動し、以下の内容を記述。

$ roscd my_dynamixel_tutorial
$ sudo vi tilt.yaml

モータ動作のためのlaunchファイルを記述。

$ roscd my_dynamixel_tutorial/launch 
$ sudo vi start_tilt_controller.launch

 

作成したlaunchファイルを起動。

$ roslaunch my_dynamixel_tutorial start_tilt_controller.launch

問題なくlaunchファイルを起動することができたら、 以下コマンドを入力。モータが動作するのを確認できれば成功。

$ rostopic pub -1 /tilt_controller/command std_msgs/Float64 -- 1.5

 

参考サイト


www.rt-shop.jp

卒論,修論に向けてLaTeXの環境を整える

はじめに

もうすぐ卒論や修論を書かなくてはならない時期になってきました.

そこで今回は卒論や修論を書く人に向けて,私がよく利用するLaTeXの環境を紹介したいと思います.


VSCode拡張機能を利用したLaTeX環境構築

VSCode(Visual Studio Code)には様々な拡張機能があり,LaTeXのパッケージもあります.

インストール方法は以下のURLを参考にしてください.

インストール手順

拡張機能の追加方法

今回はmacOSを使用する前提で進めて行きます.VSCodeの拡張は以下のサイトを参考に進めさせていただきました.また,自分の環境にLaTeXを導入していない方はインストールするようにしてください.

elecho.hatenablog.com

doratex.hatenablog.jp

VSCodeを起動した状態で,画面左側のアイコンの中から"Extensions"をクリック → "Search Extensions in ..."と記述がある検索ボックスの中に"LaTeX Workshop"と入力し,インストール.
f:id:crowsky:20181102061858p:plain

"command + ,"と入力すると以下の画面が出現するので,"Extensions" → "JSON" → "Edit in settings.json"の順にクリック
f:id:crowsky:20181102062408p:plain

"USER SETTING"に以下のコードをコピペ

f:id:crowsky:20181102063644p:plain

以上で環境構築は終了.

動作チェック

Texは中間ファイルが生成されるので,フォルダの作成をしてからテストを行う."File"→"Add Folder to Workspace"で任意の場所に新しいフォルダを作成."command + n"と入力し,以下のコードを貼り付け, 作成したフォルダに保存.

f:id:crowsky:20181102070148p:plain

"command + option + b" でプロジェクトをコンパイル."command + option + v" でタブにpdfが表示されるようになります.この後は編集したファイルを保存するたびにpdfが更新されるようになります.
f:id:crowsky:20181102072848p:plain

終わりに

使用したコマンド
  • command + option + b : コンパイル(タイプセット)
  • command + option + v : 新規タブにPDF表示
これ以外にもコマンドがあるので興味ある方は調べてみてください.
また,VSCodeLaTeX以外にも様々な拡張機能があるので使ってみてはいかがでしょうか.

初心者のCMAKE

CMakeの書き方メモ

勉強がてら自分用のメモ。

CMakeは基本的にCMakeLists.txtに必要な項目を書くことで 自動的にmakefileを作ってくれるツール。

 

使用例

実行環境

例として以下のようなディレクトリを想定する。

./
|--CMakeLists.txt
|--HelloWorld.cpp

それぞれのファイルの中身は以下の通り。

全てのファイルの準備が整ったら以下2つのコマンドを入力。

$ cmake .
$ make

このとき-jオプションをつけるとビルドを並列化することができる。これくらいのファイル数なら並列化する必要なし。数字の目安は自分のPCのコア数+2くらい?(人によって様々。)

$ make -j 4

make直後のディレクトリは以下のような構成になる。

./
|--CMakeCache.txt
|--CMakeFiles
|--CMakeLists.txt
|--HelloWorld
|--HelloWorld.cpp
|--Makefile
|--cmake_install.cmake

あとはHelloWorldを実行すればOk。

しかし,cmake_install.cmakeなどの中間ファイルなどで作業ディレクトリが汚くなる。

汚くなるのが嫌な人は別ディレクトリを生成し,そこでビルドを行う。

 

中間ファイル回避方法

先ほど生成した中間ファイルや実行ファイルが存在している人はそれらの削除を行う。

まずbuildディレクトリの作成

$ mkdir build 

中間ファイルが存在しない以下のようなディレクトリ構成になる。

./
|--CMakeLists.txt
|--HelloWorld.cpp
|--build

この状態で

cd build
$ cmake ../
$ make

するとディレクトリ構成は以下のようになる。

./
|--CMakeLists.txt
|--HelloWorld.cpp
|--build
|--CMakeCache.txt
|--CMakeFiles
|--HelloWorld
|--Makefile
|--cmake_install.cmake