Open bkocev opened 3 years ago
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.
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.
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. :)
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 :)
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
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
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)
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.
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
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):
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):
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
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)
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.
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:
However, when I try to play the log by pressing the green button in LogControl, I get the following error message:
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.
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:
Visual Studio Code terminal output:
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.
Yes that looks good :+1:
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]
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" :
?
Hi everyone,
where is uwv_kalman_filters::RotatedIMU defined? I cannot locate an orogen repository with similar name or so.
Thanks, Bojan.