@@ -1599,28 +1599,30 @@ <h1>Source code for isaaclab.envs.mdp.events</h1><div class="highlight"><pre>
1599
1599
< span class ="sd "> """</ span >
1600
1600
< span class ="c1 "> # extract the used quantities (to enable type-hinting)</ span >
1601
1601
< span class ="n "> asset</ span > < span class ="p "> :</ span > < span class ="n "> Articulation</ span > < span class ="o "> =</ span > < span class ="n "> env</ span > < span class ="o "> .</ span > < span class ="n "> scene</ span > < span class ="p "> [</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="p "> ]</ span >
1602
+
1603
+ < span class ="c1 "> # cast env_ids to allow broadcasting</ span >
1604
+ < span class ="k "> if</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="o "> !=</ span > < span class ="nb "> slice</ span > < span class ="p "> (</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
1605
+ < span class ="n "> iter_env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> [:,</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span >
1606
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
1607
+ < span class ="n "> iter_env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span >
1608
+
1602
1609
< span class ="c1 "> # get default joint state</ span >
1603
- < span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_pos</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1604
- < span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_vel</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1610
+ < span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_pos</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1611
+ < span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_vel</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1605
1612
1606
1613
< span class ="c1 "> # scale these values randomly</ span >
1607
1614
< span class ="n "> joint_pos</ span > < span class ="o "> *=</ span > < span class ="n "> math_utils</ span > < span class ="o "> .</ span > < span class ="n "> sample_uniform</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> position_range</ span > < span class ="p "> ,</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> ,</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> device</ span > < span class ="p "> )</ span >
1608
1615
< span class ="n "> joint_vel</ span > < span class ="o "> *=</ span > < span class ="n "> math_utils</ span > < span class ="o "> .</ span > < span class ="n "> sample_uniform</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> velocity_range</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> device</ span > < span class ="p "> )</ span >
1609
1616
1610
1617
< span class ="c1 "> # clamp joint pos to limits</ span >
1611
- < span class ="n "> joint_pos_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1618
+ < span class ="n "> joint_pos_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1612
1619
< span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> clamp_</ span > < span class ="p "> (</ span > < span class ="n "> joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="o "> ...</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ],</ span > < span class ="n "> joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="o "> ...</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> ])</ span >
1613
1620
< span class ="c1 "> # clamp joint vel to limits</ span >
1614
- < span class ="n "> joint_vel_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_vel_limits</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1621
+ < span class ="n "> joint_vel_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_vel_limits</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1615
1622
< span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> clamp_</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="n "> joint_vel_limits</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel_limits</ span > < span class ="p "> )</ span >
1616
1623
1617
1624
< span class ="c1 "> # set into the physics simulation</ span >
1618
- < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> write_joint_state_to_sim</ span > < span class ="p "> (</ span >
1619
- < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> view</ span > < span class ="p "> (</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> env_ids</ span > < span class ="p "> ),</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
1620
- < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> view</ span > < span class ="p "> (</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> env_ids</ span > < span class ="p "> ),</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
1621
- < span class ="n "> env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> ,</ span >
1622
- < span class ="n "> joint_ids</ span > < span class ="o "> =</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ,</ span >
1623
- < span class ="p "> )</ span > </ div >
1625
+ < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> write_joint_state_to_sim</ span > < span class ="p "> (</ span > < span class ="n "> joint_pos</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="p "> ,</ span > < span class ="n "> joint_ids</ span > < span class ="o "> =</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ,</ span > < span class ="n "> env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> )</ span > </ div >
1624
1626
1625
1627
1626
1628
< div class ="viewcode-block " id ="reset_joints_by_offset "> < a class ="viewcode-back " href ="../../../../source/api/lab/isaaclab.envs.mdp.html#isaaclab.envs.mdp.events.reset_joints_by_offset "> [docs]</ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> reset_joints_by_offset</ span > < span class ="p "> (</ span >
@@ -1638,28 +1640,29 @@ <h1>Source code for isaaclab.envs.mdp.events</h1><div class="highlight"><pre>
1638
1640
< span class ="c1 "> # extract the used quantities (to enable type-hinting)</ span >
1639
1641
< span class ="n "> asset</ span > < span class ="p "> :</ span > < span class ="n "> Articulation</ span > < span class ="o "> =</ span > < span class ="n "> env</ span > < span class ="o "> .</ span > < span class ="n "> scene</ span > < span class ="p "> [</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> name</ span > < span class ="p "> ]</ span >
1640
1642
1643
+ < span class ="c1 "> # cast env_ids to allow broadcasting</ span >
1644
+ < span class ="k "> if</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="o "> !=</ span > < span class ="nb "> slice</ span > < span class ="p "> (</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
1645
+ < span class ="n "> iter_env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> [:,</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span >
1646
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
1647
+ < span class ="n "> iter_env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span >
1648
+
1641
1649
< span class ="c1 "> # get default joint state</ span >
1642
- < span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_pos</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1643
- < span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_vel</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1650
+ < span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_pos</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1651
+ < span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> default_joint_vel</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> clone</ span > < span class ="p "> ()</ span >
1644
1652
1645
1653
< span class ="c1 "> # bias these values randomly</ span >
1646
1654
< span class ="n "> joint_pos</ span > < span class ="o "> +=</ span > < span class ="n "> math_utils</ span > < span class ="o "> .</ span > < span class ="n "> sample_uniform</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> position_range</ span > < span class ="p "> ,</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> ,</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> device</ span > < span class ="p "> )</ span >
1647
1655
< span class ="n "> joint_vel</ span > < span class ="o "> +=</ span > < span class ="n "> math_utils</ span > < span class ="o "> .</ span > < span class ="n "> sample_uniform</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> velocity_range</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> shape</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> device</ span > < span class ="p "> )</ span >
1648
1656
1649
1657
< span class ="c1 "> # clamp joint pos to limits</ span >
1650
- < span class ="n "> joint_pos_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1658
+ < span class ="n "> joint_pos_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1651
1659
< span class ="n "> joint_pos</ span > < span class ="o "> =</ span > < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> clamp_</ span > < span class ="p "> (</ span > < span class ="n "> joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="o "> ...</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ],</ span > < span class ="n "> joint_pos_limits</ span > < span class ="p "> [</ span > < span class ="o "> ...</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> ])</ span >
1652
1660
< span class ="c1 "> # clamp joint vel to limits</ span >
1653
- < span class ="n "> joint_vel_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_vel_limits</ span > < span class ="p "> [</ span > < span class ="n "> env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1661
+ < span class ="n "> joint_vel_limits</ span > < span class ="o "> =</ span > < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> data</ span > < span class ="o "> .</ span > < span class ="n "> soft_joint_vel_limits</ span > < span class ="p "> [</ span > < span class ="n "> iter_env_ids </ span > < span class ="p "> ,</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ]</ span >
1654
1662
< span class ="n "> joint_vel</ span > < span class ="o "> =</ span > < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> clamp_</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="n "> joint_vel_limits</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel_limits</ span > < span class ="p "> )</ span >
1655
1663
1656
1664
< span class ="c1 "> # set into the physics simulation</ span >
1657
- < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> write_joint_state_to_sim</ span > < span class ="p "> (</ span >
1658
- < span class ="n "> joint_pos</ span > < span class ="o "> .</ span > < span class ="n "> view</ span > < span class ="p "> (</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> env_ids</ span > < span class ="p "> ),</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
1659
- < span class ="n "> joint_vel</ span > < span class ="o "> .</ span > < span class ="n "> view</ span > < span class ="p "> (</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> env_ids</ span > < span class ="p "> ),</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
1660
- < span class ="n "> env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> ,</ span >
1661
- < span class ="n "> joint_ids</ span > < span class ="o "> =</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ,</ span >
1662
- < span class ="p "> )</ span > </ div >
1665
+ < span class ="n "> asset</ span > < span class ="o "> .</ span > < span class ="n "> write_joint_state_to_sim</ span > < span class ="p "> (</ span > < span class ="n "> joint_pos</ span > < span class ="p "> ,</ span > < span class ="n "> joint_vel</ span > < span class ="p "> ,</ span > < span class ="n "> joint_ids</ span > < span class ="o "> =</ span > < span class ="n "> asset_cfg</ span > < span class ="o "> .</ span > < span class ="n "> joint_ids</ span > < span class ="p "> ,</ span > < span class ="n "> env_ids</ span > < span class ="o "> =</ span > < span class ="n "> env_ids</ span > < span class ="p "> )</ span > </ div >
1663
1666
1664
1667
1665
1668
< div class ="viewcode-block " id ="reset_nodal_state_uniform "> < a class ="viewcode-back " href ="../../../../source/api/lab/isaaclab.envs.mdp.html#isaaclab.envs.mdp.events.reset_nodal_state_uniform "> [docs]</ a > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> reset_nodal_state_uniform</ span > < span class ="p "> (</ span >
0 commit comments