Universal_Robots_ROS2_Driver
Universal_Robots_ROS2_Driver copied to clipboard
SetIO service not working with fake hardware
Release: Humble
Using the io_and_status_controller/set_io service blocks with fake hardware.
This is slightly annoying when trying to test an application with fake hardware.
Steps to reproduce:
ros2 launch ur_robot_driver ur5e.launch.py use_fake_hardware:=true robot_ip:="xxx.yyy.zzz.vvv" fake_sensor_commands:=true
ros2 service call /io_and_status_controller/set_io ur_msgs/srv/SetIO "{fun: 1, pin: 0, state: 1}"
Things tried
Adding fake_gpio_commands to ur_description's ur.ros_control.xacro.
<xacro:if value="${use_fake_hardware}">
<plugin>mock_components/GenericSystem</plugin>
<param name="fake_sensor_commands">${fake_sensor_commands}</param>
<param name="state_following_offset">0.0</param>
<param name="fake_gpio_commands">true</param>
</xacro:if>
This seems to not have an effect, so I suppose this might be an issue with the io_and_status_controller?
I fixed this in the PRs for multiarm support. https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/pull/596
@fmauch I guess we can close this now. Fix is merged now.