Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
178d181
First version
enrico391 Jun 11, 2025
df00c9f
Fix problem print N or Nm with prismatic and revolute joints
enrico391 Jun 11, 2025
78ff4f0
Small change in function to return type of joint
enrico391 Jun 11, 2025
d2011c0
Add function to get single joint placement
enrico391 Jun 11, 2025
857ed84
Small changes
enrico391 Jun 12, 2025
2c2f47a
Add license
enrico391 Jun 12, 2025
29341d0
Fix license
enrico391 Jun 12, 2025
2f0b222
Change function to create external force to support multiple forces
enrico391 Jun 12, 2025
7dbda98
Add possibility to select multiple payloads
enrico391 Jun 12, 2025
1e1b7ae
Change return type in function get_joint_placement
enrico391 Jun 13, 2025
c06f566
Remove labels of gripper joints in the rviz visualization
enrico391 Jun 13, 2025
022efe4
First version with payload
enrico391 Jun 13, 2025
48080c7
Add payload selection as sub-menu
enrico391 Jun 15, 2025
91bd871
Small change in create_ext_force, add possibility to use array of masses
enrico391 Jun 15, 2025
99918d9
Add possibility to select multiple frames with different paylaods
enrico391 Jun 15, 2025
9baedcd
add function to calculate all possible configuration
enrico391 Jun 15, 2025
0f551b0
Add comments
enrico391 Jun 19, 2025
4996963
Update todo
enrico391 Jun 19, 2025
592c5a0
First version of workspace analysis
enrico391 Jun 20, 2025
e5055d5
First working solution with pinocchio IK solution
enrico391 Jun 21, 2025
d351afa
Add button in the menu to calculate the current workspace
enrico391 Jun 21, 2025
899ef7a
Add joint limits in IK solver
enrico391 Jun 21, 2025
3558146
Add new Ik solver with joint limits, add colors to points
enrico391 Jun 21, 2025
a13814b
add color visualization in workspace
enrico391 Jun 21, 2025
847e234
Add geometry model
enrico391 Jun 22, 2025
6fb8d3f
Add selection of possible configuration in the workspace
enrico391 Jun 24, 2025
ca0aa5f
added dropdown menu selection to display possible configurations
enrico391 Jun 24, 2025
6ae3bb2
Add function to get the right format of joint configuration from join…
enrico391 Jun 26, 2025
2da75da
Fix wrong behavior in the reset function
enrico391 Jun 26, 2025
38a8659
Added joint state publisher to visualize possible calculated configur…
enrico391 Jun 26, 2025
fbf6c0b
Added name for each point in the workspace point cloud
enrico391 Jun 26, 2025
21b40a4
small changes
enrico391 Jun 26, 2025
a986ea4
Fix wrong change in checked item
enrico391 Jun 26, 2025
3fe7055
Changes the way to publish arrow forces and add visualization of torq…
enrico391 Jun 26, 2025
5b0af54
resolve wrong torques calculation in possible workspace
enrico391 Jun 27, 2025
ebbc865
Changes to visualize workspace and get better handling in joint states
enrico391 Jun 27, 2025
689136d
added calculation of workspace without masses and get offset in z axi…
enrico391 Jul 2, 2025
e73b940
added publisher of joint state when there isn't a selected configurat…
enrico391 Jul 2, 2025
e6d3208
added calculation workspace for second arm
enrico391 Jul 2, 2025
1d811d2
update comments
enrico391 Jul 3, 2025
bdfbad2
change method of calculation inverse kinematics, now the error is onl…
enrico391 Jul 3, 2025
ab6276f
add collission to verify configurations
enrico391 Jul 4, 2025
dcc67df
change the publisher of workspace points with only the end effector p…
enrico391 Jul 4, 2025
93afe77
add possibility to select color target for visualization points in th…
enrico391 Jul 7, 2025
67d1651
separate arms in color visualization with target the max current torque
enrico391 Jul 8, 2025
ec7a16a
small changes
enrico391 Jul 9, 2025
cc16d6e
Apply suggestions from code review
enrico391 Jul 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
796 changes: 673 additions & 123 deletions dynamic_payload_analysis_core/dynamic_payload_analysis_core/core.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dynamic_payload_analysis_core/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<version>0.0.0</version>
<description>Core package with calculation for torques calculator</description>
<maintainer email="enrimoro003@gmail.com">morolinux</maintainer>
<license>TODO: License declaration</license>
<license>Apache License 2.0</license>

<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
Expand Down
6 changes: 3 additions & 3 deletions dynamic_payload_analysis_core/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='morolinux',
maintainer='Enrico Moro',
maintainer_email='enrimoro003@gmail.com',
description='TODO: Package description',
license='TODO: License declaration',
description='This package implements core functionalities for dynamic payload analysis in robotics, focusing on torque calculations and external force handling.',
license='Apache License 2.0',
tests_require=['pytest'],
entry_points={
'console_scripts': [
Expand Down
Empty file.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions dynamic_payload_analysis_ros/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>dynamic_payload_analysis_ros</name>
<version>0.0.0</version>
<description>This package provides tools for dynamic payload analysis in robotics with a focus on torque calculations and external force handling.</description>
<maintainer email="enrimoro003@gmail.com">morolinux</maintainer>
<license>Apache License 2.0</license>

<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>

<export>
<build_type>ament_python</build_type>
</export>
</package>
Empty file.
4 changes: 4 additions & 0 deletions dynamic_payload_analysis_ros/setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[develop]
script_dir=$base/lib/dynamic_payload_analysis_ros
[install]
install_scripts=$base/lib/dynamic_payload_analysis_ros
27 changes: 27 additions & 0 deletions dynamic_payload_analysis_ros/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from setuptools import find_packages, setup

package_name = 'dynamic_payload_analysis_ros'

setup(
name=package_name,
version='0.0.0',
packages=find_packages(exclude=['test']),
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='Enrico Moro',
maintainer_email='enrimoro003@gmail.com',
description='This package provides graphics tools in Rviz for dynamic payload analysis in robotics with a focus on torque calculations and external force handling.',
license='Apache License 2.0',
tests_require=['pytest'],
entry_points={
'console_scripts': [
'node_rviz_visualization = dynamic_payload_analysis_ros.rviz_visualization:main',
'node_rviz_visualization_menu = dynamic_payload_analysis_ros.rviz_visualization_menu:main',
],
},
)
25 changes: 25 additions & 0 deletions dynamic_payload_analysis_ros/test/test_copyright.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from ament_copyright.main import main
import pytest


# Remove the `skip` decorator once the source file(s) have a copyright header
@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.')
@pytest.mark.copyright
@pytest.mark.linter
def test_copyright():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found errors'
25 changes: 25 additions & 0 deletions dynamic_payload_analysis_ros/test/test_flake8.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2017 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from ament_flake8.main import main_with_errors
import pytest


@pytest.mark.flake8
@pytest.mark.linter
def test_flake8():
rc, errors = main_with_errors(argv=[])
assert rc == 0, \
'Found %d code style errors / warnings:\n' % len(errors) + \
'\n'.join(errors)
23 changes: 23 additions & 0 deletions dynamic_payload_analysis_ros/test/test_pep257.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from ament_pep257.main import main
import pytest


@pytest.mark.linter
@pytest.mark.pep257
def test_pep257():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found code style errors / warnings'