Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors when running different modules in the pipeline #2

Open
ymohamed08 opened this issue Feb 28, 2021 · 2 comments
Open

Errors when running different modules in the pipeline #2

ymohamed08 opened this issue Feb 28, 2021 · 2 comments

Comments

@ymohamed08
Copy link

i get this error when running the Openpose and Openpose visualizer modules. Are there any other modules that i should add to be able to read this from webcam

System.StackOverflowException
  HResult=0x800703E9
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

Also, is there a way that i would be able to use the data to publish the messages in ROS ?

thank you.

@KanaHayama
Copy link
Member

Hello @youssef266 .
I haven't seen this before. I am sorry that from this error message, I cannot tell where the problem is.
I think there are 2 possible places that may lead to this problem. The first is that the runtime environment is not compatible, the second one is that the way that components are connected is not the optimal form (The stable version in the master branch does not detect connection errors).

Maybe you can first create a configuration containing only MediaCapture and ColorVideoVisualizer to test whether the webcam is working well.
The full pipeline should contain MediaCapture , OpenPose and OpenPoseVisualizer. Where OpenPoseVisualizer accepts outputs from both MediaCapture and OpenPose.

For the question about pushing the output to other places, OpenSense only supports /psi built-in remoting protocol. You can receive data from another host only if you can run .net core in your ROS,

Actually, I cannot recall the detailed implementation of the version in the master branch. Our latest version (now in the dev branch) has changed a lot and it provides the ability to easily add new customized components, maybe you want to use that to implement a private protocol to send data.

By the way, here are the detail steps to run OpenPose in OpenSense using the version in the dev branch.

  • Switch to the dev branch.
  • Open the visual studio solution file OpenSense.sln
  • Double click project WpfApplication to open and edit its project file.
  • add <ProjectReference Include="..\Psi.Media.Windows.Wpf\Psi.Media.Windows.Wpf.csproj" />, <ProjectReference Include="..\OpenPose.Wpf\OpenPose.Wpf.csproj" /> and <ProjectReference Include="..\OpenPose.Visualizer.Wpf\OpenPose.Visualizer.Wpf.csproj" /> between line 53 to 62. By adding these dependencies of required components, you do not need to copy compiled DLLs manually.
  • Modify the target build architecture from Any CPU to x64 on the top of visual studio, because OpenPose only supports .net framework not .net standard like other components.
  • Build the WpfApplication project.
  • Copy OpenSense\OpenPosePInvoke\OpenPoseLib\models directory to the output directory of WpfApplication. These are the model files of OpenPose which can not be copied automatically.
  • Copy all the files under OpenSense\OpenPosePInvoke\OpenPoseLib\bin\x64\Common and OpenSense\OpenPosePInvoke\OpenPoseLib\bin\x64\Debug (if you are using the Debug configuration). These are native OpenPose libraries which also can not be copied automatically.
  • Run the WpfApplication and open the configuration file here: openpose sample config dev branch.pipe.zip
  • Change the default webcam of this configuration, and you may want to reduce to resolution to increase the frame rate.
  • Run this pipeline to see the result.

Please feel free to ask if you meet any further problems.

@KanaHayama
Copy link
Member

Some clarifications:

  • Since by now our OpenSense only supports /psi built-in protocol. If you want to run OpenSense in your ROS to receive data, the ROS should be able to install a .net core runtime.
  • If you choose to implement a private protocol to send data, you do not need OpenSense in your ROS. I will provide information if you want to write a customized component. Or you can just add your code after line 97 of OpenPose.cs.
  • The latest version output directory layout will should look like this
Debug/
   models/
   ......
   cublas64_100.dll
   ......
   openposed.dll
   ......
   OpenSense.Wpf.exe
   ......

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants