turtlesim到貪吃蛇……(補充)

      網友投稿 891 2025-03-31

      原文如下:

      從turtlesim到貪吃蛇……

      部分提示:

      背下來但是不理解,忘得特別快!!!

      綜合項目案例一:貪吃蛇實現

      1. 這個項目實現,需要用到哪些已經學過的知識點?

      總-分

      2. 如何將這些知識點融合(綜合)完成此案例?

      3. 每個知識點在此綜合項目中的組成部分或位置?

      4. 設計方案(草案)完成項目構思?

      5. 編程實現各部分的功能并測試?

      6. 將各部分的功能進行有機組合實現此項目案例?

      分-總

      綜合拆解成單元,單元組成綜合。

      復雜變簡單,簡單變復雜

      1. 車隊現象!

      領隊負責路徑規劃,其他參與者負責跟隨

      第一種:領隊找隊友-貪吃蛇

      第二種:隊友找領隊-集群

      2. 圖形化使用turtlesim;擴展生成新的機器人(用cpp代碼實現而非API接口);領隊需要使用鍵盤遙控;

      3. 集群和貪吃蛇聯系,如何改變和應用?

      4. 如何利用上述知識點進行設計?

      一個有問題的程序如下(請不要參考):

      #include

      #include

      #include

      #include

      int main(int argc, char** argv)

      {

      ros::init(argc, argv, "my_tf_listener");

      ros::NodeHandle node;

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle = node.serviceClient("/spawn");

      turtlesim::Spawn srv;

      add_turtle.call(srv);

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle3 = node.serviceClient("/spawn");

      turtlesim::Spawn srv3;

      add_turtle.call(srv3);

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle4 = node.serviceClient("/spawn");

      turtlesim::Spawn srv4;

      add_turtle.call(srv4);

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle5 = node.serviceClient("/spawn");

      turtlesim::Spawn srv5;

      add_turtle.call(srv5);

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle6 = node.serviceClient("/spawn");

      turtlesim::Spawn srv6;

      add_turtle.call(srv6);

      ros::service::waitForService("/spawn");

      ros::ServiceClient add_turtle7 = node.serviceClient("/spawn");

      turtlesim::Spawn srv7;

      add_turtle.call(srv7);

      ros::Publisher turtle_vel = node.advertise("/turtle2/cmd_vel", 10);

      ros::Publisher turtle_vel3 = node.advertise("/turtle3/cmd_vel", 10);

      ros::Publisher turtle_vel4 = node.advertise("/turtle4/cmd_vel", 10);

      ros::Publisher turtle_vel5 = node.advertise("/turtle5/cmd_vel", 10);

      ros::Publisher turtle_vel6 = node.advertise("/turtle6/cmd_vel", 10);

      ros::Publisher turtle_vel7 = node.advertise("/turtle7/cmd_vel", 10);

      tf::TransformListener listener;

      tf::TransformListener listener3;

      ros::Rate rate(10.0);

      while (node.ok())

      {

      //

      tf::StampedTransform transform;

      try

      {

      listener.waitForTransform("/turtle2", "/turtle1", ros::Time(0), ros::Duration(3.0));

      listener.lookupTransform("/turtle2", "/turtle1", ros::Time(0), transform);

      }

      catch (tf::TransformException &ex)

      {

      ROS_ERROR("%s",ex.what());

      ros::Duration(1.0).sleep();

      continue;

      }

      //

      geometry_msgs::Twist vel_msg;

      vel_msg.angular.z = 4.0 * atan2(transform.getOrigin().y(),

      transform.getOrigin().x());

      vel_msg.linear.x = 2.0 * sqrt(pow(transform.getOrigin().x(), 2) +

      pow(transform.getOrigin().y(), 2));

      turtle_vel.publish(vel_msg);

      if(vel_msg.linear.x<0.01){

      //

      tf::StampedTransform transform3;

      try

      {

      listener3.waitForTransform("/turtle3", "/turtle2", ros::Time(0), ros::Duration(3.0));

      listener3.lookupTransform("/turtle3", "/turtle2", ros::Time(0), transform);

      }

      catch (tf::TransformException &ex)

      {

      ROS_ERROR("%s",ex.what());

      ros::Duration(1.0).sleep();

      continue;

      }

      //

      geometry_msgs::Twist vel_msg3;

      vel_msg3.angular.z = 4.0 * atan2(transform3.getOrigin().y(),

      transform3.getOrigin().x());

      從turtlesim到貪吃蛇……(補充)

      vel_msg3.linear.x = 2.0 * sqrt(pow(transform3.getOrigin().x(), 2) +

      pow(transform3.getOrigin().y(), 2));

      turtle_vel3.publish(vel_msg3);

      }

      rate.sleep();

      }

      return 0;

      };

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:設備異常問題統計報表模板(設備故障統計表格模板)
      下一篇:如何做電子手抄報(電子手抄報怎么做?)
      相關文章
      亚洲网站在线播放| 亚洲五月综合缴情在线观看| 久久精品国产亚洲沈樵| 91麻豆精品国产自产在线观看亚洲| 日本亚洲欧美色视频在线播放| 亚洲欧洲精品成人久久曰| 亚洲无人区码一二三码区别图片| 亚洲综合色7777情网站777| 亚洲一级片在线播放| 国产精品亚洲精品观看不卡| 亚洲神级电影国语版| 亚洲国产精品人久久电影| 亚洲va成无码人在线观看| 亚洲一卡2卡3卡4卡国产网站| 亚洲一区二区免费视频| 国产亚洲精品VA片在线播放| 中文字幕亚洲精品无码| 色欲aⅴ亚洲情无码AV蜜桃| www.亚洲色图| 精品国产亚洲男女在线线电影| 在线精品亚洲一区二区三区| 亚洲精品无码鲁网中文电影| 亚洲国产精品无码AAA片| 亚洲国产国产综合一区首页| 亚洲视频精品在线观看| 亚洲一区二区三区在线观看蜜桃 | 国产亚洲美日韩AV中文字幕无码成人| 亚洲日韩在线第一页| 亚洲人成精品久久久久| 亚洲成色999久久网站| 亚洲高清日韩精品第一区| 亚洲中文无码线在线观看| 亚洲乱人伦中文字幕无码| 亚洲M码 欧洲S码SSS222| 一本久久a久久精品亚洲| 亚洲国产成人久久综合碰碰动漫3d| 精品亚洲成AV人在线观看| 亚洲1234区乱码| 久久精品亚洲日本波多野结衣| 亚洲日韩中文字幕日韩在线| 亚洲国产精品成人久久|