EricssonResearch / EricssonResearch/arms

Create an ABB Class

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
ABB Class language: Python Overview
Dominant language
Python
Stars
6
Forks
2
PR merge metrics
No merged PRs in 30d

Description

A class that handles communication and coordination between the Raspberry pi and the IRC5.

**Requirements:**

0. The ABB Class shall establish a two-way connection with the IRC5 using ethernet (TCP/IP).

1. The ABB Class shall be able to terminate the ethernet communication with IRC5.

2. When establishing/initializing connection with the IRC5, the ABB Class shall fetch the necessary information, such as IP-adress, Port etc. from the config.json file.

3. If the config.json file cannot be accessed, then the ABB Class shall use predefined values.

4. The ABB Class shall determine the type of movement executed by the robot. For example if function MoveL on the IRC5 should be called or another move function.

5. The ABB Class shall determine the speed of the movement in [mm/s].

6. The ABB Class shall determine the coordinates at the end of the movement.

7. When the ABB Class positions the end effector, it shall first move the end effector perpendicularly to the work object until a safe z distance (tbd) has been reached before moving in other directions. (e.g. we are at position [0,0,0] and want to move to [3,5,0]. This will result in 3 separate move messages and commands to the IRC5. First: move to [0,0,10] then move to [3,5,10] and lastly move to [3,5,0]).

8. If the force in any axis exceeds the limit, the ABB Class shall issue an emergency break message to the IRC5.

9. The ABB Class shall perform sanity checks to ensure that no limits are crossed. For example when moving in z direction, we should not be able to send a message to the IRC5 to move to position [z = - 1000].

10. The ABB Class shall log all results from the movements issued and sent to the IRC5. For example: did the planned movement pass the sanity check or not? Did the ABB Class successfully send the message to the IRC5 or not?

11. The ABB Class shall log all results from the movements acknowledged/performed by the IRC5. Did the IRC5 report.

12. If no messages are received from the IRC5 within a set time limit (tbd) of issuing a successful move command, the ABB Class shall send the emergency stop message.

13. When the current position of the end effector is required, the ABB Class shall obtain this information by querying the IRC5. It may be beneficial to be able to retrieve the position as expressed in both the DU coordinates (x, y, z) as well as robotic end effector coordinates (pos, rotation(quaternion) ).

14. The ABB Class shall perform a handshaking regarding the coordinate system. This means that the coordinate system between the IRC5 and the ABB Class match.

15. The ABB Class shall be able to save/store certain positions in a suitable data structure to be accessed at a later point in time. (e.g. when manipulating SFP in position A, the coordinates of where position A is saved).

16. The ABB Class shall know how many SFP's have been taken form the helper station and keep track of the position for the next available one.

17. The ABB Class shall be aware of the end effector length depending on operation mode. (e.g. only gripper has one length, gripper + cable is another length, gripper + cable + SFP is a third length). This information is used to modify the movement commands so that the position given to the IRC5 results in the tip of the object will be located at the specified point.

18. The ABB Class shall be able to move in a relative manner as well as an absolute manner. For example absolute movement is defined as "move to [5,7,10]". Relative movement is defined as "from where you are, move 0,1 in y-direction".

19. _**Optional**_ The ABB Class should be able to control zone data, meaning offset to a specific point when moving. Might be useful when the end effector length changes depending on the phases.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing project entry points and the config.json handling for Raspberry Pi to IRC5 communication; no specific files or tests are named in the issue. Before implementation, clarify the IRC5 protocol, safety limits, coordinate conventions, movement data, and acceptance tests for the many required behaviors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot, networking, robotics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.