/ Release notes
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
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
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
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