Edit Content

Improvements

  • refacto: use roslibpy instead of rospy

Bug Fixes

  • fix: Fixed the conveyors modbus registers crashing

  • fix: publish on program_list topic when service update_program is called

Edit Content

Improvements

  • Check saved trajectory validity before executing it and output an error message if a waypoint exceeds the soft limits

  • No wait_for in nodes constructors. Use callbacks / lazy loading instead

  • Expose /niryo_robot_led_ring/led_ring_status topic though the led ring ros wrapper with 3 new properties:

    is_autonomous

    animation_mode

    color

  • Expose the service /niryo_robot_led_ring/set_user_animation though the led ring ros wrapper with the function set_user_animation. All the higher animation functions use this one under the hood

  • New demo program, which do the same actions than the previous one but in a more readable fashion

  • The demo program is also unique for all the robots

  • Add missing functions to JointsPosition object to make it set attr compatible

  • Add the module end_of_production_test to the niryo_robot_utils package

  • LedRingManager handle the led ring during the EOP test

  • Disable the timeout of the websocket clients

  • Add `optional: true` to eth interface

Bug Fixes

  • Fixed a typo in arm commander stop command service clients which prevented the service from being called during robot shutdown and when using the ROS wrapper

  • Fixed program player unit tests so that they reflect the entire finite state machine

  • Fixed Ned3pro calibration tip transform

  • Fixed a bug in the robot_state publisher which issued a warning when trying to divide by 0

  • Resolved multiple bugs that were preventing the simulated robot stack from functioning properly

  • Added missing tool parameters in simulation

  • Modbus ROS package is not started anymore in simulation mode

  • Fixed the control loop which is not releasing its lock if the loop frequency is too fast

  • Fake stepper motors does not require to be calibrated anymore in simulation

  • Check if a sound file is empty before loading it

  • The end effector panel still publish the buttons state while calibration is in progress

  • Fixed a bug which caused the cloud api to not update it’s S/N and rasp_id values when they are updated

  • Fixed a bug causing the check_connection service to ping the wrong endpoints for the reports micro services

  • fix: dhcp_server_reachable is more reliable

Edit Content

Improvements

  • Improve /niryo_robot/conveyor/feedback reactivity when a conveyor is added or removed
  • Added convenience function NiryoRosWrapper.init_with_node which init a ros node and returns a NiryoRosWrapper instance
  • Deprecate NiryoRosWrapper.move_relative
  • Added a param normalize=True to NiryoRosWrapper.msg_from_pose
  • Add security checks to NiryoRosWrapper.unset_conveyor and NiryoRosWrapper.control_conveyor
  • NiryoRosWrapper.get_conveyors_feedback now returns a list of dict instead of a list of ConveyorFeedback messages
  • Added the following functions to the TCP server:
    GET_POSE_V2
    FORWARD_KINEMATICS_V2
    INVERSE_KINEMATICS_V2
    GET_TCP
    GET_CONVEYORS_FEEDBACK
  • Revert –robot_type arg deletion but set it deprecated to avoid breaking changes

Bug Fixes

  • Fixed wrong camera and gripper transforms in Ned3pro and Ned2’s URDF for simulation
  • Fixed a bug which prevented the jog feature to work
  • Use lazy loading from database when getting the joints home position settings to prevent a bug where the robot was unable to access the database at boot time
  • Ned3pro digital inputs are now not inverted
  • Fixed the jog features
  • Fixed NiryoRosWrapper.__get_obj_from_args which didn’t work with JointsPosition
  • Fixed NiryoRosWrapper.forward_kinematics which returned v2 metadata despite being a v1 pose
  • Fixed NiryoRosWrapper.inverse_kinematics which returned was converting poses to v2 before doing the inverse kinematics
  • Fixed a bug in Pose which was allocating the same instance of PoseMetadata when using the constructor’s default metadata value
  • Fixed a bug where memory was allocated and not freed each time the program player’s node tried to connect to an inexistant device
  • Fixed a bug in Tool ROS wrapper which was not using the correct service type when calling tool reboot service
  • Use correct message type for ros subscriber in arm_state
  • WifiClient.get_configured_networks now parse correctly SSIDs with characters different than `[0-9a-zA-Z- ]`
  • Missing type for environment default insertion in base.py
  • Fixed a bug which caused to set the default ethernet mode to DHCP instead of AUTO if not in DB
  • WifiClient can handle SSIDs with any unicode characters
Edit Content

Improvements

  • Add utility script to configure the robot’s firewall
  • Add the ability to allow or prevent multiple NS clients to connect to the robot
  • Add utility script to configure the ability to allow or prevent multiple NS clients to connect to the robot simultaneously
  • Add database migration to the updater script
  • The robot hostname is now dynamically set at boot time. It uses the following format: <robot_type>-<rasp_id>
  • Added a mDNS service to allow the robot to be discovered on the network
  • Added topic /niryo_robot/max_acceleration_scaling_factor to check current acceleration percentage
  • Refacto of the wifi button handling: the name reflects its real job, managing solely the hotspot
  • Disabled torque of steppers not being calibrated during factory calibration
  • S3Client: Use internet connection observable to check if the robot is connected to the internet
  • S3Client: Use SystemctlWrapper to restart NTP service (used to sync the Raspberry Pi’s clock)
  • WebSocket: Return an acknowledge message on the register event containing the robot’s info (name, rasp_id, hw_version)
  • Allow multiple NS clients without needing to restart the service
  • New config handling: use lazy loading for variables dependent on other variables
  • AllowedNSClientsObservable now has a callback for external database updates
  • Add remaining number of NS available connections

Bug Fixes

  • Fix: use forward_kinematics_v2 in __ros_poses_from_robot_positions
  • Fix: P changes in DXL’s PID
  • Fixed a bug while setting acceleration from the /niryo_robot_arm_commander/set_acceleration_factor service, which always set it to 40%
  • Fixed the conveyors’ direction, which was inverted in the Modbus server
  • Fixed PoseMetada.from_dict, which wasn’t passing the ‘frame’ argument when using a PoseMetadata.v1
  • Fixed collision thresholds settings that weren’t correctly calling the setting of the 2nd threshold with the wrong datatype
  • Fixed a bug in __hotspot_state_callback that still processed the API response even if the request failed
  • Fixed tools transforms for Ned3 Pro
  • Fixed a missing offset in the URDF for Ned3 Pro
  • Fixed a goal tolerance too low for joint 1
  • Fix: increase remaining_ns_clients_slots instead of decreasing it
  • Fixed a misuse of Marker instead of Prefix in the S3Client
  • Fixed type errors in some standard_response calls
  • UpdateManager no longer bypasses the config_file_manager
  • Safe deserialization in the SocketIO event
  • Correct type hint for __auto_control_loop_thread