Releases: threedworld-mit/tdw
Releases · threedworld-mit/tdw
v1.11.22
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
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
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
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
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
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
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
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
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
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.