: Public Class

Created: | 2015-07-31 오후 4:10:08
Modified: | 2015-07-31 오후 4:10:08
Project: |
Author: | shint
Version: | 1.0
Phase: | 1.0
Status: | Proposed
Complexity: | Easy
Difficulty: |
Priority: |
Multiplicity: |
Advanced: |
UUID: | {2DC6DE6B-3373-462e-9453-224F12B80B0C}
Appears In: | Package1

- Attributes
- Operations
- Associations To
- Associations From

Attribute
Public CPosture _c
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 로봇의 회전 중심.#lt;p/#gt;
Public int _curIndex
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 차량이 현재 참조하고 있는 _wp의 경유점에 대한 인덱스#lt;p/#gt;
Private CMobilityProfile* _mp
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Public int _noObstacles
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 로봇이 장애물로 판단한 점들의 개수 기록#lt;p/#gt;
Public CPosture _obstacles
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 로봇이 장애물로 판단한 점들을 기록#lt;p/#gt;
Public double _rin
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 회전 중심으로부터 로봇에 닿는 내, 외 접원 반지름#lt;p/#gt;
Public double _rout
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 회전 중심으로부터 로봇에 닿는 내, 외 접원 반지름#lt;p/#gt;
Private double _safetyMarginFront
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 차량의 전방 안전거리. 이 영역에 센서 측정이 감지되면 차량은 장애물로 판단하고 정지한다.#lt;p/#gt;
Private double _safetyMarginSide
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 차량의 측면 안전거리. 이 영역에 센서 측정이 감지되면 차량은 장애물로 판단한다.#lt;p/#gt;
Public sWayPoint _wp
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | 보간된 경로 혹은 보간되지 않은 경로#lt;p/#gt;
Public int _wpSize
Details:
Alias: |
Initial: |
Stereotype: |
Ordered: |
Range: |
Transient: | False
Derived: | False
IsID: | False
Notes: | _wp를 구성하는 경유점(waypoint)의 개수#lt;p/#gt;

Operation
Private cartesian_regulation( v: double&,
Default: |
Kind: | in
Stereotype: |
w: double&,
Default: |
Kind: | in
Stereotype: |
robot: CPosture&,
Default: |
Kind: | in
Stereotype: |
follow: CPosture&,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential
Notes: | void CPathFollowing::cartesian_regulation (double &v, double &w, const CPosture &robotPos, const CPosture &follow) { Cartesian regulation Prof. Giuseppe Oriolo의 Autonomous and Mobile Robotics 발표자료 참조 제어기의 gain 설정 double k1 = _mp-#gt;_maxLinearVel; double k2 = 0.7; double dx = follow.x - robotPos.x; double dy = follow.y - robotPos.y; v = k1*(dx*cos(robotPos.th) + dy*sin(robotPos.th)); / CPosture steerPos (_mp-#gt;_foreWheelXpos, 0); steerPos.Transform (robotPos); dx = follow.x - steerPos.x; dy = follow.y - steerPos.y; w = k2*DeltaRad(atan2(dy, dx), steerPos.th); }#lt;p/#gt;
Private cartesian_regulation2( v: double&,
Default: |
Kind: | in
Stereotype: |
w: double&,
Default: |
Kind: | in
Stereotype: |
robot: CPosture&,
Default: |
Kind: | in
Stereotype: |
follow: CPosture&,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential
Public CPathFollowing( mp: CMobilityProfile*,
Default: |
Kind: | in
Stereotype: |
):
Details: Sequential
Tags: | initializer=_mp(mp)
Public ~CPathFollowing():
Details: Sequential
Private DetectCurveObstacle( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
curve: double,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Private DetectFrontObstacle( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Private DetectObstacle( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
linearVel: double,
Default: |
Kind: | in
Stereotype: |
steerAngle: double,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Private feedback_controller( v: double&,
Default: |
Kind: | in
Stereotype: |
w: double&,
Default: |
Kind: | in
Stereotype: |
robot: CPosture&,
Default: |
Kind: | in
Stereotype: |
follow: CPosture&,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential
Public FollowPath( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
linearVel: double*,
Default: |
Kind: | in
Stereotype: |
steerAngle: double*,
Default: |
Kind: | in
Stereotype: |
obstacleDist: double*,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Notes: | void linear_controller (double &v, double &w, double vd, double wd, double xd, double yd, double thd, double x, double y, double th, double lambda, double a) { double e1 = cos(th)*(xd - x) + sin(th)*(yd - y); double e2 = -sin(th)*(xd - x) + cos(th)*(yd - y); double e3 = DeltaRad(thd, th); double k1 = 0.1*2*lambda*sqrt(wd*wd + vd*vd); double k2 = 0.1*fabs(vd); double k3 = k1; double u1 = k1*e1; double u2 = k2*e2 - k3*e3; v = vd*cos(e3) + u1; w = wd + u2; }#lt;p/#gt;
Private MaxVelocityByCurvature( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Private MaxVelocityBySteeringAngle( angle: double,
Default: |
Kind: | in
Stereotype: |
):double
Details: Sequential
Private PassNearWaypoint( robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
foreDist: double,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential
Private posture_regulation( v: double&,
Default: |
Kind: | in
Stereotype: |
w: double&,
Default: |
Kind: | in
Stereotype: |
robot: CPosture&,
Default: |
Kind: | in
Stereotype: |
follow: CPosture&,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential
Public Reset():void
Details: Sequential
Public SetPath( path: vector<vaWayPoint>&,
Default: |
Kind: | in
Stereotype: |
robotPos: CPosture&,
Default: |
Kind: | in
Stereotype: |
):void
Details: Sequential

Element | Source Role | Target Role
CPosture Class | Name: | Name: _c
Details:
CMobilityProfile Class | Name: | Name: _mp
Details:
CPosture Class | Name: | Name: _obstacles
Details:
«struct» sWayPoint Class | Name: | Name: _wp
Details:

Element | Source Role | Target Role
CNavigation Class | Name: | Name: _pathFollow
Details: