ROSでHelloWorld

参考にしました。
wiki.ros.org


まずプログラムを書き溜めていくワークスペースを作成します。
ROSはcatkinというcmakeに似たビルドシステムを使います。cmakeが分からない人は下のサイトを参考にしてください。
https://teratail.com/questions/111977
catkin_makeでビルドができます。mkdirは新規ディレクトリを作成するコマンドです。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ../
catkin_make


source ~/catkin_ws/devel/setup.bash~/.bashrcの最終行に追加してください。
ファイル編集はVScodeVimなどのエディタで書いてください。PCに外部エディタがない場合は、デフォルトでインストールされているgeditを使ってください。以下はgeditを使った例です。

cd ~/
gedit .bashrc


次にhelloというディレクトリを作成します。
roscppとrospyはhelloがC++Pythonで書けるようにします。

cd ~/catkin_ws/src
catkin_create_pkg hello roscpp rospy


helloの中にmain.cppを作成します。touchは新規ファイルを作るコマンドです。

cd ~/catkin_ws/src/hello/src
touch main.cpp
gedit main.cpp
#include <stdio.h>
#include <ros/ros.h>

int main()
{
    printf("HelloWorld\n");
    return 0;
}


CMakeLists.txtを設定します。(CMakeLists.txtの場所は ~/catkin_ws/src/hello/CMakeLists.txt です)add_executableはmain.cppをhello_mainという名で実行することを設定します。
target_link_librariesはhello_mainが使う外部ライブラリ(OpenCVやPCLなど)を設定します。今回は外部ライブラリを使わないためcatkin_INCLUDE_DIRSだけです。

cmake_minimum_required(VERSION 2.8.3)
project(hello)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
)

catkin_package()

include_directories(
  ${catkin_INCLUDE_DIRS}
)

add_executable(
   hello_main
   src/main.cpp
)

target_link_libraries(
   hello_main 
   ${catkin_LIBRARIES}
)


ビルドします。

cd ~/catkin_ws
catkin_make --pkg hello


実行します。
新しくターミナルを作って以下のコマンドで実行できます。

rosrun hello hello_main

HelloWorldが表示された成功です。
今後、*.hppと.*cppが増えてもadd_executableに src/*.hppとsrc/*.cppを追加するだけです。