MotoROS2 is now built against micro_ros_motoplus version 20250328.
Changes:
- Increase internal MTU between MotoROS2 and the micro-ROS Agent to support larger
JointStatemessages (#11) - Support Agent port numbers longer than 5 digits (#374)
- Correct configuration item name for custom INFORM jobs (#389)
- Always print values for all axes in debug messages (#398)
- Correct time conversion math (#411)
- Correct memory management in unit tests (#412)
Added support for ROS2 Jazzy Jalisco! (#337, #371)
MotoROS2 is now built against micro_ros_motoplus version 20250207.
Breaking changes have been introduced in this version of MotoROS2, and failure to update and rebuild the workspace will lead to the inability to receive messages from MotoROS2 and/or crashes of client applications.
Breaking changes:
- Default joint names for single-group systems have been simplified (
joint_M) (#340) - Changes to
motoros2_interfacesbuilt intomicro_ros_motoplusmean that you must update your client PC's ROS2 workspaces usingmotoros2_client_interface_dependenciesversion0.1.1. See the instructions here.
New functionality:
- Allow users to insert USB with config file after bootup (#299)
- rcl and rclc errors now get forwarded to the user for simplified troubleshooting (#306)
- Users can enable/disable debug broadcast and choose debug broadcast port (#309)
Changes:
- Error messages for
start_traj_modeandstart_point_queue_modeare more accurate and descriptive (#297) - Fix response if
reset_errorservice is called when major alarm is active (#298) - Fixed condition so tool 63 can be selected properly (#314)
- Fix memory leaks (#325, #35)
- The
queue_traj_pointservice will give more detailed error messages if trajectory initialization fails (#341) - Fixed FJT goal tolerance violation message (#345)
- Fix bug where
stop_traj_modewould have response message indicating failure even after succeeding (#352) - Always check for duplicate joint names in
queue_traj_point(#358) - General refactor of code that processes incoming trajectories (#358)
- The MAC address used for the default node name and key name now always matches the MAC address used for ROS traffic (#365)
MotoROS2 is now built against micro_ros_motoplus version 20240710.
Note that ROS 2 Foxy and Galactic are EOL and do not receive updates anymore (neither feature nor security updates). This is the last release of MotoROS2 to support Foxy and Galactic and users are encouraged to upgrade to a supported ROS 2 release if possible.
New functionality:
- Raise alarm on multi-group systems without calibration data and TF enabled (#169)
- Check Cycle Mode is set to Auto (#212)
- Switch Cycle Mode to Auto automatically when needed (#229)
Changes:
- Fix
start_traj_modefailure with Eco Mode active (#214) - Correct goal tolerance parsing in the
FollowJointTrajectoryaction server (#241)
Maintenance release.
New functionality:
- Goal validation now includes a check for duplicated joint names (#162)
- INFORM job validator now prints offending lines to the debug log (#167)
Changes:
- Lan port MAC addresses containing 0s no longer cause initialisation failures (#145)
- Alarm & subcode documentation was updated to include missing subcodes (#151)
- Improved support for trajectory execution with an active FSU (#157)
- Generated INFORM jobs no longer fail validation after reboot on YRC1000micro (#168)
- Corrected unit conversion and parameter retrieval for Base-axis TF transforms (#172)
First release with official support for DX200 controllers.
New functionality:
- Added link-state monitor: LAN cable disconnects now cause immediate MotoROS2 shutdown (#27)
- Added full DX200 support (#49)
- Debug messages are now stamped with the time they are logged at (#61)
- Debug log now includes full configuration, including defaults, instead of only parsed keys (#81)
PANELBOX.LOGand the M+ application list show the supported ROS 2 version (#126)
Changes:
- Improved error messages returned by trajectory processing code (
FollowJointTrajectoryaction server) (#63) - Added missing alarm description for
8011[55](#70) MotoROS_PlatformLibupdated to0.2.11(#90)- An active error no longer causes excessive debug logger traffic (#105)
/start_traj_mode: now returns improved error messages in caseINIT_ROScould not be started (#106)- MotoROS2 binary names have been shortened (#109, #132)
/start_traj_mode: don't attempt to enable servos and/or startINIT_ROSif there are active errors and/or alarms (#115)- Clarified installation procedure and troubleshooting with active FSU (#130)
First public release.
Breaking change for beta1 participants:
Users who previously participated in the closed beta1 test must remove the motoros2_interfaces and industrial_msgs packages from their Colcon workspaces (from the src, build and install spaces), and follow the installation instructions in the Build and installation section in the README of the new yaskawa-global/motoros2_client_interface_dependencies package.
Breaking changes have been introduced in this version of MotoROS2, and failure to update and rebuild the workspace will lead to the inability to receive messages from MotoROS2 and/or crashes of client applications.
The old motoros2_interfaces-beta1 repository will also be archived and will not be updated any more.
Changes:
- Significantly reduced shutdown time: MotoROS2 now takes approximately 4 seconds to shutdown after it detects the micro-ROS Agent has disconnected (after the default timeout, which is set to 10 seconds)
- Improved publisher performance (
RobotStatus,JointState, TF) - Migrated motion-related services to dedicated executor
- MotoROS2 now publishes all active alarms & errors on
robot_status, as opposed to only the one raised most recently reset_errornow also resets MotoROS2 internal errors- Extended
FollowJointTrajectorygoal validation. MotoROS2 now requires:- positive and non-zero durations for all segments
- monotonically increasing timestamps on all trajectory points
positionsandvelocitiesfor all joints- zero velocity and acceleration for the last trajectory point
- Extended config file loader to verify names are present for all joints in a group when providing custom joint names
- Fixed incorrect
result_codereturned bystart_traj_mode/start_point_queue_mode: services now returnMotionReadyEnum::READY(ie:1) instead of0on success - Updated Visual Studio solution to support Foxy builds
- Updated Visual Studio solution to support Galactic builds
- Migrated platform-specific functionality to a common library
- Migrated custom string handling code to corresponding
rcutilsfunctionality - Switched to using M+
libmicrorosconfiguration header - Corrected capitalization of "micro-ROS" in the application info struct
Notices:
- Switched MotoROS2 to the
Apache-2.0open-source license (fromBSD-3-Clause)
New functionality:
- Added a point queuing service.
- The
queue_traj_pointservice allows an indefinite number of points to be continuously queued for execution - A sample node is available to convert standard
FollowJointTrajectorycommands into the point queuing format - Note: must call
start_point_queue_modeservice before submitting points to the queue
- The
- Ported the
select_toolservice from MotoROS1- Note: this service was renamed to
select_motion_toolto better reflect its purpose and intended use
- Note: this service was renamed to
Changes:
- Agent disconnects will no longer cause MotoROS2 to stop INFORM (ie: non-ROS) controlled motion
- Only re-activate trajectory mode when in eco-mode if trajectory mode was already active
- Fix automatic INFORM job generation for controllers with multiple motion groups
- Base the micro-ROS client key on the MAC address of the controller's NIC instead of a random value
- Correct TF
baseframe location calculation for multi-robot configurations - MotoROS2 now validates
time_from_starton all points in aJointTrajectory - Post fatal alarms on failed micro-ROS API calls
- Correct control flow to no longer starve other tasks of CPU during processing of (long) trajectories on controllers with multiple motion groups
BREAKING CHANGE:
The names for the publisher_qos settings in motoros2_config.yaml have changed.
best_effort has changed to sensor_data
reliable has changed to default
If you are using QoS settings that are different than the default, then you MUST update your motoros2_config.yaml file with the new names.
Changes:
- Add support for remapping of ROS API names.
- Automatically generate the required INFORM job.
- Automatically validate the content of the INFORM job. (A custom job may be used if configured in the yaml.)
- Prevent MotoROS2 from starting multiple times.
- Include yamllint config in MotoROS2 beta distributions.
- Detect if too many groups are connected to the robot controller.
Changes:
- Support configurable ROS domain ID
- Treat misconfigured Agent IP and port and ROS domain ID as fatal errors
- Correctly map Motoman<->ROS joint order for 7 axis robots
- Correct processing of trajectory goals with joints in arbitrary orders
- Properly abort a running trajectory if there is a robot alarm/error
- After configuration file update (via
CN102): rename instead of remove the file - Address cppcheck warnings and errors
- Include assertion sub code in fatal error debug log
- Fix torque/force reporting for station and base axes
- Include internal MotoROS2 errors in
RobotStatus::in_error
First beta1 release.
Changes:
- Change application name to MotoROS2
- Utilize
motoros2_interfaces - Rename service
robot_enable->start_traj_mode - Rename service
robot_disable->stop_traj_mode - Change the alarm code numbers to avoid conflicts
- Add
reset_errorservice - Remove parameter server (unused)
- Fix deallocation of FJT feedback message (lock up when agent disconnects)
Changes:
- Automatic
robot_enableservice if Energy Saving Function engages. - Stop robot motion if connection to Agent is lost. (configurable in yaml)
- Custom joint names may be specified in yaml config file.
- FJT Action goals may have joints listed in any order.
- The yaml config file may be overwritten w/o initializing
SRAMDRV.DAT - Increase maximum trajectory length to 200 points.
Changes:
- Fix array oob issue
- Add
robot_disableservice - Add to configuration file:
- Optional tf prefix
- Optional namespace
- Decide whether
tftopic should be namespaced or absolute
Changes:
- Add yaml configuration file
- Fix behavior when cancelling an active trajectory (smoother stop)
- Add tool0 to
/tf - Improve memory cleanup after agent disconnects from robot
Changes:
- Fix undefined behavior when a point in the trajectory used a time from start that was not a whole second.
Changes:
- This fixes a leak that will break the internal motion queue if the Agent disconnects/reconnects multiple times.
Changes:
- Fix issue where 'large' trajectories are discarded.
- Fix parsing of joint names on incoming trajectory.
- Fix validation of time tolerance upon trajectory completion.
- If any tolerance causes a trajectory to 'fail', then include specific details about the failure in the return message.
Changes:
- Provide reason code and message when rejecting a trajectory.
- Add timestamps to published topics.
- Change joint names to be 1-based.
- Fix initialization/startup error if pendant boots with active alarm.
- Fix multi-group trajectory processing.
- Prefix tcp TF frames with the group number.
- Improve detection of motion_ready when power-saving mode is engaged.
- Synchronize timestamps with the PC Agent.
Changes:
- Fix detection of trajectory completion.
- Fix memory leak.
- Add some additional debug output messages.
Changes:
- Services to control robot I/O.
- Qualify whether trajectory was successful or not.
- Allow agent on PC to disconnect and reconnect multiple times.
Changes:
robot_enableservice implemented