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

uwv_kalman_filters::RotatedIMU #8

Open
bkocev opened this issue Jul 19, 2021 · 13 comments
Open

uwv_kalman_filters::RotatedIMU #8

bkocev opened this issue Jul 19, 2021 · 13 comments

Comments

@bkocev
Copy link

bkocev commented Jul 19, 2021

Hi everyone,

where is uwv_kalman_filters::RotatedIMU defined? I cannot locate an orogen repository with similar name or so.

Thanks,
Bojan.

@saarnold
Copy link
Member

Hi Bojan,
this was a task to simulate a rotated IMU. You can safely remove this part from your test scripts.
But if you like I can also find and push this task to a branch.

@bkocev
Copy link
Author

bkocev commented Jul 20, 2021

Hi Sascha,

thank you very much for your response.
Why did you need to rotate the IMU?
In case we decide to push this task to the repo, would it be a big problem to actually push it to the master branch, because I would like to use this branch?

Thanks,
Bojan.

@bkocev
Copy link
Author

bkocev commented Jul 20, 2021

To speed things up, I would recommend that you push that task to the master branch. That should be fine. This would be the simplest solution for me. Then, I can decide whether to remove or not. :)

@bkocev
Copy link
Author

bkocev commented Jul 20, 2021

One more argument why I think it would be better to push that task are the following two lines:

rotate_imu.connect_to orientation_estimator_min.imu_sensor_samples
rotate_imu.connect_to pose_estimation.imu_sensor_samples

i.e., I think you performed the evaluation on the rotated IMU samples. Therefore, it would be great if you could please push the task to the master repo. Thanks :)

@bkocev
Copy link
Author

bkocev commented Jul 20, 2021

While waiting for you to include the IMU rotation stuff, I temporarily disabled it and now I am getting this problem:

libGL error: MESA-LOADER: failed to retrieve device information
libGL error: Version 4 or later of flush extension not found
libGL error: failed to load driver: i915
libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: i965
orocos.rb[WARN]: TaskContextProxy /pose_estimator is already initialized with different options.
orocos.rb[WARN]: TaskContextProxy /pose_estimator_min is already initialized with different options.
orocos.rb[WARN]: TaskContextProxy /pose_estimator_max is already initialized with different options.
orocos.rb[WARN]: killing running task contexts and deployments because of unhandled exception
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:128:in block in setup_task': frame camera, selected on /pose_estimator for camera, does not exist orocos.rb[WARN]: /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each'
orocos.rb[WARN]: /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each_needed_transformation' orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:120:in setup_task'
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:61:in block in setup' orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in each'
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in setup' orocos.rb[WARN]: /opt/rock_workspace/navigation/adcp_pose_estimation_scripts/common_startup.rb:192:in block in replay_pose_estimator'
orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:848:in block in run' orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:1345:in guard'
orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:847:in run' orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:136:in run'
orocos.rb[WARN]: /opt/rock_workspace/navigation/adcp_pose_estimation_scripts/common_startup.rb:59:in replay_pose_estimator' orocos.rb[WARN]: navigation/adcp_pose_estimation_scripts/random_init_target_pose.rb:33:in

'
orocos.rb[WARN]: sending SIGINT to pose_estimator
orocos.rb[WARN]: sending SIGINT to pose_estimator_min
orocos.rb[WARN]: sending SIGINT to pose_estimator_max
orocos.rb[WARN]: sending SIGINT to dvl_evaluation
orocos.rb[WARN]: sending SIGINT to force2effort
orocos.rb[WARN]: sending SIGINT to speed2force
orocos.rb[WARN]: sending SIGINT to orientation_estimator
orocos.rb[WARN]: sending SIGINT to orientation_estimator_min
#<Thread:0x0000557900a3e2a0@/opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:563 aborting> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:604:in block in spawn_thread' 2: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in ensure in block in spawn_thread'
1: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in synchronize' /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:601:in block (2 levels) in spawn_thread': undefined method -' for nil:NilClass (NoMethodError) Traceback (most recent call last): 13: from navigation/adcp_pose_estimation_scripts/random_init_target_pose.rb:33:in '
12: from /opt/rock_workspace/navigation/adcp_pose_estimation_scripts/common_startup.rb:59:in replay_pose_estimator' 11: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:136:in run'
10: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:847:in run' 9: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:1345:in guard'
8: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:848:in block in run' 7: from /opt/rock_workspace/navigation/adcp_pose_estimation_scripts/common_startup.rb:192:in block in replay_pose_estimator'
6: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in setup' 5: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in each'
4: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:61:in block in setup' 3: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:120:in setup_task'
2: from /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each_needed_transformation' 1: from /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each'
/opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:128:in `block in setup_task': frame camera, selected on /pose_estimator for camera, does not exist (Transformer::RuntimeSetup::UnknownFrame)

@saarnold
Copy link
Member

The adcp_pose_estimation_scripts package is expected to be in slam/adcp_pose_estimation_scripts. This is why it doesn't find the right configurations and transformations.

@bkocev
Copy link
Author

bkocev commented Jul 21, 2021

I just did:

mv navigation/adcp_pose_estimation_scripts slam/

and reverted my changes in adcp_pose_estimation_scripts/random_init_target_pose.rb and adcp_pose_estimation_scripts/common_startup.rb, i.e., replaced navigation/adcp_pose_estimation_scripts with slam/adcp_pose_estimation_scripts. I had already adapted the filepaths, but nevertheless I changed it to what you expect it to be. However, I still get the following error after running

ruby slam/adcp_pose_estimation_scripts/random_init_target_pose.rb

libGL error: MESA-LOADER: failed to retrieve device information
libGL error: Version 4 or later of flush extension not found
libGL error: failed to load driver: i915
libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: i965
orocos.rb[WARN]: TaskContextProxy /pose_estimator is already initialized with different options.
orocos.rb[WARN]: TaskContextProxy /pose_estimator_min is already initialized with different options.
orocos.rb[WARN]: TaskContextProxy /pose_estimator_max is already initialized with different options.
orocos.rb[WARN]: killing running task contexts and deployments because of unhandled exception
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:128:in block in setup_task': frame camera, selected on /pose_estimator for camera, does not exist orocos.rb[WARN]: /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each'
orocos.rb[WARN]: /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each_needed_transformation' orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:120:in setup_task'
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:61:in block in setup' orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in each'
orocos.rb[WARN]: /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in setup' orocos.rb[WARN]: /opt/rock_workspace/slam/adcp_pose_estimation_scripts/common_startup.rb:192:in block in replay_pose_estimator'
orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:848:in block in run' orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:1345:in guard'
orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:847:in run' orocos.rb[WARN]: /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:136:in run'
orocos.rb[WARN]: /opt/rock_workspace/slam/adcp_pose_estimation_scripts/common_startup.rb:59:in replay_pose_estimator' orocos.rb[WARN]: slam/adcp_pose_estimation_scripts/random_init_target_pose.rb:33:in

'
orocos.rb[WARN]: sending SIGINT to pose_estimator
orocos.rb[WARN]: sending SIGINT to pose_estimator_min
orocos.rb[WARN]: sending SIGINT to pose_estimator_max
orocos.rb[WARN]: sending SIGINT to dvl_evaluation
orocos.rb[WARN]: sending SIGINT to force2effort
orocos.rb[WARN]: sending SIGINT to speed2force
orocos.rb[WARN]: sending SIGINT to orientation_estimator
orocos.rb[WARN]: sending SIGINT to orientation_estimator_min
#<Thread:0x000055ba6037b430@/opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:563 aborting> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:604:in block in spawn_thread' 2: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in ensure in block in spawn_thread'
1: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in synchronize' /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:601:in block (2 levels) in spawn_thread': undefined method -' for nil:NilClass (NoMethodError) #<Thread:0x00007f6cb0186478@/opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:563 aborting> terminated with exception (report_on_exception is true): Traceback (most recent call last): 3: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:604:in block in spawn_thread'
2: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in ensure in block in spawn_thread' 1: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in synchronize'
/opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:601:in block (2 levels) in spawn_thread': undefined method -' for nil:NilClass (NoMethodError)
#<Thread:0x000055ba5f9cdf78@/opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:563 aborting> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
3: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:604:in block in spawn_thread' 2: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in ensure in block in spawn_thread'
1: from /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:594:in synchronize' /opt/rock_workspace/tools/utilrb/lib/utilrb/thread_pool.rb:601:in block (2 levels) in spawn_thread': undefined method -' for nil:NilClass (NoMethodError) Traceback (most recent call last): 13: from slam/adcp_pose_estimation_scripts/random_init_target_pose.rb:33:in '
12: from /opt/rock_workspace/slam/adcp_pose_estimation_scripts/common_startup.rb:59:in replay_pose_estimator' 11: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:136:in run'
10: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:847:in run' 9: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:1345:in guard'
8: from /opt/rock_workspace/tools/orocos.rb/lib/orocos/process.rb:848:in block in run' 7: from /opt/rock_workspace/slam/adcp_pose_estimation_scripts/common_startup.rb:192:in block in replay_pose_estimator'
6: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in setup' 5: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:60:in each'
4: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:61:in block in setup' 3: from /opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:120:in setup_task'
2: from /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each_needed_transformation' 1: from /opt/rock_workspace/install/share/orogen/plugins/transformer_plugin.rb:490:in each'
/opt/rock_workspace/install/lib/ruby/2.5.0/transformer/runtime.rb:128:in `block in setup_task': frame camera, selected on /pose_estimator for camera, does not exist (Transformer::RuntimeSetup::UnknownFrame)

@bkocev
Copy link
Author

bkocev commented Jul 21, 2021

I think the problem is that you defined apriltag-related camera frames that are not part of the dataset and now they are missing upon loading the configuration. I tried adding

camera_frame: camera

in the default filter_config in slam/adcp_pose_estimation_scripts/config/uwv_kalman_filters::PoseEstimator.yml

but that did not help.

@bkocev
Copy link
Author

bkocev commented Jul 21, 2021

I removed all the apriltag/camera related stuff. After that, I was able to run

ruby slam/adcp_pose_estimation_scripts/random_init_target_pose.rb

Three (Qt) windows pop up with titles:

  1. random_init_target_pose.rb
  2. LogControl
  3. TaskInspector

image
image
image

However, when I try to play the log by pressing the green button in LogControl, I get the following error message:

image

@saarnold
Copy link
Member

Yes you are right, there have been some changes to the task API that haven't been updated in the evaluation scripts.
I just updated it, let me know if it solves your problems.

@bkocev
Copy link
Author

bkocev commented Jul 22, 2021

Hi Sascha,

        log_ports['depth_samples'].connect_to pose_estimation.pressure_sensor_samples, :type => :buffer, :size => 1000
        log_ports['depth_samples'].connect_to pose_estimation.altitude_samples, :type => :buffer, :size => 1000

The above change fixed the above "Corrupted logfile" error. Then after incorporating all of your changes into the forked repo local checkout in the rock_workspace of the rock-ros-bridge, I think I was able to run your scripts successfully :). These are some screenshots:

image
image
image

Visual Studio Code terminal output:

image

Note that I have not deleted uwv_kalman_filters::RotatedIMU.yml, but I think it is safely ignored.

Does the above look like a good sign? :)

Thank you very much for the efforts and overall support. :)

P.S. Now, I need to figure out how to update the forked version of your repo, because I had to fork it in our Mare-IT project because not all members have access you repo. I think in order to configure a pull from a mirror repo, I need a premium gitlab account. I check out what can be done.

Best,
Bojan.

@saarnold
Copy link
Member

Yes that looks good 👍

P.S. Now, I need to figure out how to update the forked version of your repo, because I had to fork it in our Mare-IT project because not all members have access you repo. I think in order to configure a pull from a mirror repo, I need a premium gitlab account. I check out what can be done.

You can have multiple remote repositories. That would be the easiest way of working with forks. See git remote add [remote_name] [git_url]

@bkocev
Copy link
Author

bkocev commented Jul 22, 2021

I will then try adding your repo as a second repo. :)

Btw, is this a meaningful/expected output from "ruby slam/adcp_pose_estimation_scripts/random_init_target_pose.rb" :

image

?

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