/ Release notes
Ameliorations
- refacto : Utilisation de roslibpy au lieu de rospy
Bug Fixes
- Fix : le registre modbus des convoyeurs qui crashait
- Fix : Publication sur le topic quand le serviceupdate_program est appelé
Améliorations
- Verifie la validité de la trajectoire avant de l’exécuter et affiche un message d’erreur si un des points est en dehors de la limite
Pas de wait_for dans les noeuds des constructeurs. Utilisation à la place de callback / lazy loading
Expose le topic /niryo_robot_led_ring/led_ring_status à travers le led ring ros wrapper pour les 3 propriétés suivantes :
is_autonomous
animation_mode
color
Expose le service /niryo_robot_led_ring/set_user_animation à travers le led ring ros wrapper avec la fonction set_user_animation. Toutes les fonctions d’animation de niveau supérieur utilisent celle-ci en interne.
Nouveau programme de démonstration, qui effectue les mêmes actions que le précédent mais de manière plus lisible dans le programme
Le programme de démonstration est également unique pour tous les robots.
Ajouter les fonctions manquantes à l’objet JointsPosition pour le rendre compatible avec set attr.
Désactive le timeout de la WebSocket client.
Ajout optional: true à l’interface eth.
Bug Fixes
- Fix une typo dans le service client arm commander ce qui previent au service d’être appelé pendant l’arret du robot et lors de l’utilisation de ros wrapper
Corrigé la transformation de la pointe de calibration du Ned3pro.
- Fix un bug dans robot_state publisher ce qui évite une alerte quand on divise par 0
- Résolution de plusieurs bugs liés à la simulation du robot qui l’empechait de fonctionner correctement
Ajout d’accessoires manquants dans la simulation
Le package Modbus n’est plus démarré pendant la simulation
Fixed the control loop which is not releasing its lock if the loop frequency is too fast
- Fix les boucles de contrôle qui ne libéraient pas son verrouillage si la fréquence de la boucle était trop rapide.
Les moteurs fictifs ne nécessitent plus d’être calibrés en simulation.
Vérifie si un fichier audio est vide avant de le charger.
Le end effector continuait de publier l’état des boutons pendant que le calibrage est en cours.
Un bug empêchait l’API cloud de mettre à jour ses valeurs S/N et rasp_id
Correction : dhcp_server_reachable est plus fiable.
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_poseAdd 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_FEEDBACKRevert –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