先運行roscore和turtlesim
你將會看到很鮮豔的顏色
//這是根據ros淺談第八章更改烏龜顏色的一個例子,改編過來的,符合我狂亂的風格
#include <ros/ros.h>
#include <std_srvs/Empty.h>//empty是turtlesim_node提供的服務clear的消息類型
#include <cstdlib>
int main(int argc,char** argv)
{
ros::init(argc,argv,"set_bk_color");//生成set_bk_color
ros::NodeHandle n;//節點句柄
srand(time(0));//設置隨機種子,以便使用不同顏色
while(ros::ok)//運行正常
{
//設置RGB三種隨機顏色
int Red=255*double(rand())/double(RAND_MAX);
int Green=255*double(rand())/double(RAND_MAX);
int Bule=255*double(rand())/double(RAND_MAX);
//rosparam使得我們能夠存儲並操作ROS參數服務器,重新設置顏色
ros::param::set("background_r",Red);
ros::param::set("background_g",Green);
ros::param::set("background_b",Bule);
//這時候程序並沒有顯示變化,所以要更新服務
//填充服務clear
ros::ServiceClient clearClient
=n.serviceClient<std_srvs::Empty>("/clear");
std_srvs::Empty srv;
//調用服務
clearClient.call(srv);
//控制頻率
ros::spinOnce();
//重新認識了spinOnce和spin區別,spin=while(ok){spinOnce()};,使用spin是過不去的
}
}