循環は、生徒の成績や評価を印刷:としては、個人コードのみ効果を達成するために、テストに使用され、本明細書中にコードのみの書き込みを使用していました。
ワークスペースを作成します。
まず、(作業フォルダを作成し、端子(はCtrl + Alt + T)を開きcatkin_ws
、作業フォルダ名のために、あなたがカスタマイズすることができます):mkdir -p ~/catkin_ws/src
入力した後、我々はメインディレクトリのファイルマネージャでは、名前の見つけることができるcatkin_ws
ファイルフォルダを、これは先ほど作成した作業スペースであります:
srcフォルダへ:cd ~/catkin_ws/src/
ROSのワークスペース属性を持つ現在のフォルダ:catkin_init_workspace
そして、ワークスペースのホームディレクトリに戻ります。cd ~/catkin_ws/
コンパイルします。catkin_make
コンパイル後、あなたがして開くcatkin_ws
フォルダを、あなたはより多くのファイルの多くを見つけます:
後者の使用を容易にするために、我々はソースを追加する必要があります。echo "source ~/catkin_ws/devel/setup.zsh" >> ~/.zshrc
私はあなたの端末がbashのであればし、その後、端末はzshのある使用
.zsh
読み.bash
、.zshrc
読み.bashrc
に
メッセージファイルの作成と設定
まず、srcフォルダを入力します。cd ~/catkin_ws/src/
フィーチャーパック、作成ros_topic
あなたが名前をカスタマイズすることができました:catkin_create_pkg ros_topic roscpp rospy std_msgs
この機能のパッケージにアクセスするには:cd ~/catkin_ws/src/ros_topic/
この機能パックで、我々はMSGのフォルダを作成し、店舗に使用されるこのフォルダ.msg
のファイル:mkdir msg
MSGフォルダを入力します。cd ~/catkin_ws/src/ros_topic/msg/
.msgファイルを作成score
、カスタマイズすることができました:gedit score.msg
ダイアログボックスで、コードを貼り付け、次のテストを保存します。
string student_name
float32 score
string evaluation
string good = "good"
string bad = "bad"
さて、この時点までに、我々は良いにMSGファイル、コード入力を作成し、現在は修正する必要がありましたpackage.xml
、適切な設定のためのファイルを:gedit ~/catkin_ws/src/ros_topic/package.xml
では<exec_depend>std_msgs</exec_depend>
、次のコードは、次のコードを貼り付け、保存します。
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
貼り付け後の図の効果を完全:
その後、再び我々はCMakeLists.txt
、適切なコンフィギュレーションファイル:gedit ~/catkin_ws/src/ros_topic/CMakeLists.txt
見つけ、ポップアップ表示ボックスにfind_package
、追加しますmessage_generation
:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
FOUNDは注釈を付けてきたadd_message_files
、その前に削除コメント記号を、以下のように修正します:
add_message_files(
FILES
score.msg
)
同様に、検索は、注釈を付けたgenerate_messages
その前に、削除コメント記号を、以下のように修正します:
generate_messages(
DEPENDENCIES
std_msgs
)
検索catkin_package
し、次のように改正:
catkin_package(
CATKIN_DEPENDS
message_runtime
# INCLUDE_DIRS include
# LIBRARIES ros_topic
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
)
出版社の出版社の作成と設定
私たちは、新しいCPPファイルを開始しました:gedit ~/catkin_ws/src/ros_topic/src/publisher_score.cpp
ダイアログボックスで、コードを貼り付け、次のテストを保存します。
#include "ros/ros.h"
#include "learning_topic/score.h"
int main(int argc, char *argv[]) {
// 初始化 ROS 节点
ros::init(argc, argv, "publisher_score");
// 创建节点句柄
ros::NodeHandle n;
// 创建一个 Publisher
ros::Publisher score_pub = \
n.advertise<learning_topic::score>("/score", 10);
// 设置一个循环 1Hz
ros::Rate loop_rate(1);
while (ros::ok()) {
// 初始化 learning_topic::score 类型的消息
learning_topic::score score_msg;
// 创建一个人物以及他的成绩
score_msg.student_name = "LiHua";
score_msg.score = 90.5;
score_msg.evaluation = learning_topic::score::good;
// 发布消息
score_pub.publish(score_msg);
ROS_INFO("%s got %.1f points in the exam and was rated as %s", \
score_msg.student_name.c_str(),\
score_msg.score, \
score_msg.evaluation.c_str());
// 按照循环频率延时
loop_rate.sleep();
}
return 0;
}
今、私たちはオープン、ファイルマネージャを開いて/主目录/catkin_ws/src/ros_topic/src
、あなたが作成したCPPファイルを見ることができます:
次に、我々は、コンフィギュレーションの再CMakeLists.txt
ファイルを:gedit ~/catkin_ws/src/ros_topic/CMakeLists.txt
最後の行までスクロールし、次のコードを追加し、それを保存します。
add_executable(publisher_score src/publisher_score.cpp)
add_dependencies(publisher_score ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(publisher_score ${catkin_LIBRARIES})
これは、我々はすべての設定され、次のワークスペースのホームディレクトリに戻って準備ができて:cd ~/catkin_ws/
コンパイルします。catkin_make
コンパイル後、開始するにはroscore
:roscore
次に、端末(はCtrl + Alt + T)を開き、入力:rosrun ros_topic publisher_score
あなたが効果を確認します、我々は行われています。