Problem compling ssrms

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I am trying to make a rms solution. Mainly so I can adapt it for the shuttle 2016. but for other projects.


So getting the h and rc and cpp from here:
http://svn.code.sf.net/p/shuttleultra/code/trunk/Orbitersdk/SSRMS/


I added to a new solution and tried to build.


I am getting 8 external external. But I can't seem to find where they are defined in the LEESystem h and SSRMS.h


Then when I try to edit the rc i get this error:
SIj31KY.jpg




Not sure if they are somewhere in the SSU code?

RotateVector
GetRotMatrixZ
GetRotMatrixY
GetRotMatrixX
GetYZX_PYRAnglesFromMatrix
linterp
CalculateCameraRotationAngle



Code:
Error	29	error LNK2001: unresolved external symbol "void __cdecl  RotateVector(union VECTOR3 const &,union VECTOR3 const &,union  VECTOR3 &)" (?RotateVector@@YAXABTVECTOR3@@0AAT1@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	31	error LNK2001: unresolved external symbol "void __cdecl  GetRotMatrixZ(double,union MATRIX3 &)"  (?GetRotMatrixZ@@YAXNAATMATRIX3@@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	26	error LNK2001: unresolved external symbol "void __cdecl  GetRotMatrixY(double,union MATRIX3 &)"  (?GetRotMatrixY@@YAXNAATMATRIX3@@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	24	error LNK2001: unresolved external symbol "void __cdecl  GetRotMatrixX(double,union MATRIX3 &)"  (?GetRotMatrixX@@YAXNAATMATRIX3@@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	28	error LNK2001: unresolved external symbol "union VECTOR3  __cdecl RotateVector(union VECTOR3 const &,double,union VECTOR3  const &)" (?RotateVector@@YA?ATVECTOR3@@ABT1@N0@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	25	error LNK2001: unresolved external symbol "union VECTOR3  __cdecl GetYZX_PYRAnglesFromMatrix(union MATRIX3 const &)"  (?GetYZX_PYRAnglesFromMatrix@@YA?ATVECTOR3@@ABTMAT  RIX3@@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	27	error LNK2001: unresolved external symbol "double __cdecl  linterp(double,double,double,double,double)" (?linterp@@YANNNNNN@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	30	error LNK2001: unresolved external symbol "double __cdecl  CalculateCameraRotationAngle(union VECTOR3 &,union VECTOR3 const  &)" (?CalculateCameraRotationAngle@@YANAATVECTOR3@@ABT  1@@Z)	 C:\Orbiter2016\Orbitersdk\samples\newarm\SSRMS.obj	newarm
Error	32	error LNK1120: 8 unresolved externals	C:\Orbiter2016\Modules\newarm.dll	newarm


---------- Post added at 05:02 PM ---------- Previous post was at 07:15 AM ----------

Well I thought I found the issue. I needed UltraMath.h. I had it in my
C:\Orbiter2016\Orbitersdk\include folder.

But i added it to the solution but the same issue
PeUTUXB.jpg


Code:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>newarm</ProjectName>
    <ProjectGuid>{1A57C099-C6AF-43A7-8899-83608A6FF011}</ProjectGuid>
    <RootNamespace>MSL_ROVER</RootNamespace>
    <Keyword>Win32Proj</Keyword>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <PlatformToolset>v120</PlatformToolset>
    <CharacterSet>MultiByte</CharacterSet>
    <WholeProgramOptimization>true</WholeProgramOptimization>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <PlatformToolset>v120</PlatformToolset>
    <CharacterSet>MultiByte</CharacterSet>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <OutDir>..\..\..\Modules\</OutDir>
    <IntDir>$(Configuration)\</IntDir>
    <LinkIncremental>true</LinkIncremental>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <OutDir>..\..\..\Modules\</OutDir>
    <LinkIncremental>false</LinkIncremental>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <AdditionalIncludeDirectories>C:\ORBITER2016\\Orbitersdk\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;E3VIP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <MinimalRebuild>true</MinimalRebuild>
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <PrecompiledHeader />
      <WarningLevel>Level3</WarningLevel>
      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
    </ClCompile>
    <Link>
      <AdditionalDependencies>orbiter.lib;orbitersdk.lib;orbitersoundsdk35.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <AdditionalLibraryDirectories>C:\ORBITER2016\\Orbitersdk\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
      <IgnoreSpecificDefaultLibraries>msvcrt.lib libcmt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <TargetMachine>MachineX86</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <Optimization>MaxSpeed</Optimization>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <AdditionalIncludeDirectories>C:\ORBITER2016\Orbitersdk\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;E3VIP_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <PrecompiledHeader />
      <WarningLevel>Level3</WarningLevel>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
    </ClCompile>
    <Link>
      <AdditionalDependencies>orbiter.lib;Orbitersdk.lib;%(AdditionalDependencies)</AdditionalDependencies>
      <OutputFile>./../../../Modules/newarm.dll</OutputFile>
      <AdditionalLibraryDirectories>C:\ORBITER2016\Orbitersdk\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <IgnoreSpecificDefaultLibraries>msvcrt;msvcprt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <SubSystem>Windows</SubSystem>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <TargetMachine>MachineX86</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClCompile Include="LEESystem.CPP" />
    <ClCompile Include="SSRMS.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\..\include\UltraMath.h" />
    <ClInclude Include="LEESystem.H" />
    <ClInclude Include="resource.h" />
    <ClInclude Include="SSRMS.h" />
  </ItemGroup>
  <ItemGroup>
    <Library Include="DlgCtrl.lib" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="newarm.rc" />
  </ItemGroup>
  <ItemGroup>
    <Image Include="Bitmaps\warning.bmp" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>

Code:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "newarm", "newarm.vcxproj", "{1A57C099-C6AF-43A7-8899-83608A6FF011}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Release|Win32 = Release|Win32
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{1A57C099-C6AF-43A7-8899-83608A6FF011}.Debug|Win32.ActiveCfg = Debug|Win32
		{1A57C099-C6AF-43A7-8899-83608A6FF011}.Debug|Win32.Build.0 = Debug|Win32
		{1A57C099-C6AF-43A7-8899-83608A6FF011}.Release|Win32.ActiveCfg = Release|Win32
		{1A57C099-C6AF-43A7-8899-83608A6FF011}.Release|Win32.Build.0 = Release|Win32
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal


---------- Post added 09-06-18 at 05:25 AM ---------- Previous post was 09-05-18 at 05:02 PM ----------

Not sure if my setup is correct?
wYEbSGw.jpg


I do have UltraMath,... in the include folder

---------- Post added at 07:39 AM ---------- Previous post was at 05:25 AM ----------

So it seems I need to add libUltra to the solution. But not sure how to?


http://svn.code.sf.net/p/shuttleultra/code/trunk/Orbitersdk/libUltra/
 
Last edited:

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So from what DAve S said told me I need to get all the files and add them into a folder and then try to build based off the SSrms solution?
The same for LibUltra. , right?
moSvhf2.jpg


Are these files in a zip somewhere. The libUltra has a lot of files.

---------- Post added at 03:29 PM ---------- Previous post was at 07:52 AM ----------

So I redid the solution.
MORE ERRORS
Error 11 error C1083: Cannot open include file: 'ValveManager.h': No such file or directory C:\Orbiter2016\Orbitersdk\samples\libUltra\src\ValveManager.cpp 1 1 libUltra
Error 16 error C1083: Cannot open include file: 'orbitersdk.h': No such file or directory c:\orbiter2016\orbitersdk\samples\ssrms\SSRMS.h 5 1 SSRMS
Error 10 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (src\UltraMath.cpp) C:\Orbiter2016\Orbitersdk\samples\libUltra\include\UltraMath.h 27 1 libUltra
Error 9 error C1083: Cannot open include file: 'orbiterapi.h': No such file or directory (src\StateVectorPropagator.cpp) c:\orbiter2016\orbitersdk\samples\libultra\include\StateVectorPropagator.h 5 1 libUltra
Error 7 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (src\PIDControl.cpp) C:\Orbiter2016\Orbitersdk\samples\libUltra\include\UltraMath.h 27 1 libUltra
Error 6 error C1083: Cannot open include file: 'Orbiterapi.h': No such file or directory (src\PEG4Targeting.cpp) C:\Orbiter2016\Orbitersdk\samples\libUltra\include\PEG4Targeting.h 4 1 libUltra
Error 5 error C1083: Cannot open include file: 'Orbiterapi.h': No such file or directory (src\LambertBurnTargeting.cpp) C:\Orbiter2016\Orbitersdk\samples\libUltra\include\LambertBurnTargeting.h 4 1 libUltra
Error 14 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (src\AerodynamicLookupTables.cpp) C:\Orbiter2016\Orbitersdk\samples\libUltra\include\UltraMath.h 27 1 libUltra
Error 3 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (KOST\kost_shape.cpp) c:\orbiter2016\orbitersdk\samples\libultra\kost\kost_settings.h 53 1 libUltra
Error 4 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (KOST\kost_propagate.cpp) c:\orbiter2016\orbitersdk\samples\libultra\kost\kost_settings.h 53 1 libUltra
Error 1 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (KOST\kost_linalg.cpp) c:\orbiter2016\orbitersdk\samples\libultra\kost\kost_settings.h 53 1 libUltra
Error 2 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (KOST\kost_elements.cpp) c:\orbiter2016\orbitersdk\samples\libultra\kost\kost_settings.h 53 1 libUltra
Error 8 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory C:\Orbiter2016\Orbitersdk\samples\libUltra\src\ShuttleBus.cpp 5 1 libUltra
Error 12 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory C:\Orbiter2016\Orbitersdk\samples\libUltra\src\DiscreteBundleManager.cpp 2 1 libUltra
Error 13 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory C:\Orbiter2016\Orbitersdk\samples\libUltra\src\DiscreteBundle.cpp 7 1 libUltra
Error 15 error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory C:\Orbiter2016\Orbitersdk\samples\libUltra\include\Subsystem.h 34 1 SSRMS


YXvCj8A.jpg


---------- Post added 09-08-18 at 06:43 AM ---------- Previous post was 09-07-18 at 03:29 PM ----------

So OrbiterAPI.h is in the include library. Does it need to be somewhere else. Need help on this.

---------- Post added 09-09-18 at 06:08 AM ---------- Previous post was 09-08-18 at 06:43 AM ----------

So I tried getting the 2017 Windows 10 SSU. When I ran the 2013 Sln for SSMRS. I get this error:

1>c:\ssu\orbitersdk\libultra\include\ultramath.h(27): fatal error C1083: Cannot open include file: 'OrbiterAPI.h': No such file or directory (compiling source file src\PIDControl.cpp)

Several cannot find OrbiterAPI.h
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
Well I at a lost. Not sure why the 2013 solution can not find the OrbiterAPI.h?

I tried making the SSU for 2017 and had a issue also not no luck on it.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Mic rosoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 10.0.15063.0 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
1>Done building project "libUltra_2017.vcxproj" -- FAILED.

I installed this but the same issue:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk

So again at a lost. I might try just getting the things from the Ultralib I need to get it to work.

My goal is to get the translation part to work for the rms on the 2016 shuttle
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I got it to compile.
9jLRrZ9.jpg


But when I add it into a scn I get a CTD.
The only mention in the log is:
Code:
===============================================================
000047.646: Added subsystem LEE1.
000047.646: Added subsystem LEE2.
 

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,904
Reaction score
196
Points
138
Location
Cape
What does the scenario say ?
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I was able to get it to work.

The one thing I needed to change was in the rc file is this :
#include <commctrl.h>

Once I removed that line and took the bitmap away it worked.
 

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,904
Reaction score
196
Points
138
Location
Cape

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I am trying to get this to work with a arm that doesn't have 1 set of angles and softstops

The ssmrs has angles of the joints -270 to +270

Mine doesn't:
Code:
const double JOINT_LIMITS[3][7] = { { -180.0, +180.0, -85.0, +130.0, -180.0, +180.0 }, { -155.0, +155.0, -215.0, +90, -95.0, +130 },{ -180.0, +180.0 } };

const double JOINT_SOFTSTOPS[3][7] = { { -177.0, +177.0, -82.0, +126.0, -177.0, +177.0 },
{ -151.4, +151.4, -210.0, +85.0, -90.0, +125.0 }, { -177.0, +177.0 } };

So this the ssrms
Code:
bool SSRMS::SetJointAngle(SSRMS::SSRMS_JOINT joint, double angle)
{
	if(angle>=JOINT_SOFTSTOPS[0] && angle<=JOINT_SOFTSTOPS[1]) {
		double pos=linterp(JOINT_LIMITS[0], 0.0, JOINT_LIMITS[1], 1.0, angle);
		if(activeLEE == 0 && (joint == SHOULDER_YAW || joint == WRIST_YAW)) pos = 1.0-pos; // yaw joints rotate in different directions depending on which LEE is active
		SetAnimation(anim_joint[activeLEE][joint], pos);
		joint_angle[joint]=angle;
		arm_moved=true;
		update_camera = true;
		return true;
	}
	else return false;
}
So now I did this.
Code:
bool SSRMS::SetJointAngle(SSRMS::SSRMS_JOINT joint, double angle)
{
	if (angle >= JOINT_SOFTSTOPS[0][joint] && angle <= JOINT_SOFTSTOPS[1][joint]) {
		double pos = linterp(JOINT_LIMITS[0][joint], 0.0, JOINT_LIMITS [1][joint], 1.0, angle);
		//double pos=linterp(RMS_JOINT_LIMITS[0][joint], 0.0, RMS_JOINT_LIMITS[1][joint], 1.0, angle); ssu
		if (activeLEE == 0 && (joint == SHOULDER_YAW || joint == WRIST_YAW)) pos = 1.0 - pos; // yaw joints rotate in different directions depending on which LEE is active
		SetAnimation(anim_joint[joint], pos);
		joint_angle[joint] = angle;
		arm_moved = true;
		update_camera = true;
		return true;
	}
	else return false;
}
basically added [joint] to to joint stops.
Code:
DEXTRE5:DEXTRE5
  STATUS Orbiting Earth
  RPOS -1416611.172 -5809070.737 3210632.517
  RVEL -6470.8410 3083.5772 2711.4367
  AROT -6.462 9.796 -46.564
  VROT 0.0385 -0.0254 0.0866
  AFCMODE 7
  PRPLEVEL 0:1.000000
  NAVFREQ 0 0
  ARM_STATUS -1.305480 -55.297499 -138.487089 157.244084 -94.215102 43.662889 -42.335801
  ACTIVE_LEE 1
  FOLDED 1 1.0000
  ACTIVE_CAMERA 0
  CAM_STATUS 0.000000 0.000000 0.000000 0.000000
@SUBSYSTEM LEE1
@ENDSUBSYSTEM		;LEE1
@SUBSYSTEM LEE2
@ENDSUBSYSTEM		;LEE2
END
END_SHIPS
So now I get no arm movement

---------- Post added at 07:57 PM ---------- Previous post was at 05:47 AM ----------

So I put an debug. Joint 4 moves:
Code:
bool SSRMS::SetJointAngle(SSRMS::SSRMS_JOINT joint, double angle)
{
	if (angle >= JOINT_SOFTSTOPS[0][joint] && angle <= JOINT_SOFTSTOPS[1][joint]) {
		double pos = linterp(JOINT_LIMITS[0][joint], 0.0, JOINT_LIMITS [1][joint], 1.0, angle);
		//double pos=linterp(RMS_JOINT_LIMITS[0][joint], 0.0, RMS_JOINT_LIMITS[1][joint], 1.0, angle); ssu
		if (activeLEE == 0 && (joint == SHOULDER_YAW || joint == WRIST_YAW)) pos = 1.0 - pos; // yaw joints rotate in different directions depending on which LEE is active
		sprintf_s(oapiDebugString(), 255, "Error: joint %d pos %f", joint, pos);
		SetAnimation(anim_joint[joint], pos);
		joint_angle[joint] = angle;
		arm_moved = true;
		update_camera = true;
		return true;
	}
	else return false;
}

Code:
typedef enum {SHOULDER_ROLL=0, SHOULDER_YAW, SHOULDER_PITCH, ELBOW_PITCH, WRIST_PITCH, WRIST_YAW, WRIST_ROLL} SSRMS_JOINT;

JxvHR8Z.jpg


So not sure how/why joint is not changing.

---------- Post added 10-03-18 at 07:21 AM ---------- Previous post was 10-02-18 at 07:57 PM ----------

So I when back to see what the joint values and limits are.
Code:
bool SSRMS::SetJointAngle(SSRMS::SSRMS_JOINT joint, double angle)
{
	//if (angle >= JOINT_SOFTSTOPS[0][joint] && angle <= JOINT_SOFTSTOPS[1][joint])

	sprintf_s(oapiDebugString(), 255, "Error: joint %d pos %f ANGLE %f", joint, JOINT_SOFTSTOPS[0][joint], JOINT_SOFTSTOPS[1][joint]);


	{
		double pos = linterp(JOINT_LIMITS[0][joint], 0.0, JOINT_LIMITS [1][joint], 1.0, angle);
		//double pos=linterp(RMS_JOINT_LIMITS[0][joint], 0.0, RMS_JOINT_LIMITS[1][joint], 1.0, angle); ssu
		//joint = SHOULDER_PITCH;
	//	if (activeLEE == 0 && (joint == SHOULDER_YAW || joint == WRIST_YAW)) pos = 1.0 - pos; // yaw joints rotate in different directions depending on which LEE is active
		sprintf_s(oapiDebugString(), 255, "Error: joint %d STOP1 %f STOP2 %f pos %f angle %f,limit1 %f limit2 %f", joint, JOINT_SOFTSTOPS[0][joint], JOINT_SOFTSTOPS[1][joint], pos, angle, JOINT_LIMITS[0][joint], JOINT_LIMITS[1][joint]);
		SetAnimation(anim_joint[joint], pos);
		joint_angle[joint] = angle;
		arm_moved = true;
		update_camera = true;
		return true;
	}
	//else return false;
}

So there are 7 (0 to 6 ) joints.

Code:
const double JOINT_LIMITS[3][7] = { { -180.0, +180.0, -85.0, +130.0, -180.0, +180.0 }, { -155.0, +155.0, -215.0, +90, -95.0, +130 },{ -180.0, +180.0 } };
//const double JOINT_LIMITS[2][6] = { { -180.0, +180.0, -85.0, +130.0, -180.0, +180.0 }, { -155.0, +155.0, -215.0, +90, -95.0, +130 } };

const double JOINT_SOFTSTOPS[3][7] = { { -177.0, +177.0, -82.0, +126.0, -177.0, +177.0 },{ -151.0, +151.0, -210.0, +85.0, -90.0, +125.0 }, { -177.0, +177.0 } };

	typedef enum {SHOULDER_ROLL=0, SHOULDER_YAW=1, SHOULDER_PITCH=2, ELBOW_PITCH=3, WRIST_PITCH=4, WRIST_YAW=5, WRIST_ROLL=6} SSRMS_JOINT;


But the data I got was different:
limits joint 0 -177,151 soft 180,-155
limits joint 1 -177,151 soft 180, 155
limits joint 2 -82,-210 soft -85,215
limits joint 3 126,85 soft 130,90
limits joint 4 -177,-90 soft -180,-95
limits joint 5 177,125 soft 180,130
limits joint 0 0,0 soft 0,0


//FIXED
I had the array all wrong :(
 
Last edited:

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I am running into an issue with an arm tip. I have a sc3 version and a dll. The attachment values are off on the dll. I have no clue. Arm positions are the same.
5oWets3.jpg


Attachment is made here:
Code:
hEEAttach = V()->CreateAttachment(false, SR_JOINT, _V(-0.707107, -0.707107, 0), _V(0.707107, -0.707107, 0), ATTACH_ID);

Here is the arm tip info:
Code:
arm_tip[0] = LEE_POS;//3.518,2.737,-0.21
	arm_tip[1] = _V(4.018, 3.237, -0.21);
	arm_tip[2] = _V(4.018, 2.237, -0.21);

and the sc3:
Code:
TIP_ARM1_1=(3.518,2.737,-0.21)
TIP_ARM1_2=(4.018,3.237,-0.21)
TIP_ARM1_3=(4.018,2.237,-0.21)

So on the arm code if I comment this out the attachment is correct:
Code:
static MGROUP_ROTATE lee_anim(LOCALVERTEXLIST, MAKEGROUPARRAY(arm_tip), 5,LEE_POS, _V(0, 0, -1), 0.0);
	anim_lee = CreateAnimation(0.5);
	AddAnimationComponent(anim_lee, 0, 1, &lee_anim, arm1parent);

Code:
pLEE[1]->SetAttachmentParams(arm_tip[0], arm_tip[1]-arm_tip[0], arm_tip[2]-arm_tip[0]);


---------- Post added 10-09-18 at 05:27 AM ---------- Previous post was 10-08-18 at 09:26 PM ----------

This is what I get. The attachment points moves but it is in the wrong place and dir and rot are not normalize.
iLD5YDN.jpg


---------- Post added at 05:31 AM ---------- Previous post was at 05:27 AM ----------

If I comment these lines out the attachment is good but doesn't move
Code:
void LEESystem::SetAttachmentParams(const VECTOR3& pos, const VECTOR3& dir, const VECTOR3& rot) const
{
	//V()->SetAttachmentParams(hBaseAttach, pos, dir, rot);
	//V()->SetAttachmentParams(hEEAttach, pos, dir, rot);
}
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So I started commented thing out to see where the issue might be:

all vectors were set to 0.0 But I noticed the animation set to start at .4,.41,.715 seem to mess up the attachment

Does that make sense?


Code:
static UINT ShoulderRollGrp[1] = { 31 };
static MGROUP_ROTATE sr_anim(mesh_ssrms, ShoulderRollGrp, 1,SR_JOINT, _V(-0.707107, -0.707107, 0), static_cast<float>((360)*RAD));
anim_joint[SHOULDER_ROLL] = CreateAnimation(0.5);
arm1parent = AddAnimationComponent(anim_joint[SHOULDER_ROLL], 0, 1, &sr_anim);

//static UINT ShoulderYawGrp[1] = { 32 };
//static MGROUP_ROTATE sy_anim(mesh_ssrms, ShoulderYawGrp, 1, SY_JOINT, _V(-0.707107, 0.707107, 0), static_cast<float>((215)*RAD));
//anim_joint[SHOULDER_YAW] = CreateAnimation(0.4);
//arm1parent = AddAnimationComponent(anim_joint[SHOULDER_YAW], 0, 1, &sy_anim, arm1parent);

static UINT ShoulderPitchGrp[1] = { 33 };
static MGROUP_ROTATE sp_anim(mesh_ssrms, ShoulderPitchGrp, 1,SP_JOINT, _V(0, 0, 1), static_cast<float>((360)*RAD));
anim_joint[SHOULDER_PITCH] = CreateAnimation(0.5);
arm1parent = AddAnimationComponent(anim_joint[SHOULDER_PITCH], 0, 1, &sp_anim, arm1parent);

static UINT ElbowPitchGrp[1] = { 34 };
static MGROUP_ROTATE ep_anim(mesh_ssrms, ElbowPitchGrp, 1,EP_JOINT, _V(0, 0, 1), static_cast<float>((310)*RAD));
anim_joint[ELBOW_PITCH] = CreateAnimation(0.5);
arm1parent = AddAnimationComponent(anim_joint[ELBOW_PITCH], 0, 1, &ep_anim, arm1parent);

//static UINT WristPitchGrp[1] = { 35 };
//static MGROUP_ROTATE wp_anim(mesh_ssrms, WristPitchGrp, 1,WP_JOINT, _V(0, 0, 1), static_cast<float>((305)*RAD));
//anim_joint[WRIST_PITCH] = CreateAnimation(0.715);
//arm1parent = AddAnimationComponent(anim_joint[WRIST_PITCH], 0, 1, &wp_anim, arm1parent);

//static UINT WristYawGrp[1] = { 36 };
//static MGROUP_ROTATE wy_anim(mesh_ssrms, WristYawGrp, 1,WY_JOINT, _V(-0.707107, 0.707107, 0), static_cast<float>((225)*RAD));
//anim_joint[WRIST_YAW] = CreateAnimation(0.41);
//arm1parent = AddAnimationComponent(anim_joint[WRIST_YAW], 0, 1, &wy_anim, arm1parent);

static UINT WristRollGrp[6] = { 37, 38, 39, 40, 41, 42 };
static MGROUP_ROTATE wr_anim(mesh_ssrms, WristRollGrp, 6,WR_JOINT, _V(0.707107, 0.707107, 0), static_cast<float>((360)*RAD));
anim_joint[WRIST_ROLL] = CreateAnimation(0.5);
arm1parent = AddAnimationComponent(anim_joint[WRIST_ROLL], 0, 1, &wr_anim, arm1parent);

static MGROUP_ROTATE lee_anim(LOCALVERTEXLIST, MAKEGROUPARRAY(arm_tip), 5,LEE_POS, _V(0, 0, -1), 0.0);
anim_lee = CreateAnimation(0.5);
AddAnimationComponent(anim_lee, 0, 1, &lee_anim, arm1parent);
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
So a new computer

But trying to get this to compile:
Severity Code Description Project Path File Line Suppression State
Error LNK2038 mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in LEESystem.obj SSRMS D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\libUltra.lib(UltraMath.obj) 1

Severity Code Description Project Path File Line Suppression State
Error LNK2019 unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z) SSRMS D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\libUltra.lib(UltraMath.obj) 1
Error LNK2019 unresolved external symbol _fprintf referenced in function "void __cdecl LogError(char const *,char const *)" (?LogError@@YAXPBD0@Z) SSRMS D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\OrbiterSoundSDK40.lib(OrbiterSoundSDK40.obj) 1
Error LNK1120 2 unresolved externals SSRMS D:\Orbiter2016\Modules D:\Orbiter2016\Modules\newrmstest1.dll 1


hope someone can help
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,636
Reaction score
2,613
Points
203
Location
Dallas, TX
Thanks. I think I have the setting wrong. Did not see a build all. I tried clean solution.

Severity Code Description Project Path File Line Suppression State
Warning C4091 'typedef ': ignored on left of 'SSRMS::CAMERA_VIEW' when no variable is declared newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\SSRMS.h 73
Warning MSB8028 The intermediate directory (Release\) contains files shared from another project (SSRMS.vcxproj). This can lead to incorrect clean and rebuild behavior. newrmstest1 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 491
Warning C4091 'typedef ': ignored on left of 'SSRMS::FRAME' when no variable is declared newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\SSRMS.h 72
Warning C4091 'typedef ': ignored on left of 'SSRMS::FRAME' when no variable is declared newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\SSRMS.h 72
Warning C4091 'typedef ': ignored on left of 'SSRMS::CAMERA_VIEW' when no variable is declared newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\SSRMS.h 73
Warning MSB8012 TargetPath(D:\Orbiter2016\Orbitersdk\samples\ssrms\..\..\Modules\newrmstest1.dll) does not match the Linker's OutputFile property value (D:\Orbiter2016\Modules\newrmstest1.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). newrmstest1 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1316
Error LNK2038 mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in LEESystem.obj newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\libUltra.lib(UltraMath.obj) 1
Warning LNK4217 symbol '_sprintf_s' defined in 'LEESystem.obj' is imported by 'libUltra.lib(UltraMath.obj)' in function '"union MATRIX3 __cdecl ConvertPYOMToLVLH(double,double,double)" (?ConvertPYOMToLVLH@@YA?ATMATRIX3@@NNN@Z)' newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\LINK 1
Error LNK2019 unresolved external symbol "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z) newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\libUltra.lib(UltraMath.obj) 1
Error LNK2019 unresolved external symbol _fprintf referenced in function "void __cdecl LogError(char const *,char const *)" (?LogError@@YAXPBD0@Z) newrmstest1 D:\Orbiter2016\Orbitersdk\samples\ssrms D:\Orbiter2016\Orbitersdk\samples\ssrms\OrbiterSoundSDK40.lib(OrbiterSoundSDK40.obj) 1
Error LNK1120 2 unresolved externals newrmstest1 D:\Orbiter2016\Modules D:\Orbiter2016\Modules\newrmstest1.dll 1



So what I want to do is built a rms mesh using the SSRMD code.
 
Last edited:
Top