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

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

?? robotxr4000.cpp

?? 多機器人合作中的動態角色分配仿真算法是多機器人合作領域的一個比較著名的仿真軟件
?? CPP
字號:
//////////////////////////////////////////////////////////////////////
// MuRoS - Multi Robot Simulator
//
// Luiz Chaimowicz
// GRASP Lab. University of Pennsylvania
// VERLab - DCC - UFMG - Brasil
//
// RobotHolonomic.cpp: implementation of the CRobotHolonomic class.
//
// RobotXR4000.cpp: implementation of the CRobotXR4000 class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "simulator.h"
#include "RobotXR4000.h"
#include "const.h"
#include <math.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
#include "myglobals.h"


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_SERIAL(CRobotXR4000, CRobotHolonomic, 1 )

CRobotXR4000::CRobotXR4000(double x, double y, double theta, short status, short id, CString name) : CRobotHolonomic(x, y, theta, status, id, name)
{
	m_radius = 25;
}

CRobotXR4000::CRobotXR4000()
{
}

CRobotXR4000::~CRobotXR4000()
{
}

void CRobotXR4000::Update(CArray<CRobot*, CRobot*> *robots, double simTime, double dt, CBox* box, CMapPath *globalMap)
{
	CRobot::Update(robots, simTime, dt, box, globalMap);

	Potential(robots, dt, globalMap, box, simTime);
		
	m_x += m_vx * dt;
	m_y += m_vy * dt;
}

void CRobotXR4000::Draw(CDC *pDC)
{
	CPoint line[2];

	m_rect = CRect( round(m_x - m_radius), round(m_y - m_radius), round(m_x + m_radius), round(m_y + m_radius) );

	pDC->SelectObject(&RED_PEN);

	if (m_status == TRANSPORT)
		pDC->SelectStockObject(BLACK_BRUSH);
	else if (m_status == DOCK)
		pDC->SelectStockObject(GRAY_BRUSH);
	else if (m_status == STOPPED)
		pDC->SelectStockObject(WHITE_BRUSH);
	else if (m_status == WAIT)
		pDC->SelectObject(&BLUE);

	pDC->Ellipse(m_rect);
}

void CRobotXR4000::Serialize(CArchive& ar)
{
	CRobotHolonomic::Serialize(ar);
}

void CRobotXR4000::Potential(CArray<CRobot*, CRobot*> *robots, double dt, CMapPath *map, CBox* box, double simTime)
{
	short i;

	double fx = 0;
	double fy = 0;

	double dist;
	double angle;

	// Repulsive forces from other robots
	for (i=0; i<robots->GetSize(); i++) 
		if (robots->GetAt(i)->m_id != m_id)
			ForceFromRobots(robots->GetAt(i), fx, fy);

	// Repulsive forces from obstacles
	for (i=0; i<m_localMap->m_obstacles.GetSize(); i++)
		ForceFromObstacles(m_localMap->m_obstacles[i], fx, fy);

	// Atractive force from box (Docking or waiting)
	// Repulsive if dist < 0 in all cases
	if (box->m_exist) {
		ForceFromBoxes(box, fx, fy);
	}
	else {
		m_status = TRANSPORT;
	}

	// Atractive force from goal
	if ( (m_localMap->m_goalReal.x != -1) && (m_status == TRANSPORT) ) {
		dist = sqrt( (map->m_goalReal.x - m_x) * (map->m_goalReal.x - m_x) + (map->m_goalReal.y - m_y) * (map->m_goalReal.y - m_y) );
		angle = atan2( (map->m_goalReal.y - m_y), (map->m_goalReal.x - m_x) );
		
		fx += Ka_rg * dist * cos(angle);
		fy += Ka_rg * dist * sin(angle);
	}

	// Damping
	fx += - Cr * m_vx;
	fy += - Cr * m_vy;

	// Computing velocities
	m_vx += fx * dt;
	m_vy += fy * dt;

	//Saturation (keeping scale between vx and vy)
	double factor;
	if ( (m_vx > 200) || (m_vy > 200) )
		if (m_vx > m_vy) {
		factor = m_vx / 200;
			m_vx = m_vx / factor;
			m_vy = m_vy / factor;
		}
		else{
			factor = m_vy / 200;
			m_vy = m_vy / factor;
			m_vx = m_vx / factor;
		}
	if ( (m_vx < -200) || (m_vy < -200) )
		if (m_vx < m_vy) {
			factor = m_vx / -200;
			m_vx = m_vx / factor;
			m_vy = m_vy / factor;
		}
		else{
			factor = m_vy / -200;
			m_vy = m_vy / factor;
			m_vx = m_vx / factor;
		}

	// Change to WAIT status if close to the box and the distance is small
	//dist = sqrt( (box->m_x - m_x) * (box->m_x - m_x) + (box->m_y - m_y) * (box->m_y - m_y) ) - box->m_lx - m_radius; //*****	
	if ( (m_status == DOCK) && (fabs(m_vx) < 1) && ( fabs(m_vy) < 1) && (dist < 5) ) {

		m_status = WAIT;
		m_timer = simTime;

		CControlMsg *controlMsg;
		controlMsg = new CControlMsg;
		controlMsg->m_code = BOXLOCKED;
		controlMsg->m_from = m_id;
		controlMsg->m_to = 0;
		controlMsg->m_x = m_x;
		controlMsg->m_y = m_y;
		
		SendControlMsg(controlMsg);
	}
	else if ( (m_status == WAIT) && ( (simTime - m_timer) > 10) ) {
		CControlMsg *controlMsg;
		controlMsg = new CControlMsg;
		controlMsg->m_code = TIMEOUT;
		controlMsg->m_from = m_id;
		controlMsg->m_to = 0;

		SendControlMsg(controlMsg);
	}

	if ( (box->m_exist) && (m_status == TRANSPORT) && (dist > m_sensorRange) ) {

		m_status = STOPPED;

		CControlMsg *controlMsg;
		controlMsg = new CControlMsg;
		controlMsg->m_code = LOSTBOX;
		controlMsg->m_from = m_id;
		controlMsg->m_to = 0;
		
		SendControlMsg(controlMsg);
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合色产在线精品| 亚洲人成在线观看一区二区| 欧美性猛交xxxxxx富婆| 福利视频网站一区二区三区| 免费精品视频最新在线| 日韩国产精品大片| 免费人成黄页网站在线一区二区 | 日本不卡中文字幕| 亚洲图片欧美色图| 午夜精品久久久久久不卡8050| 亚洲网友自拍偷拍| 青青国产91久久久久久| 精品一区二区三区免费视频| 国内精品第一页| av在线不卡电影| 欧美在线一二三| 日韩片之四级片| 国产日韩欧美一区二区三区综合| 国产精品亲子乱子伦xxxx裸| 中文字幕在线不卡一区 | 天堂资源在线中文精品| 日韩国产一二三区| 国产一区二区免费在线| 成人午夜电影久久影院| 欧洲中文字幕精品| 欧美一区二区三区爱爱| 欧美国产日韩亚洲一区| 一区二区三区在线视频播放| 日韩中文字幕亚洲一区二区va在线| 久久精品国产77777蜜臀| 成人网在线播放| 欧美日本免费一区二区三区| 国产亚洲精品7777| 亚洲午夜成aⅴ人片| 国产精品一品视频| 欧美视频中文字幕| 久久伊人中文字幕| 亚洲成a人v欧美综合天堂下载| 国产乱一区二区| 欧美人狂配大交3d怪物一区| 日本一区二区视频在线观看| 婷婷夜色潮精品综合在线| 成人91在线观看| 精品久久久久久久人人人人传媒| 亚洲素人一区二区| 国产一区二区三区在线观看免费 | 懂色av中文字幕一区二区三区 | 免费观看在线综合| 91网站最新网址| 国产校园另类小说区| 午夜精品视频一区| 色久优优欧美色久优优| 国产日韩av一区| 久久99久久精品欧美| 欧美日韩一区二区三区在线看| 欧美极品少妇xxxxⅹ高跟鞋| 久久机这里只有精品| 欧美精品一卡二卡| 亚洲制服丝袜av| 99精品热视频| 国产亚洲1区2区3区| 国产在线看一区| 日韩精品一区国产麻豆| 污片在线观看一区二区| 欧美色视频在线观看| 综合久久久久久久| 成人aa视频在线观看| 欧美高清在线视频| 国产不卡在线播放| 久久众筹精品私拍模特| 久久se精品一区二区| 日韩一级成人av| 日本人妖一区二区| 91精品国产综合久久国产大片| 午夜精品久久久久久久久久久| 欧美亚洲高清一区二区三区不卡| 亚洲男人天堂av网| 欧美综合欧美视频| 亚洲影视在线观看| 91精品国产欧美日韩| 青青青伊人色综合久久| 日韩午夜激情av| 国产一区中文字幕| 欧美国产精品中文字幕| 99精品热视频| 亚洲尤物在线视频观看| 欧美日韩高清影院| 美女精品自拍一二三四| 精品免费一区二区三区| 国产高清不卡一区| 亚洲色图制服丝袜| 欧美日韩国产高清一区二区| 日本午夜精品视频在线观看 | 精品成人一区二区| 国产精品亚洲午夜一区二区三区 | 中文字幕在线不卡一区| 日本高清不卡在线观看| 偷拍亚洲欧洲综合| 2022国产精品视频| 99久久精品久久久久久清纯| 亚洲国产另类av| 精品国产青草久久久久福利| 国产v日产∨综合v精品视频| 一区二区三区在线视频观看| 欧美mv日韩mv国产网站app| 成人激情免费视频| 午夜成人免费电影| 亚洲国产精品ⅴa在线观看| 欧美日韩亚洲不卡| 国产乱色国产精品免费视频| 一区二区视频在线| 欧美大片日本大片免费观看| 99综合影院在线| 另类小说图片综合网| 欧美国产97人人爽人人喊| 91麻豆精品国产自产在线观看一区| 国产麻豆视频一区二区| 首页欧美精品中文字幕| 国产精品视频一区二区三区不卡| 欧美三级韩国三级日本一级| 国产99久久久国产精品潘金| 婷婷激情综合网| 亚洲日本韩国一区| 久久天天做天天爱综合色| 欧美色男人天堂| 99天天综合性| 国产精品自拍网站| 蜜乳av一区二区| 亚洲成年人影院| 一区二区久久久久| 亚洲欧洲日韩一区二区三区| 精品精品欲导航| 欧美精品乱码久久久久久| 99国产精品久久久久| 国产精品18久久久久久vr| 水野朝阳av一区二区三区| 亚洲人成亚洲人成在线观看图片| 久久综合丝袜日本网| 日韩一区二区三区在线观看| 欧美视频在线一区| 欧美在线观看视频一区二区三区| 成人免费的视频| 成人午夜电影小说| 成人永久aaa| 成人性生交大合| 成人免费毛片嘿嘿连载视频| 国产一区二区三区精品视频| 国内精品嫩模私拍在线| 久久国产精品第一页| 美女视频一区二区三区| 蜜臀av一区二区在线免费观看| 亚洲成人福利片| 午夜精品久久久久久久久久久| 亚洲伊人伊色伊影伊综合网| 一区二区三区四区av| 亚洲最大成人综合| 亚洲成人动漫一区| 日本一道高清亚洲日美韩| 麻豆久久一区二区| 国产乱码字幕精品高清av | 久久精品国产精品亚洲综合| 美国精品在线观看| 国产精品一色哟哟哟| 国产一区二区三区香蕉| 大桥未久av一区二区三区中文| 不卡av在线网| 色国产综合视频| 欧美日韩精品专区| 欧美成人三级在线| 久久综合色天天久久综合图片| 国产婷婷色一区二区三区四区| 国产精品色婷婷| 亚洲一区二区三区在线看| 日韩精品欧美成人高清一区二区| 日韩二区三区四区| 国产九色sp调教91| 91麻豆国产香蕉久久精品| 欧美日韩一级大片网址| 欧美大白屁股肥臀xxxxxx| 欧美激情资源网| 亚洲一级在线观看| 国产综合成人久久大片91| 色综合av在线| 精品少妇一区二区三区在线视频 | 欧美色手机在线观看| 精品久久久久久久一区二区蜜臀| 国产精品欧美一级免费| 性做久久久久久免费观看欧美| 久久精品国产网站| 日本精品裸体写真集在线观看 | 成人99免费视频| 在线播放视频一区| 国产精品女主播在线观看| 日日夜夜精品视频免费| 成人看片黄a免费看在线| 7777精品伊人久久久大香线蕉经典版下载 | 色欧美日韩亚洲| 久久久噜噜噜久久中文字幕色伊伊| 亚洲日韩欧美一区二区在线| 奇米影视一区二区三区|