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

ROS Noetic and Ubuntu 20.04 support #537

Closed
Victorlouisdg opened this issue Sep 22, 2020 · 42 comments
Closed

ROS Noetic and Ubuntu 20.04 support #537

Victorlouisdg opened this issue Sep 22, 2020 · 42 comments

Comments

@Victorlouisdg
Copy link

Hi, I was wondering whether support for ROS Noetic and Ubuntu 20.04 is planned or if anyone is working on it. Also, what steps can I take to help?

@gavanderhoorn
Copy link
Member

A first step could be to see what the status is of melodic-devel-staging is under Noetic.

The MoveIt configs don't work, but I'm more interested in "the rest" at the moment.

@Victorlouisdg
Copy link
Author

Building the melodic-devel-staging branch works perfectly by following the instruction under Building from Source in the readme. The only addition step I had to do is install rosdep with:

sudo apt-get install python3-rosdep

One problem I encountered is that the robots aren't properly visualized in RViz.

roslaunch ur_description view_ur5.launch results in this:

rviz_ur10_error

@DLu
Copy link

DLu commented Oct 13, 2020

This need a new release of xacro before the !degrees tags will work.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Oct 13, 2020

Has already been released.

Could be that Noetic is lagging though, that I haven't checked.

@DLu
Copy link

DLu commented Oct 13, 2020

The noetic branch doesn't have this yet: ros/xacro#252

@gavanderhoorn
Copy link
Member

That would be the lagging I mentioned.

@DLu
Copy link

DLu commented Oct 13, 2020

Yup, I figured. Just adding the reference.

@gavanderhoorn
Copy link
Member

ros/xacro#252 (comment)

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Oct 14, 2020

ros/rosdistro#26945 (merged). Will need a sync of Noetic now.

@dqii
Copy link

dqii commented Nov 11, 2020

@Victorlouisdg were you able to get Noetic / Ubuntu 20.04 to work? Or did you end up using Kinetic or Melodic?

@Victorlouisdg
Copy link
Author

@dqii I haven't had time to continue working with the UR10 yet. I will be working with it in the near future, but initially I'm going to stick with ROS Melodic. If that goes well, I might try getting this to work on Noetic again.

@gavanderhoorn
Copy link
Member

There hasn't been a Noetic sync since ros/rosdistro#26945 was merged (see Discourse discussion), so the changes needed for melodic-devel-staging to work in Noetic have not yet reached the main repositories.

The testing repository would be needed to install the latest version of xacro, or otherwise a source-checkout of ros/xacro in your Catkin workspace would also work.

That should prevent the problem reported by @Victorlouisdg in #537 (comment).

@Victorlouisdg
Copy link
Author

The Noetic sync is out (link), to get the newly released packages you can run:

  • sudo apt update
  • sudo apt upgrade

The ur_description package seems to be working perfectly on Ubuntu 20.04 now :)

@dqii
Copy link

dqii commented Dec 2, 2020

Sorry just to clarify, which distribution did you use for this package? You were able to use it directly?

@Victorlouisdg
Copy link
Author

I'm using ROS Noetic on Ubuntu 20.04 and I tested the melodic-devel-staging branch. Note that I'm talking specifically about the ur_description package, not the other packages for the UR robots that are also contained in this repository.

@gonzalocasas
Copy link

gonzalocasas commented Mar 19, 2021

Is anyone working on getting the move_it_config packages fixed?

EDIT: I think I found it. I guess this is it: #538

@danzimmerman
Copy link

danzimmerman commented May 7, 2021

I'm having an issue on RoboStack Noetic on Windows 10 with invisible Collada visual meshes on some of the robots (here UR5) from melodic-devel-staging:

image

See RoboStack/ros-noetic#121 for details. EDIT: per suggestion, opened issue instead at conda-forge/gazebo-feedstock#74

This doesn't seem to show up in more mainstream installations. My coworker's ros-noetic-desktop-full install on Ubuntu Focal has no problem with the visuals on the melodic-devel-staging UR5 robot (we did not yet try others). And some of the files (UR10) work perfectly on my RoboStack Noetic on Windows 10 as well. Zero issues on Windows or Linux with Melodic installations.

Even though it's a niche environment at the moment, I wanted to flag this just in case it might break in future from-source or binary builds on more mainstream ROS installations. I don't know if figuring out how to fix this via the structure of the .dae files is a correct approach or even a desirable workaround, but it seems to have something to do with Gazebo's material parsing, and doesn't affect the robots uniformly (I have noticed problems with the UR5e as well, haven't checked all of them yet)

Per my RoboStack issue above, I'm getting errors like

[Err] [..\gazebo\rendering\Visual.cc:374] Ogre Error:ItemIdentityException: Resource with the name robot::forearm_link::forearm_link_visual_MATERIAL_gazebo_material_2 already exists. in ResourceManager::add at ..\OgreMain\src\OgreResourceManager.cpp (line 158)
[Err] [..\gazebo\rendering\Visual.cc:375] Unable to create a mesh from C:/Code/ros/workspaces/noethp_ws/src\universal_robot\ur_description/meshes/ur5/visual/forearm.dae
[Err] [..\gazebo\rendering\Visual.cc:374] Ogre Error:ItemIdentityException: Resource with the name robot::upper_arm_link::upper_arm_link_visual_MATERIAL_gazebo_material_16 already exists. in ResourceManager::add at ..\OgreMain\src\OgreResourceManager.cpp (line 158)
[Err] [..\gazebo\rendering\Visual.cc:375] Unable to create a mesh from C:/Code/ros/workspaces/noethp_ws/src\universal_robot\ur_description/meshes/ur5/visual/upperarm.dae

Ideas for fixes or workarounds are appreciated.

@danzimmerman
Copy link

Note that the invisible-links issue I described above is indeed an issue with how recent versions of OGRE handle materials (see gazebosim/gazebo-classic#3002), not an issue with the models in these packages. It's now fixed in the Robostack version of Noetic and my ur_gazebo functionality is working there. I still have the same problem in RViz that @Victorlouisdg reports above... the robot is white and collapsed.

@gavanderhoorn
Copy link
Member

I still have the same problem in RViz that @Victorlouisdg reports above... the robot is white and collapsed.

you don't show an RViz screenshot here, but from the one you show in conda-forge/gazebo-feedstock#74 (comment):

It would appear you have the Fixed Frame setting set to map, and the TF display complains about no transforms being available from map to the frames of the robot model.

You'll need to change the Fixed Frame to some frame which does exist in your scene.

@danzimmerman
Copy link

@gavanderhoorn Thanks. Makes sense re: the collapse with the TF errors. Is the featureless white visual appearance normal RViz behavior in this situation?

I am not very familiar with RViz because I've been working almost exclusively in Gazebo. Switching to a valid frame, I see that the behavior is identical on my ordinary (MS-IoT) Windows 10 Melodic installation and my Robostack Noetic installation:

Valid frame world
image

Missing frame map

image

@gavanderhoorn
Copy link
Member

Is the featureless white visual appearance normal RViz behavior in this situation?

yes.

@MZJR
Copy link

MZJR commented Aug 27, 2021

How do I install the UR package in the noetic version?By melodic-devel-staging?

@gavanderhoorn
Copy link
Member

Yes.

@MZJR
Copy link

MZJR commented Aug 27, 2021

Yes.

Thanks. By the way,I will develop UR under this branch. Before the noetic version is released, are there any known bugs that I need to pay attention to?Or which parts can I test for this branch?

@gavanderhoorn
Copy link
Member

Please clarify what you're going to be doing exactly.

Will you be using UniversalRobots/Universal_Robots_ROS_Driver? If so: please follow the instructions there. Do not use this repository by itself in that case.

Also: usage questions might be better posted on ROS Answers.

@MZJR
Copy link

MZJR commented Aug 27, 2021

Please clarify what you're going to be doing exactly.

Will you be using UniversalRobots/Universal_Robots_ROS_Driver? If so: please follow the instructions there. Do not use this repository by itself in that case.

Also: usage questions might be better posted on ROS Answers.

Thanks for your guidance.At present, I just want to find a suitable UR package for physical control under noetic.

@gavanderhoorn
Copy link
Member

Then go to UniversalRobots/Universal_Robots_ROS_Driver and follow the instructions.

@ipa-nhg ipa-nhg added the wrid21 label Sep 23, 2021
@sheila-suppiah
Copy link

@cardboardcode can you assign this to @Hieutrungbk ?

@gavanderhoorn
Copy link
Member

This was assigned to @Hieutrungbk. Could you provide an update on what you found?

@XiaoqZhan
Copy link

Please clarify what you're going to be doing exactly.

Will you be using UniversalRobots/Universal_Robots_ROS_Driver? If so: please follow the instructions there. Do not use this repository by itself in that case.

Also: usage questions might be better posted on ROS Answers.

Excuse me, could you please explain the relationship between the UniversalRobots/Universal_Robots_ROS_Driver and this repository?

@gonzalocasas
Copy link

Excuse me, could you please explain the relationship between the UniversalRobots/Universal_Robots_ROS_Driver and this repository?

This repository contains the models (URDF/SRDF/etc) and the configuration for MoveIt, and the other one is one of the drivers for the real hardware.

@aatb-ch
Copy link

aatb-ch commented Mar 3, 2022

Is there an update on the Noetic version?

I have tried the melodic-devel-staging branch, also fmauch moveit PR branch #538 and nothing seems to be working for MoveIt launch files on Noetic. Wondering if anybody has UR10 moveit launch files working on Noetic.

Could you clarify also the conflicting infos when following the official steps to build UniversalRobots/Universal_Robots_ROS_Driver which involves cloning fmauch's universal_robots calibration_devel branch, which then creates catkin build issues with duplicated packages in this repo? I've not found any info regarding that, if using this repo am I not supposed to clone fmauch's branch?

@fmauch
Copy link
Contributor

fmauch commented Mar 3, 2022

Using my fork and the calibration_devel branch should not create duplicated packages unless you keep this repo in your workspace. Note that sometimes you'll have to clean your build folder if packages got replaced.

As of this day, the instructions on UniversalRobots/Universal_Robots_ROS_Driver are still valid (and will be adapted in the future if things change).

@aatb-ch
Copy link

aatb-ch commented Mar 3, 2022

Hi Felix,

Thanks, I just tried pulling the calibration_devel branch alongside your moveit fork/PR and this is what I get when building, after doing a catkin clean:

RuntimeError: Multiple packages found with the same name "universal_robots":
- fmauch_universal_robot/universal_robots
- universal_robot/universal_robots
Multiple packages found with the same name "ur10_moveit_config":
- fmauch_universal_robot/ur10_moveit_config
- universal_robot/ur10_moveit_config
Multiple packages found with the same name "ur10e_moveit_config":
- fmauch_universal_robot/ur10e_moveit_config
- universal_robot/ur10e_moveit_config
Multiple packages found with the same name "ur16e_moveit_config":
- fmauch_universal_robot/ur16e_moveit_config
- universal_robot/ur16e_moveit_config
Multiple packages found with the same name "ur3_moveit_config":
- fmauch_universal_robot/ur3_moveit_config
- universal_robot/ur3_moveit_config
Multiple packages found with the same name "ur3e_moveit_config":
- fmauch_universal_robot/ur3e_moveit_config
- universal_robot/ur3e_moveit_config
Multiple packages found with the same name "ur5_moveit_config":
- fmauch_universal_robot/ur5_moveit_config
- universal_robot/ur5_moveit_config
Multiple packages found with the same name "ur5e_moveit_config":
- fmauch_universal_robot/ur5e_moveit_config
- universal_robot/ur5e_moveit_config
Multiple packages found with the same name "ur_description":
- fmauch_universal_robot/ur_description
- universal_robot/ur_description
Multiple packages found with the same name "ur_gazebo":
- fmauch_universal_robot/ur_gazebo
- universal_robot/ur_gazebo
Multiple packages found with the same name "ur_kinematics":
- fmauch_universal_robot/ur_kinematics
- universal_robot/ur_kinematics

I double-checked which repo/branch i actually pulled, for your fork:

ubuntu@ubuntu:~/catkin_ws/src/universal_robot$ git remote -v
origin  https://github.com/fmauch/universal_robot.git (fetch)
origin  https://github.com/fmauch/universal_robot.git (push)
ubuntu@ubuntu:~/catkin_ws/src/universal_robot$ git branch
* moveit

For the calibration_devel:

ubuntu@ubuntu:~/catkin_ws/src/fmauch_universal_robot$ git remote -v
origin  https://github.com/fmauch/universal_robot.git (fetch)
origin  https://github.com/fmauch/universal_robot.git (push)
ubuntu@ubuntu:~/catkin_ws/src/fmauch_universal_robot$ git branch -v
* calibration_devel 1ffdd69 Replace __ prefixes*

I can build only when one of the repo is in my src folder.

@fmauch
Copy link
Contributor

fmauch commented Mar 3, 2022

@aatb-ch You should not clone both. No wonder you get the Multiple packages found error, as you have effectively cloned the same repo (in different versions) twice. Only use my fork (in your case delete ~/catkin_ws/src/universal_robot).

@aatb-ch
Copy link

aatb-ch commented Mar 3, 2022

Ah sorry I think I might not have been clear, yes I understand that I should not have both. But if I install the https://github.com/UniversalRobots/Universal_Robots_ROS_Driver per the instructions, I end up with the calibration_devel branch in my src folder, and I did not realize that when I installed this repo to have MoveIt configs I effectively ended up with a duplicate of it.

My question is, nowhere neither on https://github.com/UniversalRobots/Universal_Robots_ROS_Driver nor on https://github.com/ros-industrial/universal_robot is it mentioned to only use exclusively your calibration_devel OR this repo. Isn't this maybe confusing? It took me the catkin build error to realize I should delete one repo, and was unsure if I might be breaking things.

Anyway this is slightly off-topic, I was wondering if there was a currently working solution to have MoveIt configs on Noetic, because after building your moveit fork, or the melodic-devel-staging I could not get anything to launch. Should I assume there is no current workarounds and roll back to Melodic? I'm new to MoveIt so if there's another way I'm happy to inquire further.

@fmauch
Copy link
Contributor

fmauch commented Mar 3, 2022

my calibration_devel branch does contain a workin moveit configuration.

@aatb-ch
Copy link

aatb-ch commented Mar 3, 2022

Ah, sorry then, I might have been confused all along on the purpose of the calibration_devel branch, I thought that it was, well, something calibration-specific exclusively. I will recompile everything and let you know if it all works out. Thanks a lot for the help

@aatb-ch
Copy link

aatb-ch commented Mar 7, 2022

Hi Felix,

So I have tried the moveit launch file for ur10 in the calibration_devel branch, could you confirm that the steps taken are correct? I get a std::bad_alloc crash on launch. Wondering if I might be missing some manual config steps?

My setup (all freshly installed and built):

  • Ubuntu 20.04 Server with RT kernel (from ros-realtime) on a raspberry pi 4
  • Universal Robot ur_robot_driver
  • universal_robot calibration_devel branch
  • URSim 3.15 with the External Control URCap

launch procedure:

  • roslaunch ur_robot_driver ur10_bringup.launch robot_ip:=192.168.0.16
  • starting program on URSim with the External Control node
  • roslaunch ur10_moveit_config ur10_moveit_planning_execution.launch

Results in:

process[move_group-1]: started with pid [2498]
[ WARN] [1646650718.675808366]: MoveGroup launched with ~default_planning_pipeline '' not configured in ~planning_pipelines
[ WARN] [1646650718.679426940]: Falling back to using the move_group node's namespace (deprecated Melodic behavior).
[ INFO] [1646650718.718340688]: Loading robot model 'ur10_robot'...
[ WARN] [1646650718.894482764]: Kinematics solver doesn't support #attempts anymore, but only a timeout.
Please remove the parameter '/robot_description_kinematics/manipulator/kinematics_solver_attempts' from your configuration.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
[move_group-1] process has died [pid 2498, exit code -6, cmd /home/ubuntu/catkin_ws/devel/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/ubuntu/.ros/log/323fc09e-9e02-11ec-95ac-11d951d09c92/move_group-1.log].
log file: /home/ubuntu/.ros/log/323fc09e-9e02-11ec-95ac-11d951d09c92/move_group-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

I'm not sure what's the problem with the empty planning pipeline, in the move_group.launch it is set as ompl so shouldn't be empty?

I've been piecing the instructions from the past ur_bringup procedure, replaced with the new ur_robot_driver. As there is no display the demo.launch expectedly crashes since it cannot start RVIZ, but the ur10_moveit_planning_execution.launch should run as-is?

@aatb-ch
Copy link

aatb-ch commented Mar 7, 2022

Alright so I think I've figured out the culprit here, unsurprisingly it was me.

While following the MoveIt Servo tutorial I installed from source MoveIt, but it is already installed as a dependency of the UR driver, and since I had never used it before I did not realize that. I just reinstalled a clean Noetic install with only https://github.com/UniversalRobots/Universal_Robots_ROS_Driver and your calibration_devel branch and indeed the ur10_moveit_planning_execution.launch file starts without problem.

Edit: still having trouble with the Link 'world' not found in model 'ur10_robot' error when using Servo, as I want to use a real robot I dont want to use the Gazebo bringup, but I should figure out how to write a custom xacro per https://github.com/fmauch/universal_robot/blob/calibration_devel/ur_gazebo/urdf/ur.xacro

Edit2: I got it working with the current URDF by simply updating the frames refered to in Servo yaml config files, many many thanks for having pointed me in the right direction!

@fmauch
Copy link
Contributor

fmauch commented Jul 21, 2022

As the current version seems to be working fine on noetic, I'll close this issue. Feel free to comment / reopen if required.

@fmauch fmauch closed this as completed Jul 21, 2022
@gonzalocasas
Copy link

I might be wrong here but it looks to me like melodic-devel had the last commit in 2019 and most likely doesn't work properly on Noetic.

I assume you close it because one of the other branches or even forks of this repo works on noetic (i can confirm @fmauch 's fork does), but how is that going to be clear for anyone coming to this project without having to read a few thousand comments on issues and readmes spread all over the place...?

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