ROS編程示例---設置烏龜背景隨機顏色

先運行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是過不去的
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章