目標:從0-1配置一個ROS項目,實現hello,world打印,在此基礎上進行功能開發。
步驟1:創建工作空間:
mkdir -p ros_workspace/src
cd ros_workspace
對工作空間進行初始化:
catkin_make
source devel/setup.bash
步驟2:創建新的ROS包:
導航到src目錄:
cd src
創建package包,依賴roscpp和std_msgs:
catkin_create_pkg hello_world std_msgs roscpp
切換回工作空間的根目錄并編輯:
cd ..
catkin_make
步驟3:創建一個c++腳本
在hello_world包下創建talker文件:
cd src/hello_world/src
touch talker.cpp
加入talker.cpp的內容:
#include "ros/ros.h"
#include "std_msgs/String.h"int main(int argc, char **argv)
{ros::init(argc, argv, "talker");ros::NodeHandle n;ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);ros::Rate loop_rate(1);while (ros::ok()){std_msgs::String msg;std::stringstream ss;ss << "hello, world " << ros::Time::now();msg.data = ss.str();ROS_INFO("%s", msg.data.c_str());chatter_pub.publish(msg);ros::spinOnce();loop_rate.sleep();}return 0;
}
步驟4:更新CMakeLists.txt
cmake_minimum_required(VERSION 2.8.3)
project(hello_world)find_package(catkin REQUIRED COMPONENTSroscppstd_msgs
)catkin_package()include_directories(${catkin_INCLUDE_DIRS}
)add_executable(talker src/talker.cpp)target_link_libraries(talker${catkin_LIBRARIES}
)
步驟5:編譯包,運行節點
cd ros_workspace
catkin_make
啟動
roscore
source ros_workspace/devel/setup.bash
rosrun hello_world talker
輸出:
[ INFO] [1621619326.123456]: hello, world 1621619326.123456