LIFE LOG(ここにはあなたのブログ名)

あつあつ備忘録

ソフトやハード、時にはメカの備忘録をまとめていきます

【ROS】ワークスペースとパッケージの作成

f:id:AtsuyaKoike:20190421152613p:plain
画像元

ワークスペースの作成

以下はビルドシステムのワークスペースを作るコマンド。
1度実行すれば今後は実行する必要がない

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src/
$ catkin_init_workspace 
Creating symlink "/home/atsuya/caikin_ws/src/CMakeLists.txt" pointing to "/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake"

以下、ビルド

$ cd ..
$ catkin_make
・・・略・・・
####
#### Running command: "make -j1 -l1" in "/home/atsuya/catkin_ws/build"
####

bashrcを書き換える

source /opt/ros/kinetic/setup.bash

の部分を

# source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash

に書き換える

$ reboot

以下のように表示されれば問題ないかと。

$ echo $ROS_PACKAGE_PATH 
/home/atsuya/catkin_ws/src:/opt/ros/kinetic/share

パッケージ作成

・ある程度かたまった機能を持ったプログラムを1つのパッケージとする。
・ROSではすべてのプログラムがなんらかのパッケージに所属
・プログラムを書く前にパッケージを作る必要性

$ cd ~/catkin_ws/src/

以下のコマンドでパッケージのひな型作成

$ catkin_create_pkg ros_start rospy roscpp std_msgs
Created file ros_start/package.xml
Created file ros_start/CMakeLists.txt
Created folder ros_start/include/ros_start
Created folder ros_start/src
Successfully created files in /home/atsuya/catkin_ws/src/ros_start. Please adjust the values in package.xml.

ros_startディレクトリの中に
・CMakeLists.txt
・include
・package.xml
・src
の2つのフォルダと2つのファイルが作成されます。
・コマンド中の「rospy」「roscpp」「std_msgs」は依存パッケージ
・ros_startというパッケージの名前は好きに設定できる

$ cd ~/catkin_ws/
$ catkin_make

この状態で

~/catkin_ws$ roscd ros_start
~/catkin_ws/src/ros_start$ 

のようにディレクトリチェンジできれば問題ありません。