Edit Content

New Features

Implemented NED3 hardware changes into niryo_robot_rpi package

Add Ned3 Calibration support

Add support for Conveyor with ned3 stepper

Add support for vacuum pump v2

Add velocity and acceleration profile for vacuum pump v2

Change the robot’s URDF in order to follow the Denavit-Hartenberg convention.

New Pose and JointsPosition

The /niryo_robot_arm_commander/robot_action action server can handle old and new TCP versions using `tcp_version in ArmMoveCommand.msg
Edit niryo_robot_poses_handlers’ grip files according to the new TCP orientation

Added `pose_version and tcp_version to NiryoPose.msg

New generic classes designed to be the universal classes to represent the data : JointsPosition , JointsPositionMetadata, Pose, PoseMetadata New niryo_robot_poses_handlers/transform_functions functions: `convert_legacy_rpy_to_dh_convention() and convert_dh_convention_to_legacy_rpy()
New ros_wrapper.NiryoRosWrapper functions which can’t take either Pose or JointsPosition objects: move replace move_joints, move_pose and move_linear_pose, jog_shift, replace jog_joints_shift and jog_pose_shift, pick, replace pick_from_pose, place, replace place_from_pose, execute_trajectory, replace execute_trajectory_from_poses and execute_trajectory_from_poses_and_joints, compute_trajectory, replace compute_trajectory_from_poses and compute_trajectory_from_poses_and_joints.

New TCP server commands: GET_COLLISION_DETECTED, CLEAR_COLLISION_DETECTED, HANDSHAKE, MOVE, JOG, PICK, PLACE, EXECUTE_TRAJECTORY New tools translation transforms according to the new TCP orientation

Add Hardware ID to the conveyors, only for v2 and v3 The new robot pose is published on /niryo_robot/robot_state_v2 in order to keep compatibility with older NiryoStudios

The new robot relative pose is published on /niryo_robot_poses_handlers/relative_pose_v2 in order to keep compatibility with older NiryoStudios

Add a service to get conveyor hardware ID to be able to differentiate them (conveyor v2 and v3), service name: /niryo_robot/conveyor/get_hardware_id

Add services to get forward and inverse kinematics using the new TCP convention (Z axis pointing forward)

Add a ROS wrapper function to get the forward kinematics using the new TCP convention (Z axis pointing forward)

Add a ROS topic /niryo_robot_tools_commander/tcp_v2 which publishes the transform from hand_link to the TCP following the new TCP convention

Change robot’s pose limits for Ned3 to match its reachability

New ethernet mode: auto Detects automatically if the robot is connected on a DHCP network. If yes, switch to DHCP mode, else switch to IPV4LL mode

Improvements

Use the I/O panel version instead of the robot hardware version to differentiate the implementations

Created a set of classes gpio_expander_adapters. Theses classes are adapters in order to handle GPIOs the same way MCP IOs are handled

Update of the DACx0501 driver NiryoRosWrapper.vision_pick now can take an optional observation pose `obs_pose

Add speed limit pourcentage for the conveyor When a tool stops moving, a position-holding command is sent instead of resending the command with the max position, drastically reducing temperature rise

Update dynamixels PID (Axis 4 to 6)

Bug Fixes

Stopping a program now send SIGTERM and then SIGKILL after 3 seconds if the program didn’t exit gracefully

Grasp and release actions now use a feedback to check if they finished their motion instead of stopping after a fixed time

Debounce emergency stop resume to avoid to resume on small 12v spikes

Renaming a dynamic frame also rename its name in the transform NiryoRosWrapper.get_workspace_list no longer return an error TCP server `__send_answer_with_payload encode the payload only if it's not already encoded

Fix intermitent delay in the control loop caused by a ROS spinOnce call in the control loop Fixed a bug which made the FirmwareUpdater crash if the end effector version is not set

Edit Content

Improvements

The service /niryo_robot/kinematics/forward now includes status and message in its response.
The service /niryo_robot/kinematics/inverse now includes status and message in its response.
Introduction of a new Modbus server.
Enhanced functionalities in ros_wrapper: get_current_tool_state, get_tcp, get_digital_io_mode, get_available_disk_size, get_ros_logs_size, control_video_stream.
Addition of new endpoint in system_api_client: get_system_version_current.
Increased threshold for end effector collision detection.

Bug Fixes

The set_program_autorun service did not consider the mode when transitioning to “DISABLE”.
Correction made to the /niryo_robot/kinematics/forward service, which occasionally crashed due to transformation extrapolation.
In ros_wrapper, __conveyor_id_to_conveyor_number no longer depends on currently attached conveyors.
Fixed incorrect docstrings in ros_wrapper.
Fixed a bug preventing vision captures with enabled TCP transformation.
Fixed a bug that prevented a running program process from stopping completely.
Fixed a bug in NiryoActionClient that did not handle response timeouts.
Fixed a bug that could cause the tool commander action server to remain permanently blocked in active mode.
Fixed a bug preventing the tool commander action server from accepting new goals once a goal with a future date was published.