Changelog
The changes between releases of Stretch Body are documented here.
0.4.8 - Sept 14, 2022
This is the initial production release that supports the Stretch RE2 (Mitski batch).
-
This includes the
robot_params_RE2V0.py
which are the initial robot settings for the RE2 version of the product. -
It introduces the PrismaticJoint class which consolidates the common Arm and Lift functionality.
-
It changes the units for guarded contact motion from approximate Newtons (suffix _N) to
effort_pct
- the pecentage [-100,100] of maximum current (A) that a joint should stop at. This change requires RE1 users to migrate their code and robot parameters. See the forum post for more details. -
It introduces
mkdocs.yaml
to support serving the repository documenation via MKDocs.
It introduces several new features and fixes several bugs, notably:
- Adds
wait_until_at_setpoint()
to the Arm and Lift classes - Adds use of argparse with all tools
- Moves Robot thread rates to YAML
- Cleans up the splined trajectory interface, enables velocity controlled splined trajectories for the Dynamixels
- Flags a warning for users incorrectly setting the homing offset on DXL servos
0.3.4 - July 20, 2022
Release to add minor features and fix minor bugs:
- Add a
range_pad_t
parameter to allow for padding of hardstops for joint homing - Clean up tools and warnings to more consistent and legible #140
0.3.0 - June 21, 2022
This release moves Stretch Body to use a new parameter management format. This change will require older systems to migrate their parameters to the new format. For systems that haven't yet migrated, Stretch Body will exit with a warning that they must migrate first by running RE1_migrate_params.py
. See the forum post for more details.
Features:
0.2.1 - January 6, 2022
Release to fix two bugs:
- Fix goto commands in the head jog tool #128 - Fixes goto commands in the head jog tool
- Fix port_handler location #121 - Fixes dxl buffer resetting under a serial communication failure
0.2.0 - December 28, 2021
This release brings support for waypoint trajectories into master. Support for waypoint trajectories was built up over the last year in the feature/waypoint_trajectories_py3 branch, however, this branch couldn't be merged because the new functionality had flaky performance due to subtle bugs. This branch also attempted to introduce support for Python3 and timestamp synchronization. Support for Python3 and other features were merged in v0.1.0. The remaining features from this branch have been broken into 7 PRs, each targeting a specific device and squashing any previous bugs through functional and performance testing. They are:
- Introduce waypoint trajectory RPCs #98
- Add individual device threading #105
- Trajectory management classes #106
- Lift and arm trajectories #110
- Dynamixel trajectories #113
- Mobile base trajectories #114
- Whole body trajectories #115
This release also fixes several bugs. They are:
Testing:
Each PR in this release was tested on multiple robots, but was primarily tested on G2, on Python 2.7/Ubuntu 18.04.
0.1.11 - October 4, 2021
This release gives Stretch Body the ability to support multiple firmware protocols, which at this moment is P0 and P1 firmware. P1 firmware builds on P0 to add waypoint trajectory support and a refactoring of controller functionality into classes. Additionally, this PR fixes how Dynamixel motors calculate velocity from encoder ticks.
Features:
Bugfixes:
0.1.10 - September 23, 2021
This release introduces 3 features:
- #68 and #95: Introduces two new Jupyter notebooks that can be used to interactively explore working with Stretch. See forum post for details.
- #94: Introduces Github Action files and docs. Will be enabled in the future to automatically test PRs.
- #66: Improves the statistics captured on Stretch Body's performance. Will be used to measure improvements to Stretch Body's communication with low level devices.
Bugfixes:
- #90: Patches a bug where triggering
pimu.trigger_motor_sync()
at to high of a rate puts the robot into Runstop mode. - #101: Fixes bugs on startup of Dynamixel devices, ensures status is populated on startup of all devices, and add bool to
robot.startup()
Testing:
All unit tests run on Python 2.7.17 on Ubuntu 18.04 on a Stretch RE1.
0.1.6 - August 26, 2021
This release introduces these features:
- Revised soft limits and collision avoidance
- Added velocity interfaces for arm and lift
Bugfixes:
- Better error handling for DXL servos and their tools
- Fix bug where dxls maintain previous motion profile
0.1.4 - July 20, 2021
This release introduces six features and several bugfixes. The features are:
- Robot self-collision model and tutorial
- Add ability to runstop individual DXL servos
- Merged py2 and py3 tools
- Added instructions for developing/testing Stretch Body
- Collision avoidance tutorial
- Improve realsense visualizer
Bugfixes:
0.1.0 - May 30, 2021
This release introduces eight major features and several bugfixes. The features are:
- Python param management
- Configurable baud rate/GroupRead on Dynamixels
- Pluggable end effector tools
- Pluggable end effector support in Xbox Teleop
- Python logging
- Soft motion limit
- Self collision management
- Unit testing framework - as part of each PR
Bugfixes:
- Multiturn enable_pos bug (#12) & unit tests
- Misc bugs
- Other - as part of the features
Testing:
All unit tests run on Python 2.7.17 on Ubuntu 18.04 on a Stretch RE1.