No version for distro humble showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro jazzy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro kilted showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro rolling showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro ardent showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro bouncy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro crystal showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro eloquent showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro dashing showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro galactic showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro foxy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro iron showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro lunar showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro jade showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro indigo showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

No version for distro hydro showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.4.12
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

The prbt_hardware_support package contains files supporting the certification of a robot system including the PRBT manipulator according to DIN EN ISO 10218-1. As safety controllers the Pilz hardware PNOZmulti and PSS4000 are supported. A Modbus connection is used for the communication between ROS <-> safety controller.

There is no need to call these launch files directly; they are included from prbt_support/launch/robot.launch.

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Safety Features

Safe torque off function

The Safe torque off (STO) function of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

Run permitted signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Safe brake control

The SBC function (Safe brake control) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

Safe stop 1 (SS1)

To allow a controlled stop, the safety controller delays the STO function by several milliseconds. This package opens a modbus connection to the safety controller (PNOZmulti or PSS4000). The safety controller sends a RUN_PERMITTED=false signal via Modbus immediately so that ros_control has a short time interval to stop the drives via a brake ramp. The TCP could for example brake on the current trajectory. After execution of the brake ramp, the drivers are halted. Even if ROS would fail, the safety controller turns off the motors via STO (that would be a Stop 0 then).

Brake tests

Brake tests are an integral part of the SBC, since they detect malfunction of the brakes or the brake control in general. Brake tests for each drive have to be executed at a regular interval. When the safety controller requests brake tests, they have to be executed within 1 hour, else the robot cannot be moved anymore.

Operation Modes

The robot system can be controlled in various modes.

These modes are:

  • T1: Speed reduced to 250 mm/s (each robot-frame), enabling switch must be pressed
  • T2*: The robot moves at full speed but still the enabling switch must be pressed
  • AUTOMATIC: The robot moves at full speed and follows a predefined program/process. No enabling switch is needed but safety has to be ensured by safety peripherie (fences, light curtains, …).

See DIN EN ISO 10218-1 for more details or contact us: ros@pilz.de

Note

In operation mode T1 the robot can be moved as usual. However, if an attempt to exceed the speed limit of 250 mm/s in T1 is detected, the prevailing motion is aborted and a controlled stop is performed.

Possible error cases and their handling

Error cases Handling
Modbus client crashes ROS system is shutdown which leads to an abrupt stop of the robot.
RUN_PERMITTED Modbus adapter crashes ROS system is shutdown which leads to an abrupt stop of the robot.
Connection loss between PNOZmulti/PSS4000 & Modbus client Stop 1 is triggered
System overload (messages don’t arrive in time) In case a Stop 1 message does not arrive in time, the safety controller will automatically perform a hard stop. In case a Stop 1-release message does not get through, brakes will remain closed.
RUN_PERMITTED Modbus adapter cannot connect to stop services ROS system will not start.
RUN_PERMITTED Modbus adapter cannot connect to recover services Node does start and robot can be moved until a stop is triggered. Afterwards the brakes will remain closed.

Architecture

The following diagram shows all components of the system and the connections between them.

Component diagram of overall architecture

ROS API

ModbusClient

A Modbus client (for usage with the PNOZmulti or PSS4000) can be started with roslaunch prbt_hardware_support modbus_client.launch.

Published Topics

  • ~/pilz_modbus_client_node/modbus_read (prbt_hardware_support/ModbusMsgInStamped)
    • Holds information about the modbus holding register. Timestamp is only updated if the register content changed.

Parameters

  • modbus_server_ip
  • modbus_server_port
  • index_of_first_register_to_read
  • num_registers_to_read
  • modbus_connection_retries (default: 10)
  • modbus_connection_retry_timeout - timeout between retries (default: 1s)
  • modbus_response_timeout (default: 20ms)
  • modbus_read_topic_name (default: “/pilz_modbus_client_node/modbus_read”)
  • modbus_write_service_name (default: “/pilz_modbus_client_node/modbus_write”)

Please note:

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

Forthcoming

  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Contributors: Pilz GmbH and Co. KG

0.4.12 (2020-03-24)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Add missing dependency on tf2_geometry_msgs (#264)
  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

0.4.11 (2019-09-11)

  • add missing transition to STO state machine
  • revise STO specification
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-09-03)

  • Add state machine for STO handling to allow skipping of hold/unhold if needed
  • add operation mode functionality
  • add write capability to PilzModbusReadClient, rename PilzModbusReadClient -> PilzModbusClient
  • enter hold mode at braketest execution
  • automatically determine range for reading modbus registers
  • only read modbus registers that are explicitly configured (not in a single block)
  • separate api definitions for read and write
  • brake test result can be sent to FS controller
  • Contributors: Pilz GmbH and Co. KG

0.4.9 (2019-06-19)

  • increased modbus response timeout to 20ms
  • publish brake test requests obtained from safety controller via modbus
  • sto_modbus_adapter waits for the services to appear instead of throwing exceptions
  • Add ability to execute a braketest on each drive.
  • Contributors: Pilz GmbH and Co. KG

0.4.8 (2019-04-24)

  • cleanup CMakeLists of prbt_hardware_support
  • update the documentation
  • Contributors: Pilz GmbH and Co. KG

0.4.7 (2019-02-15)

  • drop outdated can configuration
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-01-18)

  • Update used pipeline in test from command_planner to pilz_command_planner

0.4.5 (2019-01-16)

0.4.4 (2019-01-16)

  • Fix PilzModbusReadClient unittest

0.4.3 (2018-11-30)

0.4.2 (2018-11-08)

  • Fix missing include on std_srvs

0.4.1 (2018-11-07)

  • Use Modbus API v2 due to wrongly specified version 1

0.4.0 (2018-11-06)

  • Modbus client node and STO modbus adapter node for Stop 1 functionality

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_pss4000.yaml]
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • index_of_first_register_to_read [default: 512]
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • speed_limit_t1 [default: 0.25]
      • speed_limit_automatic [default: 5.0]
  • launch/speed_observer_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • frequency [default: 20]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.23
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Table of Contents

Introduction

The prbt_hardware_support package provides support for the Pilz hardware PNOZmulti and PSS 4000. A number of safety features are provided which are essential for a DIN EN ISO 10218-1 certifiable robot system (for more information see section about supported DIN EN ISO 10218-1 safety features).

Due to the fact, that the communication between the Pilz safety controllers and ROS is based on the Modbus communication protocol, the package also contains C++ files providing ROS support for the Modbus communication protocol.

In the system overview section, you can find a component diagram showing the overall architecture of our system. The component diagram shows all our nodes and the connections between them.

Please note:
The launch files included in the prbt_hardware_support package don’t need to be called directly by the user. They already are included in our top-level launch file (for more information on how-to run the PRBT robot with ROS see the pilz_robots-README and our application templates.

Supported DIN EN ISO 10218-1 safety features

The prbt_hardware_support package provides support for a number of safety features which are essential for a DIN EN ISO 10218-1 certifiable robot system.

Please note:
The DIN EN ISO 10218-1 support is currently WORK IN PROGRESS.

Needed/supported hardware

In order for the safety features to work, one needs special hardware components supporting the required safety features. Currently, we test all our features against the following hardware setup:

  • Robot: Manipulator module PRBT 6
  • Safety controller: PSS 4000 (with a dedicated program)
  • Operating mode selector switch: PITmode
  • Enabling switch: PITenable
  • Pushbutton unit (with emergency stop): PITgatebox

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

The optional argument iso10218_support can be used to start ROS without connecting to a safety controller. Keep in mind that this disables all safety features, so it should only be used for debugging purposes.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Definitions

RUN_PERMITTED signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Please note: The ROS nodes only react on changes of the signal, so it may be necessary to re-trigger RUN_PERMITTED in order to enable the drives at start.

STO

The STO function (“Safe torque off”) of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

SBC

The SBC function (“Safe brake control”) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

0.5.23 (2021-07-21)

0.5.22 (2021-07-12)

  • Updating references to pilz_industrial_motion_planner
  • Contributors: Pilz GmbH and Co. KG

0.5.21 (2020-11-23)

  • Move OperationMode msg and GetOperationMode srv to pilz_msgs
  • Contributors: Pilz GmbH and Co. KG

0.5.20 (2020-11-17)

  • Fix catkin_lint errors (#459)
  • Update acceptancetest_stop1.md (#447)
  • Contributors: Pilz GmbH and Co. KG

0.5.19 (2020-09-07)

  • Enhance safety interface launchfiles
  • Use arguments of top-level launch file in modbus_client.launch
  • Remove unncessary launch arg
  • Contributors: Pilz GmbH and Co. KG

0.5.18 (2020-07-02)

  • Make AsyncTest header-only
  • Move modbus connection checker function in separate file
  • Contributors: Pilz GmbH and Co. KG

0.5.17 (2020-06-22)

  • Infinite modbus connection retries
  • Improved modbus error messages
  • New modbus api
  • Refactor components to use Cartesian speed monitor functionality in controller
  • Contributors: Pilz GmbH and Co. KG

0.5.16 (2020-05-15)

  • Update and apply clang-format (#387)
  • Make test-subfolder-names consistent (#380)
  • Extend stop1 acceptance test (#378)
  • Fix namespace in launch-file (#383)
  • Contributors: Pilz GmbH and Co. KG

0.5.15 (2020-05-03)

  • Add support for starting the robot without modbus
  • sto for hw definition is now called safety_hw everywhere
  • Moved system_info_node to prbt_support
  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Enable starting ROS without modbus connection
  • Contributors: Pilz GmbH and Co. KG

0.5.14 (2020-03-11)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Contributors: Pilz GmbH and Co. KG

0.5.13 (2019-12-04)

  • Use brake-test definitions from pilz_msgs
  • Contributors: Pilz GmbH and Co. KG

0.5.12 (2019-11-28)

  • Remove srv definition for speed override (moved to the package pilz_msgs)
  • Contributors: Pilz GmbH and Co. KG

0.5.11 (2019-11-22)

  • Fix clang compiler errors (#283)
  • Contributors: Pilz GmbH and Co. KG

0.5.10 (2019-10-08)

  • Add missing dependency on tf2_geometry_msgs (#264)
  • Minor fixes
  • Contributors: Pilz GmbH and Co. KG

0.5.9 (2019-10-07)

  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements
  • Contributors: Pilz GmbH and Co. KG
  • Add speed observing dependent on operation mode
  • Contributors: Pilz GmbH and Co. KG

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_operation_mode_setup.launch
    • Copyright (c) 2020 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • controller_name [default: manipulator_joint_trajectory_controller]
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
      • read_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_read_api_spec_$(arg safety_hw).yaml]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/safety_interface.launch
    • Copyright (c) 2020 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • safety_hw [default: pss4000]
      • read_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_read_api_spec_$(arg safety_hw).yaml]
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_$(arg safety_hw).yaml]
      • modbus_server_ip [default: $(eval '192.168.0.10' if safety_hw=='pss4000' else '169.254.60.1')]
      • has_braketest_support [default: true]
      • has_operation_mode_support [default: true]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.6.0
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_robots.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Control hardware functions of the PRBT manipulator like RUN_PERMITTED for Stop1 functionality.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Table of Contents

Introduction

The prbt_hardware_support package provides support for the Pilz hardware PNOZmulti and PSS 4000. A number of safety features are provided which are essential for a DIN EN ISO 10218-1 certifiable robot system (for more information see section about supported DIN EN ISO 10218-1 safety features).

Due to the fact, that the communication between the Pilz safety controllers and ROS is based on the Modbus communication protocol, the package also contains C++ files providing ROS support for the Modbus communication protocol.

In the system overview section, you can find a component diagram showing the overall architecture of our system. The component diagram shows all our nodes and the connections between them.

Please note:
The launch files included in the prbt_hardware_support package don’t need to be called directly by the user. They already are included in our top-level launch file (for more information on how-to run the PRBT robot with ROS see the pilz_robots-README and our application templates.

Supported DIN EN ISO 10218-1 safety features

The prbt_hardware_support package provides support for a number of safety features which are essential for a DIN EN ISO 10218-1 certifiable robot system.

Please note:
The DIN EN ISO 10218-1 support is currently WORK IN PROGRESS.

Needed/supported hardware

In order for the safety features to work, one needs special hardware components supporting the required safety features. Currently, we test all our features against the following hardware setup:

  • Robot: Manipulator module PRBT 6
  • Safety controller: PSS 4000 (with a dedicated program)
  • Operating mode selector switch: PITmode
  • Enabling switch: PITenable
  • Pushbutton unit (with emergency stop): PITgatebox

How-to activate and deactivate hardware features

The following table shows the names and the possible argument values of the features supported by our hardware. The features can be configured via arguments of prbt_support/launch/robot.launch.

Parameter Description Argument name in robot.launch Possible values in robot.launch
Gripper Model gripper <arg unset>, pg70
Safety Controller Hardware safety_hw pss4000, pnoz
Brake Test Support has_braketest_support true, false
Operation Mode Support has_operation_mode_support true, false
Visual Status Indicator visual_status_indicator true, false

With pg70 referring to Schunk PG plus 70. For more on gripper models see prbt_grippers.

The optional argument iso10218_support can be used to start ROS without connecting to a safety controller. Keep in mind that this disables all safety features, so it should only be used for debugging purposes.

Currently, we only support the following configurations depending on the safety controller. If the safety controller is changed, please ensure that the arguments are set as shown in the table.

Argument name Default value with PSS400 Default value with PNOZmulti
safety_hw pss4000 pnoz
has_braketest_support true false
has_operation_mode_support true true
visual_status_indicator true true

Definitions

RUN_PERMITTED signal

The RUN_PERMITTED is a state required in the safety controller for the robot to operate. It is sent to the ROS system to inform it in the case of an upcoming STO of the robot.

Please note: The ROS nodes only react on changes of the signal, so it may be necessary to re-trigger RUN_PERMITTED in order to enable the drives at start.

STO

The STO function (“Safe torque off”) of the robot arm is a safety function to immediately turn off torque of the drives. The behavior triggers the RUN_PERMITTED signal.

SBC

The SBC function (“Safe brake control”) of the robot arm is a safety function which is used in conjunction with the RUN_PERMITTED and prevents a motion when the torque of the drives is turned off.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package prbt_hardware_support

0.6.0 (2021-04-19)

  • Ports the driver to noetic. Includes moveing the trajectory planner to moveit
    • changes the references of the pilz_command_planner to the pilz_industrial_command_planner in moveit
    • fixes compatibility with ubuntu 20, noetic and colcon
    • changes CI to noetic and ubuntu 20
  • Contributors: Pilz GmbH and Co. KG

0.5.21 (2020-11-23)

  • Move OperationMode msg and GetOperationMode srv to pilz_msgs
  • Contributors: Pilz GmbH and Co. KG

0.5.20 (2020-11-17)

  • Fix catkin_lint errors (#459)
  • Update acceptancetest_stop1.md (#447)
  • Contributors: Pilz GmbH and Co. KG

0.5.19 (2020-09-07)

  • Enhance safety interface launchfiles
  • Use arguments of top-level launch file in modbus_client.launch
  • Remove unncessary launch arg
  • Contributors: Pilz GmbH and Co. KG

0.5.18 (2020-07-02)

  • Make AsyncTest header-only
  • Move modbus connection checker function in separate file
  • Contributors: Pilz GmbH and Co. KG

0.5.17 (2020-06-22)

  • Infinite modbus connection retries
  • Improved modbus error messages
  • New modbus api
  • Refactor components to use Cartesian speed monitor functionality in controller
  • Contributors: Pilz GmbH and Co. KG

0.5.16 (2020-05-15)

  • Update and apply clang-format (#387)
  • Make test-subfolder-names consistent (#380)
  • Extend stop1 acceptance test (#378)
  • Fix namespace in launch-file (#383)
  • Contributors: Pilz GmbH and Co. KG

0.5.15 (2020-05-03)

  • Add support for starting the robot without modbus
  • sto for hw definition is now called safety_hw everywhere
  • Moved system_info_node to prbt_support
  • Adopted default configuration for launchfiles
  • Renaming of STO into RUN_PERMITTED
  • Enable starting ROS without modbus connection
  • Contributors: Pilz GmbH and Co. KG

0.5.14 (2020-03-11)

  • Trim firmware string.
  • Rename waitForTopic() -> waitForMessage()
  • Add Status Indicator that shows operation mode, speed override, HW status and ROS status
  • Contributors: Pilz GmbH and Co. KG

0.5.13 (2019-12-04)

  • Use brake-test definitions from pilz_msgs
  • Contributors: Pilz GmbH and Co. KG

0.5.12 (2019-11-28)

  • Remove srv definition for speed override (moved to the package pilz_msgs)
  • Contributors: Pilz GmbH and Co. KG

0.5.11 (2019-11-22)

  • Fix clang compiler errors (#283)
  • Contributors: Pilz GmbH and Co. KG

0.5.10 (2019-10-08)

  • Add missing dependency on tf2_geometry_msgs (#264)
  • Minor fixes
  • Contributors: Pilz GmbH and Co. KG

0.5.9 (2019-10-07)

  • Add service for getting the global speed override
  • Add modbus register for enabling temporary movement
  • Add Frame speed monitoring
  • Test fixes and improvements

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/brake_test.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/brake_test_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/canopen_braketest_adapter_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/fake_operation_mode_setup.launch
    • Copyright (c) 2020 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • controller_name [default: manipulator_joint_trajectory_controller]
  • launch/fake_safety_interface.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_brake_test_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_operation_mode_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_adapter_run_permitted_node.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/modbus_client.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • modbus_server_ip [default: 192.168.0.10]
      • modbus_server_port [default: 502]
      • index_of_first_register_to_read [default: ]
      • num_registers_to_read [default: ]
      • safety_hw [default: pss4000]
      • read_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_read_api_spec_$(arg safety_hw).yaml]
  • launch/operation_mode.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/operation_mode_setup_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
  • launch/safety_interface.launch
    • Copyright (c) 2020 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • safety_hw [default: pss4000]
      • read_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_read_api_spec_$(arg safety_hw).yaml]
      • write_api_spec_file [default: $(find prbt_hardware_support)/config/modbus_write_api_spec_$(arg safety_hw).yaml]
      • modbus_server_ip [default: $(eval '192.168.0.10' if safety_hw=='pss4000' else '169.254.60.1')]
      • has_braketest_support [default: true]
      • has_operation_mode_support [default: true]
  • launch/stop1_executor_node.launch
    • Copyright (c) 2019 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .

Plugins

No plugins found.

Recent questions tagged prbt_hardware_support at Robotics Stack Exchange