uwgraphics / relaxed_ik

RelaxedIK Solver
MIT License
175 stars 50 forks source link

relaxed_ik_rust fails #25

Open bomarali opened 3 years ago

bomarali commented 3 years ago

Hi all,

I am trying the dev branch rust version relaxed_ik_rust on ROS Melodic with UR5 robot. I get the following fail: ...bunch of what I assume Rust warnings, then warning: 118 warnings emitted Finished dev [optimized + debuginfo] target(s) in 0.07s Running target/debug/relaxed_ik_node solver initialized! thread 'main' panicked at 'attempted to leave type linked_hash_map::Node<yaml::Yaml, yaml::Yaml> uninitialized, which is invalid', /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/mem/mod.rs:659:9 [relaxed_ik_node-1] process has finished cleanly all processes on machine have died, roslaunch will exit shutting down processing monitor... ... shutting down processing monitor complete

The python version works as intended, I haven't tested the Julia version yet. Any advice?

hanlinniu commented 3 years ago

I have the same problem mate, have you solved it?

djrakita commented 3 years ago

Could one of you send the info file and urdf that you're using when you get this error? I will hopefully be able to figure it out from there. Thanks!

hanlinniu commented 3 years ago

Could one of you send the info file and urdf that you're using when you get this error? I will hopefully be able to figure it out from there. Thanks!

Hi mate, thank you very much for your reply! now we have problem of installing rust! Several months ago, my old laptops all work for installing rust, but now, rust does not work for two of my new laptops. When I run roslaunch relaxed_ik relaxed_ik_rust.launch, it says: sh: 1: cargo: not found.. After I install rust using: https://www.rust-lang.org/tools/install, I found it have the problem mentioned above: 'thread 'main' panicked at 'attempted to leave type linked_hash_map::Node<yaml::Yaml, yaml::Yaml> uninitialized'

djrakita commented 3 years ago

interesting...I see that rust just released their version 1.50, I wonder if that caused some subtle breaking changes for some other crates (e.g., maybe Yaml in this case). Maybe try reverting to/ installing an older version of rust to see if that makes a difference? https://users.rust-lang.org/t/how-can-i-revert-to-older-version-of-rust/20497

I'm currently using rust 1.46 and everything is working fine, so maybe that's a good version to try first.

hanlinniu commented 3 years ago

interesting...I see that rust just released their version 1.50, I wonder if that caused some subtle breaking changes for some other crates (e.g., maybe Yaml in this case). Maybe try reverting to/ installing an older version of rust to see if that makes a difference? https://users.rust-lang.org/t/how-can-i-revert-to-older-version-of-rust/20497

I'm currently using rust 1.46 and everything is working fine, so maybe that's a good version to try first.

Thank you very much, I finally made it work by using: sudo apt install rustc

bryceikeda commented 2 years ago

@djrakita I too am having this issue but with a slightly different error. Reverting to an older Rust (1.46) did not fix the issue.

I am using the Fetch robot urdf and below is the info file. Do you have any other suggestions? Thank you for the help.

Error Output solver initialized! thread 'main' panicked at 'called Option::unwrap() on a None value', src/bin/lib/utils_rust/yaml_utils.rs:82:66 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Line 82 seems to be here

let starting_config_arr = doc["starting_config"].as_vec().unwrap();
    for i in 0..starting_config_arr.len() {
    starting_config.push(starting_config_arr[i].as_f64().unwrap());
}
urdf_file_name: "fetch.urdf"
fixed_frame: "base_link"
joint_names: [ [ "torso_lift_joint", "shoulder_pan_joint", "shoulder_lift_joint", "upperarm_roll_joint", "elbow_flex_joint", "forearm_roll_joint", "wrist_flex_joint", "wrist_roll_joint" ] ]
joint_ordering: [ "torso_lift_joint", "shoulder_pan_joint", "shoulder_lift_joint", "upperarm_roll_joint", "elbow_flex_joint", "forearm_roll_joint", "wrist_flex_joint", "wrist_roll_joint" ]
ee_fixed_joints: [ "gripper_axis" ]
starting_config: [ 0, 0, 0, 0, 0, 0, 0, 0 ]
collision_file_name: "fetch_collision.yaml"
collision_nn_file: "fetch_nn"
path_to_src: "/home/bryce/ros_projects/relaxed_ik_repo/src/relaxed_ik/src/"
axis_types: [ [ "z", "z", "y", "x", "y", "x", "y", "x" ] ]
velocity_limits: [ 0.1, 1.256, 1.454, 1.571, 1.521, 1.571, 2.268, 2.268 ]
joint_limits: [ [0.0,0.38615], [-1.6056,1.6056], [-1.221,1.518], [-15.0,15.0], [-2.251,2.251], [-15.0,15.0], [-2.16,2.16], [-15.0,15.0] ]
displacements: [ [ [0.119525,0.0,0.34858], [0.117,0.0,0.06], [0.219,0.0,0.0], [0.133,0.0,0.0], [0.197,0.0,0.0], [0.1245,0.0,0.0], [0.1385,0.0,0.0], [0.16645,0.0,0.0] ] ]
disp_offsets: [ [-0.086875,0.0,0.37743] ]
rot_offsets: [ [ [-6.123e-17,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0], [0.0,0.0,0.0] ] ]
joint_types: [ [ "prismatic", "revolute", "revolute", "continuous", "revolute", "continuous", "revolute", "continuous" ] ]
joint_state_define_func_file: "fetch_joint_state_define"
bryceikeda commented 2 years ago

I was able to fix this by changing starting_config values to be 0 rather than 0.0. Rust works now!

connormbrooks commented 2 years ago

I was able to fix this by changing starting_config values to be 0 rather than 0.0. Rust works now!

Saved me some time, @bryceikeda :D