今回はardroneをROSを使用して、ドローン制御(自律飛行制御)を行う。
まず初めにROSについて、説明する
#ROSとは...
ROS(Robot Oparting System)の略であり、ロボットソフトウェアプラットフォームのことを言う。
これにより、ロボットようアプリケーションプログラムの開発においてパッケージ化されたモジュールやライブライが使用でき、開発が楽に行える。
もう少し簡単に言うと、ロボットが人についていく(トラッキング)プログラムを一から作るとなると大変だが、
これらのプログラムはもうすでに世界の誰かが作ってくれていて、私たちはモジュールというトラッキングプログラムが含まれたものを使用するだけで良い。
###ROSのインストール
ROSはubunts上で動くものなので、必ずubuntsを用意して動かしてください。
ROSのインストール方法はhttps://qiita.com/srs/items/e0e0a9dc3f94c2d3348eを見ながらやってみてください。
###作業フォルダの作成catkin_ws
ROS専用ビルドシステムであるcatkinを使用する。catkinを使用するために、catkin_wsといった作業スペースの中でプログライングスクリプトを記述する必要がある。
以下のコマンドで作成。ちなみに、catkin_makeとはビルドみたいな扱いであり、catkin_ws内のファイルを編集した際にcatkin_makeを行う。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
source ~/.bashrc
###ROSショートカット
ROSはコマンドをよく使うので、ショートカットは覚えておくと良い
cw: ~/catkin_wsへ移動
cs: ~/catkin_ws/srcへ移動
cm: ~/catkin_wsへ移動しcatkin_makeでビルド
###統合開発環境のインストール(IDE)
GUIを利用するコードを書く場合によく使われているIDEであるVScodeをここではインストールする。
https://code.visualstudio.com/downloadここからんubunt用をダウンロードする
###VsCodeの基本設定
左上の拡張機能からC++/pythonをインストール。
VSCodeでビルドする方法は『ファイル』⇨『フォルダーを開く』を選択しデバッグしたいパッケージを選択。
以下詳細はP39を参照
#catkin_wsのリセット法方
rm -rf /home/user/catkin_ws/src/
rm -rf /home/user/catkin_ws/build/
rm -rf /home/user/catkin_ws/devel/
#drone.pyファイル(Node)の作成方法
###CMakeLists.txtの編集
#該当部分をコメントアウト.また,必要なものを追加
#7行目あたり
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
#45行目あたり
## Generate messages in the 'msg' folder
add_message_files(
FILES
# Message1.msg
# Message2.msg
Adder.msg
)
#66行目あたり
generate_messages(
DEPENDENCIES
std_msgs
)
#104行目あたり
catkin_package(
# INCLUDE_DIRS include
LIBRARIES ros_adder
CATKIN_DEPENDS roscpp rospy std_msgs
DEPENDS system_lib
)
CMakeLists.txtの編集が終了したら、catkin_makeでビルドしておきましょう。
###ノードの作成
ros_adder/scriptsの中にdrone.pyを記述。
cd ~/ros_ws/src/ros_adder/
mkdir scripts; cd scripts
touch para_in.py adder.py
ノード作成後ビルドしておきましょう。
catkin_makeするときはcd ~/home/に戻ってから操作する
cd ~/ros_ws/
catkin_make
#ドローンを飛ばす時のコマンド
###ターミナル1
roscore
###ターミナル2 ardroneとの接続(wifiの接続を忘れないように)
rosrun ardrone_autonomy ardrone_driver
###ターミナル3
Pythonファイルの実行権限付与
cd ~/catkkin_ws/src/ros_adder/scripts
sudo chmod +x drone.py
source devel/setup.bash
rosrun ros_adder drone.py