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

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

?? scout_lib.c

?? 卡內基梅隆大學(CMU)開發的移動機器人控制開發軟件包。可對多種機器人進行控制
?? C
字號:
 /********************************************************* * * This source code is part of the Carnegie Mellon Robot * Navigation Toolkit (CARMEN) * * CARMEN Copyright (c) 2002 Michael Montemerlo, Nicholas * Roy, Sebastian Thrun, Dirk Haehnel, Cyrill Stachniss, * and Jared Glover * * CARMEN is free software; you can redistribute it and/or  * modify it under the terms of the GNU General Public  * License as published by the Free Software Foundation;  * either version 2 of the License, or (at your option) * any later version. * * CARMEN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.  See the GNU General Public License for more  * details. * * You should have received a copy of the GNU General  * Public License along with CARMEN; if not, write to the * Free Software Foundation, Inc., 59 Temple Place,  * Suite 330, Boston, MA  02111-1307 USA * ********************************************************/#include <carmen/carmen.h>#include <carmen/drive_low_level.h>#include <sys/ioctl.h>#include "Nclient.h"#include <limits.h>#define METRES_PER_INCH 0.0254#define METRES_PER_SCOUT (METRES_PER_INCH/10.0)#define DEGREES_PER_SCOUT 0.1#define MAXV (1.0/METRES_PER_SCOUT)#define MAX_SONARS 16//      STANDARD_WHEELBASE   13.4 in #define STANDARD_WHEELBASE   0.34036static int sonar_is_on = 0;static int model_type;static double time_since_last_command = 0;int carmen_base_direct_sonar_on(void){  int sn_order[MAX_SONARS] = {0, 2, 15, 1, 14, 3, 13, 4, 12, 5, 11, 6, 			      10, 7, 9, 8};    int result;    result = conf_sn(15, sn_order);  if (result == FALSE)    return -1;  conf_tm(5);   if (result == FALSE)    return -1;  time_since_last_command = carmen_get_time();    sonar_is_on = 1;    return MAX_SONARS;}int carmen_base_direct_sonar_off(void){  int result;      result = conf_sn(0, NULL);  sonar_is_on = 0;  if (result == FALSE)    return -1;  time_since_last_command = carmen_get_time();    return 0;}int carmen_base_direct_reset(void){  int result;  result = zr();  if(result != 1)    return -1;  time_since_last_command = carmen_get_time();    return 0;}int carmen_base_direct_initialize_robot(char *model, char *dev){  int result;  if (strlen(model) == 4 && carmen_strncasecmp(model, "N200", 4) == 0)    model_type = MODEL_N200;  else if (strlen(model) == 4 && carmen_strncasecmp(model, "N150", 4) == 0)    model_type = MODEL_N150;  else if (strlen(model) == 5 && carmen_strncasecmp(model, "SCOUT", 5) == 0)    model_type = MODEL_SCOUT;  else if (strlen(model) == 6 && carmen_strncasecmp(model, "SCOUT2", 6) == 0)    model_type = MODEL_SCOUT2;  else    {      carmen_warn("%s Unknown Nomad model %s:\nAcceptable models are\n"		  "N200, N150, SCOUT and SCOUT2%s\n", carmen_red_code, model,		  carmen_normal_code);      return -1;    }  result = connect_robot(1, model_type, dev, 38400);  if(result == FALSE)    return -1;  return 0;}int carmen_base_direct_shutdown_robot(void){  st();  lp();  disconnect_robot(1);  time_since_last_command = carmen_get_time();  return 0;}int carmen_base_direct_set_acceleration(double acceleration){  double acc;  int result;  acc = acceleration/METRES_PER_SCOUT;  result = ac(acc, acc, 0.0);  if (result == FALSE)    return -1;  time_since_last_command = carmen_get_time();  return 0;}int carmen_base_direct_set_deceleration(double deceleration){  double acc;  int result;  acc = deceleration/METRES_PER_SCOUT;  result = ac(acc, acc, 0.0);  if (result == FALSE)    return -1;  time_since_last_command = carmen_get_time();  return 0;}int carmen_base_direct_set_velocity(double tv, double rv){  double vl, vr;  int result;  if (model_type == MODEL_SCOUT || model_type == MODEL_SCOUT2)    {      vl = tv;      vr = tv;            vl -= 0.5 * rv * STANDARD_WHEELBASE;      vr += 0.5 * rv * STANDARD_WHEELBASE;            vl /= METRES_PER_SCOUT;      vr /= METRES_PER_SCOUT;              if(vl > MAXV)	vl = MAXV;      else if(vl < -MAXV)	vl = -MAXV;      if(vr > MAXV)	vr = MAXV;      else if(vr < -MAXV)	vr = -MAXV;            result = vm(carmen_trunc(vl), carmen_trunc(vr), 0.0);    }  else    {      tv /= METRES_PER_SCOUT;      rv = carmen_radians_to_degrees(rv) / DEGREES_PER_SCOUT;      result = vm(tv, rv, 0.0);    }  if (result == FALSE)    return -1;  time_since_last_command = carmen_get_time();  return 0;}int carmen_base_direct_update_status(double* packet_timestamp __attribute__ ((unused))){  if (carmen_get_time() - time_since_last_command < .06)    return 0;  return gs();}intcarmen_base_direct_get_state(double *displacement, double *rotation,			     double *tv, double *rv){  static int initialised = 0;  static double prev_x, prev_y, prev_theta;  double x, y, theta;  double delta_x, delta_y, delta_theta;  x = ((double)State[STATE_CONF_X]) * METRES_PER_SCOUT;  y = ((double)State[STATE_CONF_Y]) * METRES_PER_SCOUT;  theta = ((double)State[STATE_CONF_STEER]) * DEGREES_PER_SCOUT;  theta = carmen_normalize_theta(carmen_degrees_to_radians(theta));  if (initialised)     {            delta_x = x - prev_x;      delta_y = y - prev_y;      delta_theta = theta - prev_theta;      if (x < prev_x && prev_x - x > LONG_MAX/2)	delta_x = (x + LONG_MAX / 2) - (prev_x - LONG_MAX/2);      else if (x > prev_x && x - prev_x > LONG_MAX/2)	delta_x = (x - LONG_MAX / 2) - (prev_x + LONG_MAX/2);      if (y < prev_y && prev_y - y > LONG_MAX/2)	delta_y = (y + LONG_MAX / 2) - (prev_y - LONG_MAX/2);      else if (y > prev_y && y - prev_y > LONG_MAX/2)	delta_y = (y - LONG_MAX / 2) - (prev_y + LONG_MAX/2);      if (theta < prev_theta && prev_theta - theta > M_PI)	delta_theta = (theta + M_PI) - (prev_theta - M_PI);      else if (theta > prev_theta && theta - prev_theta > M_PI)	delta_theta = (theta - M_PI) - (prev_theta + M_PI);            if (displacement)	*displacement = hypot(delta_x, delta_y);      if (rotation)	*rotation = delta_theta;    }  else     {      initialised = 1;    }  prev_x = x;  prev_y = y;  prev_theta = theta;  if (tv)    *tv = ((double)State[STATE_VEL_TRANS]) * METRES_PER_SCOUT;  if (rv)    *rv = ((double)State[STATE_VEL_STEER]) * METRES_PER_SCOUT;  return 0;}intcarmen_base_direct_get_integrated_state(double *x, double *y, double *theta,					double *tv, double *rv){  if (x)    *x = ((double)State[STATE_CONF_X]) * METRES_PER_SCOUT;  if (y)    *y = ((double)State[STATE_CONF_Y]) * METRES_PER_SCOUT;  if (theta) {    *theta = ((double)State[STATE_CONF_STEER]) * DEGREES_PER_SCOUT;    *theta = carmen_normalize_theta(carmen_degrees_to_radians(*theta));  }  if (tv)    *tv = ((double)State[STATE_VEL_TRANS]) * METRES_PER_SCOUT;  if (rv)    *rv = ((double)State[STATE_VEL_STEER]) * METRES_PER_SCOUT;  return 0;}int carmen_base_direct_send_binary_data(unsigned char *data, 				    int size __attribute__ ((unused))){  return special_request(data, NULL);}int carmen_base_direct_get_binary_data(unsigned char **data, int *size){  if (data == NULL || size == NULL)    return 0;  (*data) = calloc(NUM_STATE, sizeof(long));  carmen_test_alloc(*data);  memcpy(*data, State, sizeof(long)*NUM_STATE);  return 0;}int carmen_base_direct_get_bumpers(unsigned char *state __attribute__ ((unused)), 				   int num_bumpers __attribute__ ((unused))){  carmen_warn("Send binary data not supported by RFlex.\n");  return 0;}void carmen_base_direct_arm_get(double servos[] __attribute__ ((unused)), 				int num_servos __attribute__ ((unused)), 				double *currents __attribute__ ((unused)), 				int *gripper __attribute__ ((unused))){  carmen_warn("%s not supported by pioneer.\n", __FUNCTION__);}void carmen_base_direct_arm_set(double servos[] __attribute__ ((unused)), 				int num_servos __attribute__ ((unused))){  carmen_warn("%s not supported by pioneer.\n", __FUNCTION__);}int carmen_base_direct_get_sonars(double *ranges, 				  carmen_point_t *positions 				  __attribute__ ((unused)),				  int num_sonars){  int i;  if (ranges != NULL && sonar_is_on) {    if (num_sonars > MAX_SONARS)      num_sonars = MAX_SONARS;    for(i = 0; i < num_sonars; i++)      ranges[i] = ((double)State[i + STATE_SONAR_0]) * METRES_PER_INCH;  } /* End of if (sonar != NULL && sonar_is_on) */    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产 欧美在线| 秋霞成人午夜伦在线观看| 成人精品国产福利| 中文字幕第一区| 91麻豆国产在线观看| 亚洲va欧美va国产va天堂影院| 精品视频在线免费看| 日本不卡视频一二三区| 精品国产亚洲在线| 成人性生交大片免费看视频在线 | 成人高清av在线| 亚洲欧洲制服丝袜| 欧美日韩激情一区二区| 久久黄色级2电影| 亚洲国产精品成人综合色在线婷婷 | 在线视频欧美区| 麻豆精品久久精品色综合| 久久综合给合久久狠狠狠97色69| 福利一区在线观看| 亚洲午夜视频在线观看| 91精品国产品国语在线不卡| 国产成人午夜视频| 亚洲图片一区二区| 久久久久综合网| 色欧美乱欧美15图片| 伦理电影国产精品| 亚洲精品亚洲人成人网在线播放| 欧美一卡在线观看| 成人av午夜影院| 免费观看在线综合| 亚洲视频图片小说| 亚洲欧美在线视频观看| 欧美日韩国产123区| 国产精品一区二区x88av| 亚洲第一精品在线| 国产精品―色哟哟| 精品成人私密视频| 欧美少妇xxx| 99久久精品国产一区二区三区| 日本麻豆一区二区三区视频| ...xxx性欧美| 精品99999| 91精品久久久久久蜜臀| 91视频观看免费| 国产成人精品免费一区二区| 亚洲风情在线资源站| 亚洲婷婷综合色高清在线| 欧美成人精品二区三区99精品| 色婷婷综合久色| 国产成人一区在线| 另类小说欧美激情| 日韩高清不卡在线| 亚洲韩国精品一区| 亚洲精品免费看| 一区在线观看视频| 欧美精彩视频一区二区三区| 日韩欧美aaaaaa| 欧美一区二区三区免费观看视频| 欧美亚洲国产一区在线观看网站| av亚洲精华国产精华精华| 国产另类ts人妖一区二区| 精品一区二区日韩| 秋霞影院一区二区| 日本伊人精品一区二区三区观看方式| 亚洲综合成人网| 亚洲蜜臀av乱码久久精品| 中文字幕在线视频一区| 国产欧美一二三区| 国产日韩欧美综合一区| 久久免费偷拍视频| 国产婷婷色一区二区三区四区 | 国产精品伦理一区二区| 精品国产一区二区三区忘忧草| 9191久久久久久久久久久| 欧美三级资源在线| 777亚洲妇女| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩卡一卡二| 欧美精品久久一区| 日韩欧美一区二区久久婷婷| 日韩一区二区免费在线观看| 欧美r级电影在线观看| 欧美精品一区二区三区蜜臀 | 日韩欧美亚洲国产精品字幕久久久| 欧美性做爰猛烈叫床潮| 欧美日韩免费视频| 欧美日韩高清影院| 日韩美一区二区三区| 精品国产sm最大网站免费看| 久久综合视频网| 亚洲影视在线观看| 午夜视频一区在线观看| 午夜电影网一区| 精品亚洲免费视频| 国产成人在线视频网站| 91色porny蝌蚪| 欧美三级在线看| 日韩欧美一区电影| 欧美国产综合色视频| 亚洲精品视频在线观看免费| 日韩国产在线观看一区| 国产一二三精品| 日本道色综合久久| 欧美一级搡bbbb搡bbbb| 亚洲国产精品精华液ab| 亚洲成人一区在线| 国产一区二区伦理片| 色哟哟国产精品| 欧美剧情电影在线观看完整版免费励志电影| 欧美精品视频www在线观看| 26uuu精品一区二区在线观看| 亚洲欧美一区二区三区国产精品 | 国产成人免费在线观看不卡| 99vv1com这只有精品| 日韩一区二区三区免费观看| 国产精品午夜久久| 天天综合网 天天综合色| 成人综合在线视频| 欧美一区二区三区在线观看 | 欧美电影免费观看完整版| 国产精品色哟哟| 蜜桃视频在线观看一区| 成人动漫一区二区| 日韩一区二区三区在线观看| 国产精品久久99| 久久精品国产在热久久| 91麻豆文化传媒在线观看| 欧美一卡2卡三卡4卡5免费| 亚洲视频图片小说| 国产精品99久久久久久久女警| 精品视频在线免费| 国产精品久久午夜夜伦鲁鲁| 另类成人小视频在线| 欧美亚洲国产bt| 国产精品成人一区二区艾草| 九色综合国产一区二区三区| 在线免费观看日韩欧美| 中文字幕免费不卡| 国产在线播精品第三| 51精品秘密在线观看| 亚洲一区在线视频观看| 成人毛片在线观看| 久久品道一品道久久精品| 日韩福利电影在线| 欧美伦理视频网站| 亚洲一区二区三区视频在线播放 | 欧美日韩国产中文| 亚洲欧洲成人精品av97| 成人动漫一区二区在线| 日韩av午夜在线观看| 日韩一区二区三区视频在线观看| 亚洲视频一二三| 日韩不卡一二三区| 久久久亚洲综合| 成人高清免费观看| 国产日产亚洲精品系列| 美女mm1313爽爽久久久蜜臀| 欧美大尺度电影在线| 青青草国产精品97视觉盛宴| 国产日本欧洲亚洲| 国产精品夜夜爽| 国产麻豆9l精品三级站| 日韩精品在线看片z| 日本亚洲视频在线| 欧美精品在线视频| 人禽交欧美网站| 日韩三级视频在线看| 美国毛片一区二区三区| 精品久久久久久最新网址| 狠狠色狠狠色综合| 国产日产欧美一区二区视频| 成人一区在线看| 亚洲另类色综合网站| 在线看一区二区| 天堂蜜桃91精品| 日韩欧美一区在线| 国产成人h网站| 亚洲欧洲精品一区二区三区不卡| 99国产精品视频免费观看| 亚洲欧美日韩国产手机在线| 色噜噜狠狠色综合欧洲selulu| 亚洲一区二区欧美| 欧美成人一区二区三区片免费| 精品无人码麻豆乱码1区2区| 欧美激情一区在线| 欧洲另类一二三四区| 七七婷婷婷婷精品国产| 2023国产精品| 99国产一区二区三精品乱码| 亚洲午夜免费视频| 欧美va天堂va视频va在线| 福利一区二区在线观看| 亚洲综合另类小说| 欧美成人精品3d动漫h| 成人黄色小视频在线观看| 亚洲免费在线观看| 欧美一级日韩一级| jlzzjlzz国产精品久久| 日韩黄色小视频| 精品成人免费观看|