ros-industrial / ur_modern_driver

(deprecated) ROS 1 driver for CB1 and CB2 controllers with UR5 or UR10 robots from Universal Robots
Apache License 2.0
302 stars 340 forks source link

Update for the SW 3.10 #334

Closed garcia-g closed 4 years ago

garcia-g commented 5 years ago

The latest version of the UR firmware (3.10) adds an extra byte (Safety Status). This request fixes the problem following the procedure in #310, which solves a similar issue for previous firmware versions. I used the reference in this link: https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/remote-control-via-tcpip-16496/

Should fix issue #316.

This was tested with the real UR5 (not UR5e) running firmware 3.10.

gavanderhoorn commented 5 years ago

Thanks for the PR, but I see changes for version 3.5 mixed in with changes for 3.10.

Could you please make this PR about 3.10 only?

It would also be acceptable to add both 3.5 and 3.10 support, but please do so in separate commits.

gavanderhoorn commented 5 years ago

It would also seem Travis is failing:

In file included from /root/catkin_ws/src/ur_modern_driver/src/ros_main.cpp:39:0:
/root/catkin_ws/src/ur_modern_driver/include/ur_modern_driver/ur/factory.h: In member function std::unique_ptr<URParser<StatePacket> > URFactory::getStateParser():
/root/catkin_ws/src/ur_modern_driver/include/ur_modern_driver/ur/factory.h:124:5: error: else without a previous if
     else
     ^
/root/catkin_ws/src/ur_modern_driver/include/ur_modern_driver/ur/factory.h: In member function std::unique_ptr<URParser<RTPacket> > URFactory::getRTParser():
/root/catkin_ws/src/ur_modern_driver/include/ur_modern_driver/ur/factory.h:145:7: error: else without a previous if
       else if (minor_version_ < 10)
       ^
/root/catkin_ws/src/ur_modern_driver/include/ur_modern_driver/ur/factory.h:150:5: error: else without a previous if
     else
     ^
garcia-g commented 5 years ago

@gavanderhoorn I separated the updates for 3.5 and 3.10 in two commits and fixed the errors. Now Travis is passing.

garcia-g commented 5 years ago

@gavanderhoorn My colleague reported a problem with the SW 5.2 (UR5e) which should also affect versions SW 3.7 to 3.9. I'll fix it soon. Please don't merge yet.

Shaluols commented 4 years ago

Hi, I have solved the problem of "Sub-package of type 3 was not parsed completely" on my UR5e. I got this problem under the SW 5.4.2, ubuntu 16, ROS kinetic& ubuntu18, ROS melodic. My solution:

  1. Downgrading the SW 5.4 to SW 5.2:
  2. Install this ur_modern_driver: https://github.com/dniewinski/ur_modern_driver
  3. Change the Polyscope from local control to remote control: https://github.com/ros-industrial/ur_modern_driver/issues/184#issuecomment-435325436

These steps helped me work out!

simonschmeisser commented 4 years ago

What's the status with either this one or #339 ? We have a customer asking about 3.10 and would need to use either branch

gavanderhoorn commented 4 years ago

As much as I'd like to get ur_modern_driver up-to-date with all the different versions of Polyscope, I believe it would be good for current users to consider migrating to UniversalRobots/Universal_Robots_ROS_Driver.

It's not perfect, but it's backed by a competent team and the OEM is involved to a certain extent.

Functionality missing in UniversalRobots/Universal_Robots_ROS_Driver (compared to ur_modern_driver) should be identified and ported.

simonschmeisser commented 4 years ago

Ah, I got confused here and thought the new official one was merged into ur_modern_driver, my bad. Thanks @gavanderhoorn for the hint

gavanderhoorn commented 4 years ago

Ah, I got confused here and thought the new official one was merged into ur_modern_driver,

No. It is a fork, but it will not be merged in.

gavanderhoorn commented 4 years ago

I'm closing this as we've officially deprecated this package.

Refer to the announcement on ROS Discourse.

gavanderhoorn commented 4 years ago

@garcia-g: thanks for the PR. Making the effort of submitting a PR is always highly appreciated. :+1:

However, as ur_robot_driver is now the official driver for all CB3 and e-series controllers, we've decided not to merge any updates to ur_modern_driver that would improve its compatibility with those controllers. This includes updates to the deserialisers.

I would recommend you instead use ur_robot_driver for robots with CB3 controllers and "SW 3.10".

thanks again.