Hello World Publisher
建立工作區
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
構建你的工作區
cd ~/catkin_ws/
catkin_make
來源你的設定檔案
source devel/setup.bash
建立一個名為 hello_world 的新包,其中包含一些基本依賴項
catkin_create_pkg hello_world std_msgs rospy roscpp
導航到你的 src 目錄並建立一個名為 talker.cpp 的新檔案
cd hello_world/src
touch talker.cpp
編輯新檔案並貼上此程式碼以釋出 hello world
訊息
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>
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(10);
int count = 0;
while (ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << "hello world " << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0;
}
返回包目錄的根目錄
cd ..
將這些行新增/取消註釋到你的 CMakeLists.txt
catkin_package(
INCLUDE_DIRS include
LIBRARIES hello_world
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
)
include_directories(include ${catkin_INCLUDE_DIRS})
add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker hello_world_generate_messages_cpp)
返回工作區的根目錄
cd ..
建立新的釋出者
catkin_make
再次獲取你的安裝檔案,以便擁有新的包和釋出者
source devel/setup.bash
啟動 ROS
roscore
讓 roscore 保持執行並在新的終端選項卡/視窗中啟動你的釋出者
rosrun hello_world talker
讓釋出者繼續執行,並在另一個新的終端選項卡/視窗中,回顯輸出
rostopic echo /chatter