柴CK『ロボットオペレーティングシステム入門』ノート
1548 ワード
一、シミュレーションパラメータ
シミュレーションインタフェースの起動roslaunch robot_sim_demo robot_spawn.launch
ほうこうせいぎょrosrun robot_sim_demo robot_keyboard_teleop.py
二、roscppのtopic_demo
機能の簡単な説明:2つのnode(プロセス)、1つはシミュレーションのGPSメッセージ(座標と動作状態を含むフォーマットのカスタマイズ)、もう1つはメッセージを受信して処理します(原点までの距離を計算します).
手順:①、パッケージcd ~/tutorial_ws/src
catkin_create_pkg topic_demo roscpp rospy std_msgs
②、msg cd topic_demo
mkdir msg
cd msg
vi gps.msg
gps.msg
float32 x
float32 y
string state
コンパイルするとgpsファイルが生成されます.パスは~/tutorial_ws/devel/include/topic_demo/gps.h
です.このmsgの使用方法は次のとおりです.#include
...
topic_demo::gps msg;
...
③、talker.cpp #include //#ros
#include
int main(int argc, char** argv)
{
ros::int(argc, argv, "talker"); // , node
ros::NodeHandle nh;// , node
topic_demo::gps msg;// gps
msg.x = 1.0;
msg.y = 1.0;
msg.state = "working";
ros::Publisher pub = nh.advertise<:gps>("gps_info", 1);// publisher,gps_info topic ,1
ros::Rate loop_rate(1.0);//
while(ros::ok())
{
msg.x = 1.03 * msg.x;
msg.y = 1.03 * msg.y;
ROS_INFO("Talker:GPS: x = %f, y = %f", msg.x, msg.y);// msg, printf
pub.publish(msg);//
loop_rate.sleep();// ,sleep
}
return 0;
}
④、listener.cpp ⑤、CMakeList.txt & package.xml
roslaunch robot_sim_demo robot_spawn.launch
rosrun robot_sim_demo robot_keyboard_teleop.py
機能の簡単な説明:2つのnode(プロセス)、1つはシミュレーションのGPSメッセージ(座標と動作状態を含むフォーマットのカスタマイズ)、もう1つはメッセージを受信して処理します(原点までの距離を計算します).
手順:①、パッケージ
cd ~/tutorial_ws/src
catkin_create_pkg topic_demo roscpp rospy std_msgs
②、msg
cd topic_demo
mkdir msg
cd msg
vi gps.msg
gps.msg
float32 x
float32 y
string state
コンパイルするとgpsファイルが生成されます.パスは
~/tutorial_ws/devel/include/topic_demo/gps.h
です.このmsgの使用方法は次のとおりです.#include
...
topic_demo::gps msg;
...
③、talker.cpp
#include //#ros
#include
int main(int argc, char** argv)
{
ros::int(argc, argv, "talker"); // , node
ros::NodeHandle nh;// , node
topic_demo::gps msg;// gps
msg.x = 1.0;
msg.y = 1.0;
msg.state = "working";
ros::Publisher pub = nh.advertise<:gps>("gps_info", 1);// publisher,gps_info topic ,1
ros::Rate loop_rate(1.0);//
while(ros::ok())
{
msg.x = 1.03 * msg.x;
msg.y = 1.03 * msg.y;
ROS_INFO("Talker:GPS: x = %f, y = %f", msg.x, msg.y);// msg, printf
pub.publish(msg);//
loop_rate.sleep();// ,sleep
}
return 0;
}
④、listener.cpp ⑤、CMakeList.txt & package.xml