SDK Question EVA movement at the poles

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,868
Reaction score
2,844
Points
203
Location
Dallas, TX
Since the future Artemis landing sites are near the pole. New Eva code needs developed. In the videos I placed 3 different eva guys here:
STATUS Landed Moon
POS -0.0457960 -85.9766676

The UACS guy moved at an angle to the hud.
The LWLL guy did good
The Xemu guy did good also.

They all move great at Brighton Beach,

One problem I am having is the exit point, The Alpaca exits great at Brighton but at the pole the exit point is way off.

UACS guy:https://u.pcloud.link/publink/show?code=XZtME6VZONkw9CI9jfzualEicOvjSLgMzC5X
LWLL:https://u.pcloud.link/publink/show?code=XZQME6VZxdT4ay4UmUmOfrEVzx8bYuostTNV
XEMU:https://u.pcloud.link/publink/show?code=XZkTE6VZHHhF2eL5VTygR5X6zS4c2BwfalWX

This is the walking code for the XEMU:
//Adapted from GeneralVehicle by fred18 void LEVA::Move(double simdt) { double rt = oapiGetSize(GetSurfaceRef()); double moon_circ = rt * 2 * PI; double each_deg = moon_circ / 360; double grav_acc = GGRAV * oapiGetMass(GetSurfaceRef()) / (rt * rt); memset(&vs2, 0, sizeof(vs2)); vs2.version = 2; GetStatusEx(&vs2); double theta = 0; if (turn == 0) {} else { theta = (turn_speed * RAD) * simdt * turn; vs2.surf_hdg += theta; if (vs2.surf_hdg > PI2) { vs2.surf_hdg -= PI2; } if (vs2.surf_hdg < 0) { vs2.surf_hdg += PI2; } } if ((walk == 0) && (side == 0)) {} else { double correction = 90 - abs(vs2.surf_lat * DEG); correction /= 90; correction += tan(abs(vs2.surf_lat)); double d_lat1 = (walk_speed * simdt * cos(vs2.surf_hdg)) / each_deg; double d_lng1 = (walk_speed * simdt * sin(vs2.surf_hdg)) / each_deg; double d_lat2 = (0.5 * walk_speed * simdt * -sin(vs2.surf_hdg)) / each_deg; double d_lng2 = (0.5 * walk_speed * simdt * cos(vs2.surf_hdg)) / each_deg; vs2.surf_lat += (d_lat1 * RAD) * walk; vs2.surf_lng += (d_lng1 * correction * RAD) * walk; vs2.surf_lat += (d_lat2 * RAD) * side; vs2.surf_lng += (d_lng2 * correction * RAD) * side; } if ((turn == 0) && (walk == 0) && (side == 0)) {} else { MATRIX3 rot1 = RotationMatrix(_V(0 * RAD, (90 * RAD - vs2.surf_lng), 0 * RAD), TRUE); MATRIX3 rot2 = RotationMatrix(_V(-vs2.surf_lat + 0 * RAD, 0, 0 * RAD), TRUE); MATRIX3 rot3 = RotationMatrix(_V(0, 0, 180 * RAD + vs2.surf_hdg), TRUE); MATRIX3 rot4 = RotationMatrix(_V(90 * RAD, 0, 0), TRUE); MATRIX3 RotMatrix_Def = mul(rot1, mul(rot2, mul(rot3, rot4))); vs2.arot.x = atan2(RotMatrix_Def.m23, RotMatrix_Def.m33); vs2.arot.y = -asin(RotMatrix_Def.m13); vs2.arot.z = atan2(RotMatrix_Def.m12, RotMatrix_Def.m11); vs2.vrot.x = 0.9; DefSetStateEx(&vs2); } }
 

barrygolden

Well-known member
Joined
Nov 3, 2009
Messages
1,005
Reaction score
362
Points
98
Location
North of Houston
Yes but over time the newer guys walk around fine .. the connecting ridge at the South pole looks like the most likely spot for the Landing site pretty flat and has most of the features NASA looking to explore. With the curret orbiter some rock features need to be added and the LZ near Shackelton rim
 
Top