Skip to content

Releases: threedworld-mit/tdw

v1.11.22

08 Jun 18:52
1a34ee7
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Command API

Deprecated Commands

Command Reason
set_robot_joint_id Obsolete because joint IDs are now deterministic (see below)
set_sub_object_id Obsolete because sub-object IDs are now deterministic (see below)

Build

  • Fixed: Segmentation colors, robot joint IDs, composite sub-object IDs, and other values randomly generated by the build are non-deterministic. This was usually a harmless bug, but it made it very difficult to use log files generated by a Logger because IDs would change every time. Now, nearly all values randomly generated by the build using local Random objects seeded by the top-level object's ID, meaning that the randomly generated values per object will be deterministic as long as their IDs don't change. The exception is VR nodes because VR rigs don't have a top-level ID. Note: This change slightly increases the odds of segmentation color and object ID collisions. If you have an error in which two robot joints, segmentation colors, etc. were assigned the same values, please let us know.
  • Fixed: All Replicant IK motions have non-deterministic durations. Now, the framerate is always the same (Time.fixedDeltaTime).

tdw module

  • Added new Replicant model: woman_casual
  • Added a new IkPlanType: reset (reset to a neutral position and then reach for the target).
    • (Backend) added Reset subclass of IkPlan.
  • (Backend) Fixed: IKMotion scales the duration after sending initialization commands.

Example Controllers

  • Fixed: replicant/carry_couch.py doesn't work as intended (regression in 1.11.19)

Documentation

New Documentation

Document Description
Python/replicant/ik_plans/reset.md API for Reset

v1.11.21

07 Jun 20:22
fd1141e
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Scene Library

  • Added: savanna_6km A large outdoor scene.

Documentation

New Documentation

Document Description
lessons/core_concepts/outdoor_scenes.md Overview of outdoor scenes

v1.11.20

05 Jun 14:27
5dc78dc
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Command API

New Commands

Command Description
set_drone_speed Set the drone's speed.

tdw module

  • Added: drone.set_speed(forward, backward)

Example Controllers

  • Added: drone/set_speed.py

Documentation

Modified Documentation

Document Description
lessons/drone/drone.md Added a section for setting the drone's speed.

v1.11.19

30 May 20:20
f89c1ed
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

New Features

  • Added: Vehicle add-on, which simulates vehicles such as cars.

Command API

New Commands

Command Description
add_vehicle Add a vehicle to the scene.
apply_vehicle_brake Set the vehicle's brake value.
apply_vehicle_drive Move the vehicle forward or backward.
apply_vehicle_turn Turn the vehicle left or right.
parent_avatar_to_vehicle Parent an avatar to the vehicle. Usually you'll want to do this to add a camera to the vehicle.
stop_replicant_animation Stop an ongoing Replicant animation.

tdw module

  • Added: Vehicle add-on.
    • Added: VehicleDynamic data class
    • Added: VehicleLibrarian and VehicleRecord
  • (Backend) Added abstract class AgentDynamic. ReplicantDynamic and DroneDynamic are now subclasses of AgentDynamic, as is the new VehicleDynamic.
  • Fixed: If a Replicant starts a new action while an animation is playing (i.e. animate(animation), move_by(distance), or move_to(target)), the animation doesn't stop.

Example Controllers

  • Added: vehicle/collision_detection.py
  • Added: vehicle/dynamic_data.py
  • Added: vehicle/minimal.py
  • Added: vehicle/move_by.py

Documentation

New Documentation

Document Description
lessons/vehicle/vehicle.md Vehicle tutorial
python/add_ons/vehicle.md Vehicle API
python/vehicle/vehicle_dynamic.md VehicleDynamic API
python/librarian/vehicle_librarian.md VehicleLibrarian API

Modified Documentation

Document Modification
lessons/agents/overview.md Added a section for vehicles.

v1.11.18

19 May 21:18
4e0c1e8
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Build

  • Fixed: When a Replicant drops a container with objects in it, the objects in the container ignore gravity.

v1.11.17

17 May 16:38
e75c773
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

New Features

  • Added: Drone add-on, which simulates quadcopter drones.

Command API

New Commands

Command Description
add_drone Add a drone to the scene.
apply_drone_drive Fly a drone forward or backward.
apply_drone_lift Fly a drone up or down.
apply_drone_turn Turn a drone left or right.
parent_avatar_to_drone Parent an avatar to a drone.
set_drone_motor Turns the drone's motor on or off.
send_drones Send data for each drone in the scene.

Output Data

New Output Data

Output Data Description
Drones Data for each drone in the scene.

tdw module

  • Added: Drone add-on.
    • Added: DroneDynamic data class
    • Added: DroneLibrarian and DroneRecord

Example Controllers

  • Added: drone/collision_detection.py
  • Added: drone/dynamic_data.py
  • Added: drone/minimal.py
  • Added: drone/rise_by.py
  • Added: drone/stop_motor.py

Documentation

New Documentation

Document Description
lessons/drone/drone.md Drone tutorial
python/add_ons/drone.md Drone API
python/drone/drone_dynamic.md DroneDynamic API
python/librarian/drone_librarian.md DroneLibrarian API

Modified Documentation

Document Modification
lessons/agents/overview.md Added a section for drones.

v1.11.16

12 May 16:51
4d8ecb6
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Command API

New Commands

Command Description
send_replicant_segmentation_colors Request ReplicantSegmentationColors output data.

Output Data

New Output Data

Output Data Description
ReplicantSegmentationColors Replicant segmentation colors.

tdw module

  • Added: ReplicantStatic.segmentation_color The Replicant's segmentation color.

v1.11.15

28 Apr 15:29
fb7187e
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Command API

New Commands

Command Description
replicant_reach_for_relative_position Instruct a Replicant to start to reach for a target position relative to the Replicant.

Modified Commands

Command Modification
replicant_set_grasped_object_rotation Added optional parameter relative_to_hand.
replicant_reach_for_object Added optional parameter offset.
repicant_reach_for_position Added optional parameter offset.
replicant_grasp_object Added optional parameter offset.

tdw module

  • Added optional parameters to replicant.reach_for():
    • from_held Control whether an offset from the held object will be applied to the target position.
    • held_point The bounds point of the held object from which the offset will be calculated.
    • plan Use an IkPlan to subdivide the motion.
    • absolute Determines whether the target position is relative to the world or to the Replicant.
  • Added optional parameters to replicant.grasp():
    • relative_to_hand How the held object is rotated.
    • offset The offset distance from the hand.
  • Added optional parameters to replicant.drop():
    • offset Sets an offset distance or position to apply to a dropped object.
  • Added: IkPlanType. Enum values defining IK plans.
  • Fixed: replicant.turn_by() and replicant.turn_to() don't set the positions of held objects correctly.
  • Fixed (in the build): The initial position of the hand in a replicant.reach_for() action is set incorrectly.
  • Fixed (in the build): The offset of a held object from the hand is calculated incorrectly and doesn't change with respect to which hand is holding the object.
  • Fixed (in the build): While a Replicant is walking or playing any other animation, the positions of held objects aren't updated correctly.
  • (Backend) Added a new Replicant action: ReachForWithPlan. This is hidden from the user; if the user sets plan parameter in reach_for(), the Replicant will use ReachForWithPlan instead of ReachFor.
  • (Backend) Added IkPlan. Abstract base class for IK plans.
  • (Backend) Added VerticalHorizontal. An IK plan with vertical and horizontal components.

Example Controllers

  • Added: replicant/grasp_rotate.py
  • Added: replicant/reach_for_offset.py
  • Added: replicant/reach_for_relative.py
  • Added: replicant/reach_for_with_plan.py
  • Added: replicant/stack_objects.py

Documentation

New Documentation

Document Description
lessons/replicants/arm_articulation_3.md How to use advanced features in the Replicant's arm articulation API.
lessons/replicants/arm_articulation_4.md An example of how a Replicant can stack objects.
python/replicant/actions/reach_for_with_plan.md API for ReachForWithPlan
python/replicant/ik_plans/ik_plan_type.md API for IkPlanType
python/replicant/ik_plans/ik_plan.md API for IkPlan
python/replicant/ik_plans/vertical_horizontal.md API for VerticalHorizontal

Modified Documentation

Document Modification
lessons/replicants/arm_articulation.md Renamed: Arm articulation, pt.1: Basics
Moved some of the more advanced sections to Arm articulation, pt. 3
lessons/replicants/grasp_drop.md Renamed: Arm articulation, pt. 2: Grasp and drop
Moved some of the more advanced sections to Arm articulation, pt. 3

v1.11.14

25 Apr 14:47
aeec307
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Build

  • Fixed: Objects held by the Replicant can be offset far from the hand holding them. Now, held objects will be in their expected positions relative to the hand.
  • Fixed: Replicant transform output data doesn't match the actual body part positions during an animation. In terms of the Replicant add-on, this fixes bugs found in animate(), move_by(), and move_to().
  • Fixed: All Replicant IK commands exhibit strange behavior at lower framerates. This was due to an internal counter using the wrong framerate value. In terms of the Replicant add-on, this fixes bugs found in reach_for(), reset_arm(), look_at(), rotate_head(), and reset_head().
  • Fixed: It is possible for the Replicant's apparent position to be different between saved images and what's rendered in the simulation window.

v1.11.13

18 Apr 15:41
2948e92
Compare
Choose a tag to compare

This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.

Build

  • Fixed: Unhandled MissingReferenceException if the scene is reset while the Replicant is doing a reach_for() action.
  • Fixed: Potential unhandled exceptions if the scene is reset while the Replicant is doing a move_by(), move_to(), animate(), look_at(), reset_arm(), reset_head(), or rotate_head() action.