柴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