-
Notifications
You must be signed in to change notification settings - Fork 52
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
Dual UR5 Simulation #27
Comments
We've been using @TheDash's universal_robot, robotiq, and flir_ptu branches but we still cannot get the dual arm husky to load as shown on your twitter feed (https://twitter.com/clearpathrobots/status/746058485327085568) - would you mind providing us with step by step instructions for an installation on a new Trusty + Indigo setup? Thanks, |
This is what it looks like and this is the log output:
|
Hi @wxmerkt (@ibaranov-cp for insight)
I was switched off the project soon as it shipped out the door. I'll try my best to see if I can help you, as I personally believe this is a badass robot setup.
That's right. I did not go through the motions to get it merged and ran out of time internally to work on the project. It should work though if you use my branch. Make sure you're using Indigo.
I believe there were also environment variables you had to set in addition to the parameters passed into the launch file. This means in your bashrc or your terminal you need to have: export FLIR_PTU_ENABLED=true Try setting those and re-sourcing your environment and then launching it again. Let me know how it goes. I'll be online all day
In the future - I try to put all husky parameters here http://wiki.ros.org/husky_bringup/Tutorials/Customize%20Husky%20Configuration alongside their description |
This is awesome, thanks for your response and help @TheDash. Setting the environment variables makes the robot load in Gazebo, but the controllers seem to have an issue (not loading - couldn't be found) as well as the UR5s crashing through the ground as you've described in the universal_robot issue: Related warning:
I've installed Many thanks :) |
Double check you are using the"dual_ur5_husky" branch for the husky_simulator package as well |
Yes, using the dual_ur5_husky branch and this is the latest commit:
|
Thank you, righteo, the .transmission.xacro files for the arms are included in the universal_robot package. Could you clone the universal_robot package from https://github.com/thedash/universal_robot and compile it from source, double check that it is being used from source, and then give it a go? In addition - you may also want to check that you have the specific type of ros controller installed. Gazebo uses the definitions in https://github.com/husky/husky/blob/dual_ur5_husky/husky_control/config/control_left_ur5.yaml to load the ros controller for each joint. I would confirm that you have the plugins installed by: sudo apt-get install ros-indigo-ros-control* |
I'd already done that - and also removed the system-installed debians for ros-indigo-universal-robot, ros-indigo-ur-description, and ros-indigo-ur-kinematics - hence it should use it and pick the correct one up? $ echo $ROS_PACKAGE_PATH
/home/wxm/dev/husky_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
$ vcs remote
.....
=== ./flir_ptu (git) ===
origin https://github.com/TheDash/flir_ptu.git (fetch)
origin https://github.com/TheDash/flir_ptu.git (push)
=== ./husky (git) ===
origin https://github.com/husky/husky.git (fetch)
origin https://github.com/husky/husky.git (push)
=== ./husky_simulator (git) ===
origin https://github.com/husky/husky_simulator.git (fetch)
origin https://github.com/husky/husky_simulator.git (push)
=== ./robotiq (git) ===
origin https://github.com/ros-industrial/robotiq (fetch)
origin https://github.com/ros-industrial/robotiq (push)
thedash https://github.com/TheDash/robotiq (fetch)
thedash https://github.com/TheDash/robotiq (push)
=== ./universal_robot (git) ===
origin https://github.com/TheDash/universal_robot.git (fetch)
origin https://github.com/TheDash/universal_robot.git (push)
$ vcs branch
.....
=== ./flir_ptu (git) ===
fix-gazebo-errors
=== ./husky (git) ===
dual_ur5_husky
=== ./husky_simulator (git) ===
dual_ur5_husky
=== ./robotiq (git) ===
ft_300
=== ./universal_robot (git) ===
indigo-devel |
Okay, all of the above looks good. I edited the above to add a few more things - try those out too. |
Thanks - the problem was a missing gazebo package (silent failure, running Gazebo6.6 and soon to upgrade to 7). The Husky controllers are now loading, however, the Husky is half suspended in the ground and Gazebo crashes when running Truncated log:
Second log:
|
Just to make sure - am I launching it correctly?: roslaunch husky_gazebo husky_playpen.launch dual_ur5_enabled:=true robotiq_grippers_enabled:=true |
Does it show up in Gazebo with the arms fine now? What is the bumblebee doing? roslaunch husky_gazebo husky_playpen.launch dual_ur5_enabled:=true robotiq_grippers_enabled:=true laser_enabled:=false I would give that a go. Sorry my answers aren't more certain, been a while since I've done this robot. The above looks like you just need to reset your terminals - gazebo didn't properly free its memory - OR that there are incompatible versions of gazebo-ros-pluginns and gazebo going on here. I think I used Gazebo 2 for all of this. |
Thanks, I've got it to start and the controllers to load. The simulation is unstable though, the robot is rocking and slowly moving backwards when nothing is commanded. I'll investigate this further - it appears to be some tuning issue of the physics solver. The FT sensors do not show up though. I've also exported Also, there are inconsistencies between the visualised state in gazebo and the onein rviz, cf. this video: https://www.youtube.com/watch?v=r3NYTo1KBUY&feature=youtu.be |
Quite strange. I've seen small jitters/movements for things like this when inertia values aren't set correctly, or control loops aren't tuned. Could also be the friction in the physics.
Hmm.. https://github.com/husky/husky/blob/dual_ur5_husky/husky_description/urdf/husky.urdf.xacro#L168 says they're there. Could you check your robot_description and the links/joints in Rviz? I think it is there. I put such a big space between the gripper and the arm because the real robot has some sort of spacing/attachment material there that isn't the FT. I never got around to adding a plain cylinder in place for the sim, so just made a gap. Im thinking the physics values of the Husky are wrong. It loooks like it needs more weight in the front. Side note: what are you using for navigation? This whole setup is pretty awesome. |
Yes, that may be it. I didn't look into it too closely just yet until I can resolve the weight distribution issue.
Correct, it's there and it finds the link frames successfully. It has trouble finding a transform from any of the hand frames to the odom frame though. Any idea what might be causing that?
Do you have any particular insight on what weight needs to be adjusted where? I.e. what was the mass of the robot for shipping so we can compare it to the one in the URDF (e.g. the battery weight might be unaccounted for or perhaps the weight of the UR5 control computer).
It's the plain husky_navigation stack which comes as part of husky_desktop. |
Not entirely sure. roswtf or rosrun tf view_frames would help here to see if there are any tf complaints.
Might have to wait until Monday for this one. @jeff-o any insight on how we could find that out?
I don't get out much :P |
There's no connection to the grippers from the _palm - is it possible it's not being simulated properly? Cf. frames.pdf |
Hmm. Can you check the robot_description to see if the fingers are defined there? It is possible that the gazebo tags that are in the robotiq_hand macro don't work on this version of gazebo and so the model wasn't added to the srdf. Edit: I take that back. http://gazebosim.org/tutorials?tut=ros_urdf says anything 1.9+ above these tags should work. It seems the fingers aren't being loaded but the palm is. |
The only ROS node with "Robotiq" in it is a joint state publisher, I haven't seen a controller for it running:
|
Oh yes. that is right. It has no controller for it and has its own controller that must be loaded separately. Good find. Try bullet point 2. I'll keep looking, because I feel like I wrote an internal reference for how to use the gripper. There was a mini readme at https://github.com/husky/husky/tree/dual_ur5_husky if you scroll down it says:
The reason being that it was so complex (because it is underactuated) that Gazebo + ROS Control wasn't suited for it - so it was just best to use the alternative controller and tap into that. Edit: I think that may be for the real robot. http://gazebosim.org/tutorials?tut=drcsim_robotiq_hand&cat=drcsim is the reference for controlling it https://github.com/ros-industrial/robotiq/blob/groovy-devel/robotiq_s_model_articulated_gazebo/launch/robotiq_gripper_empty_world.launch was merged once as a reference but they never carried forward the changes I made, so it was lost. |
What would those IPs be for the simulated version? We got it working just fine on the real robot. Priority for us now is to get the mass distribution of the robot correct though so that we can drive around in simulation. Thank you very much for all your help and advice, this is awesome :) |
Priority for us now is to get the mass distribution of the robot correct though so that we can drive around in simulation. Thank you very much for all your help and advice, this is awesome :) No IPs for simulated version. I believe the grippers move in simulation using direct joint state publisher commands akin to how it is done with the Atlas (which use robotiq grippers) http://gazebosim.org/tutorials?tut=drcsim_robotiq_hand&cat=drcsim In particular: rostopic pub --once right_hand/command atlas_msgs/SModelRobotOutput {1,0,1,0,0,0,127,255,0,155,0,0,255,0,0,0,0,0} is the jist of the command, but you may need to change topic names from right_hand/command to whatever it shows up as on the Husky. |
Is there an outstanding item on this ticket we haven't addressed? I would like to make sure everything is all good. |
Hey @TheDash, |
@wxmerkt any updates on this issue? |
We haven't used Gazebo much any further and cannot confirm whether it's working or not. Our real Husky has (as confirmed by the maintenance visit of @majcote) a defective motor driver reporting erroneous values thus preventing usage - we are still waiting to hear back on a) a fix of that (right side) motor driver and b) merging of the differential drive controller with velocity input rather than position. cc: @VladimirIvan |
Hi,
There's a branch for the dual UR5 simulation (https://github.com/husky/husky_simulator/compare/dual_ur5_husky) but it doesn't seem to be completed and wasn't integrated. What's the timeline for this? We tried to get it to run ourselves but noticed a number of problems:
In essence it's merging ros-industrial-attic/robotiq@jade-devel...TheDash:ft_300
Do you have updates on when and how this will be completed? Or instructions on how to run the dual_ur5_husky gazebo simulation?
Thanks,
Wolfgang (Edinburgh)
The text was updated successfully, but these errors were encountered: