Changelog
Upcoming
1.8.2
Trossen Arm Driver
Moved the default tool frame from a point on the contacting surfaces to the tips of the fingers.
Added pre-run trajectory check to
trossen_arm::TrossenArmDriver::set_cartesian_positions()
. Now the driver by default samples 1000 points on the trajectory and checks if they have the corresponding inverse kinematics solutions before moving.Added a demo for configuring joint limits. It is available in set_joint_limits.
Fixed two issues related to mixed interpolation spaces and updated the demo mixed_interpolation_space.
Using joint space commands immediately after Cartesian space commands no longer causes unexpected behavior. (trossen_arm#78)
Using Cartesian space commands immediately after setting to the corresponding mode no longer causes unexpected behavior.
Warning
Trossen Arm Driver 1.8.1 has been yanked due to potentially unsafe behavior on mode switching.
Trossen Arm Controller Firmware
Update default configurations to more reasonable values.
Increased
trossen_arm::JointLimit::velocity_max
for the wrist joints from 2 \(\pi\) rad/s to 3 \(\pi\) rad/s.Increased
trossen_arm::PIDParameter::imax
introssen_arm::Mode::idle
mode for joint 1 from 9 Nm to 27 Nm so the arm can hold itself when extended horizontally.
1.8.1
Trossen Arm Driver
Updated mode switching logic to no longer skip joints whose mode did not change.
This resolves trossen_arm#71, which caused unexpected arm movement during mode transitions.
The root cause was that the interpolation space resets to joint mode, requiring the interpolator to also reset. Without this, Cartesian values could be incorrectly interpreted as joint values.
Warning
Trossen Arm Driver 1.8.0 has been yanked due to potentially unsafe behavior on mode switching.
Trossen Arm Controller Firmware
Skip limit checks in idle mode.
1.8.0
Trossen Arm Driver
Added a new
trossen_arm::Mode::effort
mode. It allows commanding the effort of the joints without any built-in compensation like in thetrossen_arm::Mode::external_effort
mode. This mode is useful for applications where full control of the joint efforts is desired.Grouped the outputs into a single new class
trossen_arm::RobotOutput
and added the additional fields below:Added helpful output getters to extract the members of
trossen_arm::RobotOutput
.trossen_arm::TrossenArmDriver::get_gripper_external_effort()
trossen_arm::TrossenArmDriver::get_cartesian_external_efforts()
trossen_arm::TrossenArmDriver::get_all_compensation_efforts()
trossen_arm::TrossenArmDriver::get_arm_compensation_efforts()
trossen_arm::TrossenArmDriver::get_gripper_compensation_effort()
trossen_arm::TrossenArmDriver::get_joint_compensation_effort()
trossen_arm::TrossenArmDriver::get_gripper_rotor_temperature()
trossen_arm::TrossenArmDriver::get_joint_rotor_temperature()
trossen_arm::TrossenArmDriver::get_all_driver_temperatures()
trossen_arm::TrossenArmDriver::get_arm_driver_temperatures()
trossen_arm::TrossenArmDriver::get_gripper_driver_temperature()
trossen_arm::TrossenArmDriver::get_joint_driver_temperature()
The old getters are deprecated and will be removed in the next major release.
Added methods for commanding Cartesian inputs with respect to a tool frame. These features are demonstrated in the scripts listed below:
Added the capability to soft reboot the controller via the driver. This feature is demonstrated in set_factory_reset_flag.
Added more configurations and revised some previous ones.
Added
Removed
continuity_factor
introssen_arm::JointCharacteristic
t_max_factor
introssen_arm::EndEffector
Made driver-controller connection more user-friendly with retry, timeout, and allowing interruption.
For C++ users,
double
is now used instead offloat
for all the data types. This improves compatibility with other modern libraries.
Trossen Arm Controller Firmware
Added the associated interface for the new effort mode.
Added rotor and driver temperatures to the output.
Added the associated interface for soft reboot.
Exposed the associated interfaces for the new configurations.
Added checks on outputs according to the joint limits and on inputs for infinite values.
Removed deprecated continuity check.
The connection, disconnection, and data exchange is now handled more robustly.
UDP is only used for control and TCP handles the rest of the communication.
The controller now return to idle mode if the connection is lost.
The controller now only accept one driver at a time.
Revised default configurations to more reasonable values, more specifically