亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reactivestate.cpp

?? 一個簡單使用的控制器
?? CPP
字號:
#include "reactiveState.h"#include "com/ipc_com.h"#include "util/timeutil.h"// Minimal dstance from a tag for dropping another one#define MIN_DIST_FROM_TAG 1000 // in mm#define DEBUG_RFID 0 /********************************************** * msgHandlerRFIDSensor **********************************************/static void msgHandlerRFIDSensor(MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData){   IPC_RETURN_TYPE err = IPC_OK;   FORMATTER_PTR formatter;   rescue_rfid_sensor_message msg;   formatter = IPC_msgInstanceFormatter(msgRef);   err = IPC_unmarshallData(formatter, callData, &msg, sizeof(msg));   IPC_freeByteArray(callData);//   if (msg.robot.id != getRobotId()) {//      if (DEBUG_RFID)//       rlogDebug("Ignoring RFID_SENSOR_MESSAGE for other robot (%d)\n", msg.robot.id);//      return;//   }   if (DEBUG_RFID) {      rlogDebug("Received RFID_SENSOR_MESSAGE for this robot: ");      for (int i=0; i<msg.num; i++)          rlogNote( "Tag %d: ID: %ld\n",i,msg.id[i]);      rlogDebug("\n");   }   ((ReactiveState*)clientData)->updateRFIDSensor(msg);}/****************************************************************************** * msgHandlerBump * * handles reactive requests due to bumps *  * ****************************************************************************/static void msgHandlerBump(MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData){   (void)clientData;   IPC_RETURN_TYPE err = IPC_OK;   FORMATTER_PTR formatter;   rescue_free_bump_message msg;   formatter = IPC_msgInstanceFormatter(msgRef);   err = IPC_unmarshallData(formatter, callData, &msg,         sizeof(msg));   IPC_freeByteArray(callData);   ReactiveState *m_ptr = (ReactiveState*) clientData;   if (m_ptr)      m_ptr->update(msg);}/****************************************************************************** * msgHandlerTag * * handles reactive requests due to Tag requests  *  * ****************************************************************************/static void msgHandlerTag(MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData){   (void)clientData;   IPC_RETURN_TYPE err = IPC_OK;   FORMATTER_PTR formatter;   rescue_rfid_deploy_message msg;   formatter = IPC_msgInstanceFormatter(msgRef);   err = IPC_unmarshallData(formatter, callData, &msg, sizeof(msg));   IPC_freeByteArray(callData);   ReactiveState *m_ptr = (ReactiveState*) clientData;   if (m_ptr)      m_ptr->update(msg);}/****************************************************************************** * msgHandlerGradient * * handles reactive requests due to cells with positive occupancy prob *  * ****************************************************************************/static void msgHandlerGradient(MSG_INSTANCE msgRef, BYTE_ARRAY callData, void *clientData){   (void)clientData;   IPC_RETURN_TYPE err = IPC_OK;   FORMATTER_PTR formatter;   rescue_free_gradient_message msg;   formatter = IPC_msgInstanceFormatter(msgRef);   err = IPC_unmarshallData(formatter, callData, &msg,         sizeof(msg));   IPC_freeByteArray(callData);   ReactiveState *m_ptr = (ReactiveState*) clientData;   if (m_ptr)      m_ptr->update(msg);}/****************************************************************************** * ReactiveState() * * Reactive state constructor. Subscribes to the messages from VFH *  * ****************************************************************************/ReactiveState::ReactiveState(RobotAction* robot){   _robot = robot;   _bump=false;   _gradient=false;   _rfidReq=false;   _lastRFIDPos.timeStamp.tv_sec = 0;   _lastRFIDPos.timeStamp.tv_usec = 0;   _lastRFIDPosValid = false;      _nearRfid=false;      _nearRfidTime=getCurrentTime();   ComSubscribeToRobot(RESCUE_REACTIVE_FREE_GRADIENT_NAME, msgHandlerGradient, this);   ComSubscribeToRobot(RESCUE_REACTIVE_FREE_BUMP_NAME, msgHandlerBump, this);   ComSubscribeToRobot(RESCUE_RFID_DEPLOY_NAME, msgHandlerTag, this);   ComSubscribeToRobot(RESCUE_RFID_SENSOR_NAME, msgHandlerRFIDSensor,this);}bool ReactiveState::RFIDTagDetectionAtCurrentPos()   {  struct timeval now=getCurrentTime();      return _nearRfid && TimevalDiff(&now,&_nearRfidTime)<=0.5;   /*if (!_lastRFIDPosValid)      return false;   double x = _robot->getPosX();   double z = _robot->getPosZ();   double dist = hypot(x-_lastRFIDPos.x, z -_lastRFIDPos.z);   if (dist<MIN_DIST_FROM_TAG) {      if (DEBUG_RFID)	    rlogDebug("We are too close to a tag: dist=%f\n",dist);      return true;   }   return false;*/}void ReactiveState::updateRFIDSensor(rescue_rfid_sensor_message msg){   for (int i=0; i<msg.num; i++)       if(hypot(msg.x[i],msg.z[i]<MIN_DIST_FROM_TAG)  && msg.id[i]<9999)        { _nearRfid=true;        _nearRfidTime=getCurrentTime();          return;      }   _nearRfid=false;       _nearRfidTime=getCurrentTime();    /* _lastRFIDPos.x = _robot->getPosX();      _lastRFIDPos.z = _robot->getPosZ();      _lastRFIDPos.th = _robot->getPosTh();      _lastRFIDPos.timeStamp = msg.robot.ts;      _lastRFIDPosValid = true;      _lastRFIDTags.clear();   //rlogDebug("Detected RFIDS: ");   _lastRFIDTags.clear();   for (int i=0; i<msg.num; i++) {   */  /*if (DEBUG_RFID)         rlogDebug("%ld ",msg.id[i]);*/   /*   _lastRFIDTags.push_back(msg.id[i]);        }*/   //rlogDebug("\n");}void ReactiveState::update(rescue_free_bump_message msg){   _bumpGoal.x=msg.x;   _bumpGoal.z=msg.z;   _bump=true;}void ReactiveState::update(rescue_free_gradient_message msg){   _gradientGoal.x=msg.x;   _gradientGoal.z=msg.z;   _gradient=true;   _gradient_time=getCurrentTime();}void ReactiveState::update(rescue_rfid_deploy_message msg){   if (msg.triggerTag == 1)      _rfidReq=true;}/****************************************************************************** * reactiveFreeBump * * if a reactive bump msg was received sets the goal position and returns true. *  * ****************************************************************************/bool ReactiveState::reactiveFreeBump(RobotSkill::Pos& goal){   if(_bump){      goal.x=_bumpGoal.x;      goal.z=_bumpGoal.z;      _bump=false;      return true;   }   return false;}/****************************************************************************** * reactiveFreeGradient * * if a reactive gradient msg was received sets the goal position and returns true. *  * ****************************************************************************/bool ReactiveState::reactiveFreeGradient(RobotSkill::Pos& goal){      goal.x=_gradientGoal.x;      goal.z=_gradientGoal.z;      struct timeval now=getCurrentTime();      return fabs(TimevalDiff(&_gradient_time, &now))< 3;}/****************************************************************************** * requestReleaseTag * * returns true if a tag release msg was received. *  * ****************************************************************************/bool ReactiveState::requestReleaseTag(){    if(_rfidReq)   {      if(DEBUG_RFID )         rlogNote("REQUESTED TO DROP TAG ...\n");      _rfidReq=false;       if (RFIDTagDetectionAtCurrentPos()){         if(DEBUG_RFID )            rlogNote("BUT ONE IN THE WAY ...\n");         return false;      }      else{         if(DEBUG_RFID)            rlogNote("OK!\n");          return true;      }   }   return false;}/********************************************************************* * (C) Copyright 2006 Albert Ludwigs University Freiburg *     Institute of Computer Science * * All rights reserved. Use of this software is permitted for * non-commercial research purposes, and it may be copied only * for that use. All copies must include this copyright message. * This software is made available AS IS, and neither the authors * nor the Albert Ludwigs University Freiburg make any warranty * about the software or its performance. *********************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人av在线| 5566中文字幕一区二区电影| 亚洲国产欧美在线| 亚洲精品久久久久久国产精华液| 欧美激情一区二区三区| 国产精品久久久久三级| 亚洲精品一区二区三区影院| 日本一不卡视频| 成人a区在线观看| 成人综合婷婷国产精品久久蜜臀 | 一本色道久久综合亚洲精品按摩| 国产乱对白刺激视频不卡| 国产成人在线视频网址| 精彩视频一区二区三区| 免费不卡在线视频| 久久99精品国产.久久久久久| 五月综合激情日本mⅴ| 亚洲线精品一区二区三区八戒| 日韩不卡手机在线v区| 免费日本视频一区| 欧美精品精品一区| 91亚洲大成网污www| 97久久超碰国产精品电影| 日本韩国欧美国产| 欧美一区二区在线看| 2023国产精品| 亚洲美女视频在线| 日韩电影免费在线观看网站| 国产精品77777竹菊影视小说| 91麻豆福利精品推荐| 欧美一区日韩一区| 国产日韩av一区| 亚洲观看高清完整版在线观看| 日av在线不卡| 92精品国产成人观看免费| 欧美一区二区不卡视频| 亚洲欧美一区二区视频| 蜜桃在线一区二区三区| 91在线一区二区| 久久久久久久久久看片| 亚洲宅男天堂在线观看无病毒| 九九精品视频在线看| 97se狠狠狠综合亚洲狠狠| 精品免费日韩av| 亚洲国产视频在线| 成人av影院在线| 欧美成人福利视频| 亚洲国产一二三| 91亚洲国产成人精品一区二三| 日韩一区二区三区四区| 一区二区三区四区精品在线视频 | 欧美吻胸吃奶大尺度电影| www国产精品av| 无码av免费一区二区三区试看 | 欧美日韩午夜在线| 中文字幕一区二区三中文字幕| 免费的成人av| 欧美日韩一区二区三区不卡| 国产精品视频免费| 国产老妇另类xxxxx| 日韩午夜在线影院| 午夜成人在线视频| 欧美中文字幕亚洲一区二区va在线| 久久九九99视频| 麻豆精品久久久| 欧美一区二区三区在线观看| 亚洲电影激情视频网站| 一本到不卡免费一区二区| 日本一区二区三区免费乱视频 | 亚洲精品免费播放| 91免费在线视频观看| 国产精品麻豆网站| www.欧美色图| 亚洲欧洲精品天堂一级 | 日韩一区二区三区av| 日本伊人午夜精品| 欧美成人三级在线| 国产一区二区三区在线观看免费视频| 69成人精品免费视频| 日韩福利电影在线| 精品国产污污免费网站入口| 国产在线看一区| 国产欧美精品一区二区三区四区| 国产成人在线视频网站| 国产精品日日摸夜夜摸av| av在线一区二区| 亚洲一区二区3| 日韩欧美在线网站| 日韩精品最新网址| 风间由美一区二区三区在线观看 | 91黄色免费版| 午夜在线成人av| 欧美一级专区免费大片| 精品一区二区三区免费视频| 精品999在线播放| 成人激情免费视频| 一区二区在线观看av| 欧美日韩卡一卡二| 精一区二区三区| 国产精品传媒入口麻豆| 在线观看三级视频欧美| 日韩av不卡一区二区| 久久久精品国产免大香伊| 91在线精品一区二区| 亚洲va韩国va欧美va精品| 欧美不卡在线视频| 91视频一区二区| 奇米影视7777精品一区二区| 国产亚洲欧洲一区高清在线观看| 91视视频在线观看入口直接观看www | 国精品**一区二区三区在线蜜桃| 国产精品美女久久久久久2018| 色94色欧美sute亚洲13| 开心九九激情九九欧美日韩精美视频电影 | 色国产精品一区在线观看| 久久99精品国产91久久来源| 亚洲欧美怡红院| 26uuu亚洲| 欧美日韩视频专区在线播放| 国产69精品久久99不卡| 天堂影院一区二区| 亚洲蜜臀av乱码久久精品| 日韩欧美一级特黄在线播放| 色先锋久久av资源部| 国产精品99久久久久久有的能看 | 久久国产生活片100| 亚洲另类在线视频| 国产精品欧美综合在线| 精品电影一区二区三区| 欧美乱妇一区二区三区不卡视频| 成人sese在线| 国产精品影视网| 男男视频亚洲欧美| 午夜精品123| 亚洲午夜精品网| 欧美日韩电影一区| 欧美一级夜夜爽| 国产一区二区三区不卡在线观看 | 精品国产三级a在线观看| 91在线视频免费观看| 久久成人久久鬼色| 五月婷婷激情综合| 亚洲精品免费看| 亚洲精品国产高清久久伦理二区| 久久在线免费观看| 日韩午夜在线观看视频| 91精品蜜臀在线一区尤物| 欧美色综合天天久久综合精品| 一区二区三区欧美在线观看| 欧美一区二区三区在线观看视频| 色综合天天综合网天天狠天天| 国产91精品一区二区麻豆亚洲| 蜜臀久久久99精品久久久久久| 亚洲一区二区三区四区不卡| 夜夜嗨av一区二区三区| 国产精品福利电影一区二区三区四区| 国产亚洲短视频| 久久精品人人做人人综合| 久久久午夜精品理论片中文字幕| 日韩精品一区二区三区四区 | 国产一区二区三区精品欧美日韩一区二区三区| 亚洲线精品一区二区三区八戒| 亚洲色欲色欲www在线观看| 欧美在线一二三| thepron国产精品| av午夜精品一区二区三区| 99久久婷婷国产综合精品电影 | 久久99精品网久久| 麻豆精品一区二区av白丝在线| 美女视频黄 久久| 久久99久久99精品免视看婷婷 | 亚洲成av人片一区二区三区| 亚洲综合图片区| 日本免费新一区视频| 久久不见久久见免费视频7| 久久99精品视频| 成人一级片网址| 色婷婷国产精品| 欧美久久高跟鞋激| 精品国产亚洲在线| 国产精品麻豆欧美日韩ww| 亚洲狠狠丁香婷婷综合久久久| 日韩高清不卡一区二区三区| 亚洲欧美偷拍三级| 国产91精品一区二区麻豆亚洲| 成人国产精品视频| 色综合久久88色综合天天| 欧美精品国产精品| 国产视频亚洲色图| 亚洲愉拍自拍另类高清精品| 麻豆久久久久久久| 91视频在线观看免费| 5858s免费视频成人| 国产精品欧美一区二区三区| 一区二区三区日韩欧美精品| 日本午夜一本久久久综合| 国产成人8x视频一区二区| 91 com成人网| 亚洲婷婷在线视频| 麻豆久久一区二区|