Skip to content

482 - Integrate RobotIQ - #491

Open
Jelmerdw wants to merge 17 commits into
mainfrom
482-integrate-robotiq
Open

482 - Integrate RobotIQ#491
Jelmerdw wants to merge 17 commits into
mainfrom
482-integrate-robotiq

Conversation

@Jelmerdw

@Jelmerdw Jelmerdw commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Description

Integration of the RobotIQ 3-finger gripper.

Fixes: #482

  • A controller was written in Python based on https://github.com/baha2r/robotiq3f_py
  • Next, the controller was ported to C++
  • In C++, the libmodbus library is used to communicate over the Modbus protocol
  • in C++, the Glaze + Magic Enum libraries are used to create JSON from the status struct, to easily share the status on a ROS topic as a JSON string.
  • The JSON message can be easily visualized in a terminal using the new print_json node in 'alliander_utilities'

Testing

Tested on hardware.

Documentation

  • I have updated the documentation (if necessary)

Additional Notes

Any relevant screenshots, logs, or context.

@Jelmerdw Jelmerdw changed the title Integrate robotiq Integrate RobotIQ Jul 13, 2026
@Jelmerdw Jelmerdw changed the title Integrate RobotIQ 482 - Integrate RobotIQ Jul 13, 2026
Comment thread alliander_robotics/alliander_robotiq/alliander_robotiq.Dockerfile Fixed
Jelmerdw added 3 commits July 29, 2026 08:40
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
@Jelmerdw
Jelmerdw force-pushed the 482-integrate-robotiq branch from ac1e244 to a89ccd6 Compare July 29, 2026 06:40
# Install python dependencies:
WORKDIR $WORKDIR
COPY $SRC_DIRECTORY/pyproject.toml /$WORKDIR/pyproject.toml
RUN uv sync --group alliander-robotiq \
# Install python dependencies:
WORKDIR $WORKDIR
COPY $SRC_DIRECTORY/pyproject.toml /$WORKDIR/pyproject.toml
RUN uv sync --group alliander-robotiq \
Comment thread alliander_robotics/alliander_robotiq/alliander_robotiq.Dockerfile Fixed
Jelmerdw added 2 commits July 29, 2026 13:24
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Jelmerdw added 5 commits July 30, 2026 06:21
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Comment thread docs/content/platforms.md Outdated
import rclpy
from alliander_interfaces.action import StringAction
from mashumaro.mixins.json import DataClassJSONMixin
from pyModbusTCP.client import ModbusClient

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was one of the reasons why this code is written in python and not cpp right?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was also wondering why we couldn't do this in C++, though it is based on Robotiq's own gripper controller of course

import rclpy
from alliander_interfaces.action import StringAction
from mashumaro.mixins.json import DataClassJSONMixin
from pyModbusTCP.client import ModbusClient

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was also wondering why we couldn't do this in C++, though it is based on Robotiq's own gripper controller of course

Comment thread alliander_robotics/alliander_robotiq/alliander_robotiq.Dockerfile Outdated
Jelmerdw and others added 2 commits August 3, 2026 09:26
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
"""

platform_type: str = "Gripper"
ip_address: str = "192.168.1.11"
# Runtime stage
##############################

FROM ${BASE_IMAGE}
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
RUN pip install uv --break-system-packages

# Upgrade CMake:
RUN pip install --upgrade cmake --break-system-packages
Comment thread alliander_robotics/alliander_core/alliander_core.Dockerfile Fixed
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
Signed-off-by: Jelmer de Wolde <jelmer.de.wolde@alliander.com>
@sonarqubecloud

sonarqubecloud Bot commented Aug 6, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integrate Robotiq 3-Finger Gripper

4 participants