Skip to content
Snippets Groups Projects
Commit 9a9b8478 authored by René Ebeling's avatar René Ebeling
Browse files

Refactor and update ROS 2 point cloud processing nodes

- Updated submodule reference for Universal_Robots_ROS2_Gazebo_Simulation.
- Removed `moveit_stop.py` and `random_pcl.py` files as they are no longer needed.
- Renamed and refactored `serial_to_pcl_node.py` to `moveit_stop_node.py` with enhanced functionality for trajectory execution based on point cloud data.
- Updated `serial_to_pcl_node.py` to include distance filtering for published point clouds.
- Deleted `test_transform.py` as it is redundant with the new implementations.
- Updated `setup.py` to reflect changes in node names and structure.
- Added new implementations for `pcl_filter_node.py` and `random_pcl_pub_node.py` to improve point cloud generation and filtering capabilities.
- Enhanced point cloud processing logic to improve performance and maintainability.
parent 56539e39
Branches
No related tags found
No related merge requests found
@article{schaffert_master_nodate,
title = {Master of {Science} {Thesis} {TPRMM} 2019 {KTH} {Industrial} {Engineering} and {Management} {Production} {Engineering} {SE}-100 44 {Stockholm}},
abstract = {A close collaboration between humans and robots is one approach to achieve flexible production flows and a high degree of automation at the same time. In human-robot collaboration, both entities work alongside each other in a fenceless, shared environment. These workstations combine human flexibility, tactile sense and intelligence with robotic speed, endurance, and accuracy. This leads to improved ergonomic working conditions for the operator, better quality and higher efficiency. However, the widespread adoption of human-robot collaboration is limited by the current safety legislation. Robots are powerful machines and without spatial separation to the operator the risks drastically increase. The technical specification ISO/TS 15066 serves as a guideline for collaborative operations and supplements the international standard ISO 10218 for industrial robots. Because ISO/TS 15066 represents the first draft for a coming standard, companies have to gain knowledge in applying ISO/TS 15066. Currently, the guideline prohibits a collision with the head in transient contact. In this thesis work, a safety system is designed which is in compliance with ISO/TS 15066 and where certified safety technologies are used. Four theoretical safety system designs with a laser scanner as a presence sensing device and a collaborative robot, the KUKA lbr iiwa, are proposed. The system either stops the robot motion, reduces the robot’s speed and then triggers a stop or only activates a stop after a collision between the robot and the human occurred. In system 3 the size of the stop zone is decreased by combining the speed and separation monitoring principle with the power- and force-limiting safeguarding mode. The safety zones are static and are calculated according to the protective separation distance in ISO/TS 15066. A risk assessment is performed to reduce all risks to an acceptable level and lead to the final safety system design after three iterations. As a proof of concept the final safety system design is implemented for a demonstrator in a laboratory environment at Scania. With a feasibility study, the implementation differences between theory and praxis for the four proposed designs are identified and a feasible safety system behavior is developed. The robot reaction is realized through the safety configuration of the robot. There three ESM states are defined to use the internal safety functions of the robot and to integrate the laser scanner signal. The laser scanner is connected as a digital input to the discrete safety interface of the robot controller. To sum up, this thesis work describes the safety system design with all implementation details.},
language = {en},
author = {Schaffert, Carolin},
file = {PDF:/home/sochi/Zotero/storage/9IJFXE6P/Schaffert - Master of Science Thesis TPRMM 2019 KTH Industrial Engineering and Management Production Engineering.pdf:application/pdf},
}
@book{noauthor_8th_2015,
address = {Berlin},
title = {8th {International} {Conference} {Safety} of {Industrial} {Automated} {Systems} - {SIAS} 2015 18-20 {November} 2015 {Königswinter}, {Germany}. {Proceedings}},
isbn = {978-3-86423-163-6},
language = {en},
publisher = {Deutsche Gesetzliche Unfallversicherung (DGUV)},
year = {2015},
note = {OCLC: 1129899683},
file = {PDF:/home/sochi/Zotero/storage/QHVMXSTD/2015 - 8th International Conference Safety of Industrial Automated Systems - SIAS 2015 18-20 November 2015.pdf:application/pdf},
}
@article{schaffert_master_nodate,
title = {Master of {Science} {Thesis} {TPRMM} 2019 {KTH} {Industrial} {Engineering} and {Management} {Production} {Engineering} {SE}-100 44 {Stockholm}},
abstract = {A close collaboration between humans and robots is one approach to achieve flexible production flows and a high degree of automation at the same time. In human-robot collaboration, both entities work alongside each other in a fenceless, shared environment. These workstations combine human flexibility, tactile sense and intelligence with robotic speed, endurance, and accuracy. This leads to improved ergonomic working conditions for the operator, better quality and higher efficiency. However, the widespread adoption of human-robot collaboration is limited by the current safety legislation. Robots are powerful machines and without spatial separation to the operator the risks drastically increase. The technical specification ISO/TS 15066 serves as a guideline for collaborative operations and supplements the international standard ISO 10218 for industrial robots. Because ISO/TS 15066 represents the first draft for a coming standard, companies have to gain knowledge in applying ISO/TS 15066. Currently, the guideline prohibits a collision with the head in transient contact. In this thesis work, a safety system is designed which is in compliance with ISO/TS 15066 and where certified safety technologies are used. Four theoretical safety system designs with a laser scanner as a presence sensing device and a collaborative robot, the KUKA lbr iiwa, are proposed. The system either stops the robot motion, reduces the robot’s speed and then triggers a stop or only activates a stop after a collision between the robot and the human occurred. In system 3 the size of the stop zone is decreased by combining the speed and separation monitoring principle with the power- and force-limiting safeguarding mode. The safety zones are static and are calculated according to the protective separation distance in ISO/TS 15066. A risk assessment is performed to reduce all risks to an acceptable level and lead to the final safety system design after three iterations. As a proof of concept the final safety system design is implemented for a demonstrator in a laboratory environment at Scania. With a feasibility study, the implementation differences between theory and praxis for the four proposed designs are identified and a feasible safety system behavior is developed. The robot reaction is realized through the safety configuration of the robot. There three ESM states are defined to use the internal safety functions of the robot and to integrate the laser scanner signal. The laser scanner is connected as a digital input to the discrete safety interface of the robot controller. To sum up, this thesis work describes the safety system design with all implementation details.},
language = {en},
author = {Schaffert, Carolin},
file = {PDF:/home/sochi/Zotero/storage/9IJFXE6P/Schaffert - Master of Science Thesis TPRMM 2019 KTH Industrial Engineering and Management Production Engineering.pdf:application/pdf},
}
@book{noauthor_8th_2015,
address = {Berlin},
title = {8th {International} {Conference} {Safety} of {Industrial} {Automated} {Systems} - {SIAS} 2015 18-20 {November} 2015 {Königswinter}, {Germany}. {Proceedings}},
isbn = {978-3-86423-163-6},
language = {en},
publisher = {Deutsche Gesetzliche Unfallversicherung (DGUV)},
year = {2015},
note = {OCLC: 1129899683},
file = {PDF:/home/sochi/Zotero/storage/QHVMXSTD/2015 - 8th International Conference Safety of Industrial Automated Systems - SIAS 2015 18-20 November 2015.pdf:application/pdf},
}
@article{schaffert_master_nodate,
title = {Master of {Science} {Thesis} {TPRMM} 2019 {KTH} {Industrial} {Engineering} and {Management} {Production} {Engineering} {SE}-100 44 {Stockholm}},
abstract = {A close collaboration between humans and robots is one approach to achieve flexible production flows and a high degree of automation at the same time. In human-robot collaboration, both entities work alongside each other in a fenceless, shared environment. These workstations combine human flexibility, tactile sense and intelligence with robotic speed, endurance, and accuracy. This leads to improved ergonomic working conditions for the operator, better quality and higher efficiency. However, the widespread adoption of human-robot collaboration is limited by the current safety legislation. Robots are powerful machines and without spatial separation to the operator the risks drastically increase. The technical specification ISO/TS 15066 serves as a guideline for collaborative operations and supplements the international standard ISO 10218 for industrial robots. Because ISO/TS 15066 represents the first draft for a coming standard, companies have to gain knowledge in applying ISO/TS 15066. Currently, the guideline prohibits a collision with the head in transient contact. In this thesis work, a safety system is designed which is in compliance with ISO/TS 15066 and where certified safety technologies are used. Four theoretical safety system designs with a laser scanner as a presence sensing device and a collaborative robot, the KUKA lbr iiwa, are proposed. The system either stops the robot motion, reduces the robot’s speed and then triggers a stop or only activates a stop after a collision between the robot and the human occurred. In system 3 the size of the stop zone is decreased by combining the speed and separation monitoring principle with the power- and force-limiting safeguarding mode. The safety zones are static and are calculated according to the protective separation distance in ISO/TS 15066. A risk assessment is performed to reduce all risks to an acceptable level and lead to the final safety system design after three iterations. As a proof of concept the final safety system design is implemented for a demonstrator in a laboratory environment at Scania. With a feasibility study, the implementation differences between theory and praxis for the four proposed designs are identified and a feasible safety system behavior is developed. The robot reaction is realized through the safety configuration of the robot. There three ESM states are defined to use the internal safety functions of the robot and to integrate the laser scanner signal. The laser scanner is connected as a digital input to the discrete safety interface of the robot controller. To sum up, this thesis work describes the safety system design with all implementation details.},
language = {en},
author = {Schaffert, Carolin},
file = {PDF:/home/sochi/Zotero/storage/9IJFXE6P/Schaffert - Master of Science Thesis TPRMM 2019 KTH Industrial Engineering and Management Production Engineering.pdf:application/pdf},
}
......@@ -11,7 +11,7 @@ from sensor_msgs.msg import PointField
class PointCloudProcessor(Node):
def __init__(self):
super().__init__('pointcloud_processor')
super().__init__('moveit_stop_node')
self.subscription = self.create_subscription(
PointCloud2,
......
......@@ -10,7 +10,7 @@ import sensor_msgs_py.point_cloud2 as pc2
class PointCloudProcessor(Node):
def __init__(self):
super().__init__('pointcloud_processor')
super().__init__('pcl_filter_node')
self.subscription = self.create_subscription(
PointCloud2,
'pcl',
......
......@@ -28,7 +28,7 @@ class SerialListPublisher(Node):
A ROS 2 node that reads data from a serial port, processes it, and publishes it as a PointCloud2 message.
"""
def __init__(self, serial_port='/dev/ttyACM0', baudrate=115200):
super().__init__('serial_list_publisher') # Initialize the ROS 2 node with a name
super().__init__('serial_to_pcl_node') # Initialize the ROS 2 node with a name
self.declare_parameter('parent_frame', 'vl53l7cx_link') # Declare a parameter for the parent frame
self.parent_frame = self.get_parameter('parent_frame').get_parameter_value().string_value # Get the parameter value
......@@ -73,6 +73,7 @@ class SerialListPublisher(Node):
points_all.append(self.create_pcd_from_distance(reshaped_array, key))
points = None
points = np.vstack(points_all) # Combine all points into a single array
points = self.distance_filter(points, 3) # Filter points based on distance threshold
pcd = self.create_point_cloud(points, self.parent_frame) # Create a PointCloud2 message
self.pcd_publisher.publish(pcd) # Publish the point cloud
......
......@@ -36,9 +36,9 @@ setup(
'serial_to_pcl_node = serial_to_pcl.serial_to_pcl_node:main',
'pcl_rob_node = serial_to_pcl.pcl_rob_node:main',
'pcl_rob_v2_node = serial_to_pcl.pcl_rob_v2_node:main',
'random_pcl_node = serial_to_pcl.random_pcl:main',
'moveit_stop_node = serial_to_pcl.moveit_stop:main',
'pcl_filter_node = serial_to_pcl.test_transform:main',
'random_pcl_node = serial_to_pcl.random_pcl_pub_node:main',
'moveit_stop_node = serial_to_pcl.moveit_stop_node:main',
'pcl_filter_node = serial_to_pcl.pcl_filter_node:main',
],
},
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment