diff options
author | erwincoumans <erwincoumans@google.com> | 2020-08-31 13:35:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-31 13:35:03 -0700 |
commit | bb1da5b5f50fce595bc44d4054b9ad7d5fad5ff8 (patch) | |
tree | b83f26158ccf3ca4870fb580c9e583c9c82e86d9 | |
parent | 0ebc43b21efbcfa82bbc8792a9fa3c3801f29433 (diff) | |
download | bullet3-bb1da5b5f50fce595bc44d4054b9ad7d5fad5ff8.tar.gz |
try to fix travis, update inertia for Laikago, reset camera at the right time (#3021)
* laikago_toes_zup.urdf: fill in inertia values, computed as PyBullet does internally (from mass and collision volumes)
* reset camera in the rendering thread to avoid artifacts
* reset camera in the rendering thread to avoid artifacts
* try to fix travis error
-rwxr-xr-x | .ci/script.sh | 2 | ||||
-rw-r--r-- | examples/SharedMemory/PhysicsServerExample.cpp | 34 | ||||
-rw-r--r-- | examples/pybullet/gym/pybullet_data/laikago/laikago_toes_zup.urdf | 26 |
3 files changed, 46 insertions, 16 deletions
diff --git a/.ci/script.sh b/.ci/script.sh index 7fff323bf..f213df283 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -9,7 +9,7 @@ if [[ "$TRAVIS_OS_NAME" == "linux" && "$CXX" = "g++" ]]; then $SUDO apt-get install -y python3-pip $SUDO pip3 install -U wheel $SUDO pip3 install -U setuptools - $SUDO python3 setup.py install + python3 setup.py install --user python3 examples/pybullet/unittests/unittests.py --verbose python3 examples/pybullet/unittests/userDataTest.py --verbose python3 examples/pybullet/unittests/saveRestoreStateTest.py --verbose diff --git a/examples/SharedMemory/PhysicsServerExample.cpp b/examples/SharedMemory/PhysicsServerExample.cpp index 3a159f581..264ff7542 100644 --- a/examples/SharedMemory/PhysicsServerExample.cpp +++ b/examples/SharedMemory/PhysicsServerExample.cpp @@ -130,6 +130,7 @@ enum MultiThreadedGUIHelperCommunicationEnums eGUIHelperUpdateShape, eGUIHelperChangeGraphicsInstanceScaling, eGUIUserDebugRemoveAllParameters, + eGUIHelperResetCamera, }; #include <stdio.h> @@ -1086,9 +1087,25 @@ public: { m_childGuiHelper->setUpAxis(axis); } + float m_resetCameraCamDist; + float m_resetCameraYaw; + float m_resetCameraPitch; + float m_resetCameraCamPosX; + float m_resetCameraCamPosY; + float m_resetCameraCamPosZ; + virtual void resetCamera(float camDist, float yaw, float pitch, float camPosX, float camPosY, float camPosZ) { - m_childGuiHelper->resetCamera(camDist, yaw, pitch, camPosX, camPosY, camPosZ); + m_cs->lock(); + m_resetCameraCamDist = camDist; + m_resetCameraYaw = yaw; + m_resetCameraPitch = pitch; + m_resetCameraCamPosX = camPosX; + m_resetCameraCamPosY = camPosY; + m_resetCameraCamPosZ = camPosZ; + m_cs->setSharedParam(1, eGUIHelperResetCamera); + workerThreadWait(); + //m_childGuiHelper->resetCamera(camDist, yaw, pitch, camPosX, camPosY, camPosZ); } virtual bool getCameraInfo(int* width, int* height, float viewMatrix[16], float projectionMatrix[16], float camUp[3], float camForward[3], float hor[3], float vert[3], float* yaw, float* pitch, float* camDist, float camTarget[3]) const @@ -1424,7 +1441,7 @@ public: float pitch = -35; float yaw = 50; float targetPos[3] = {0, 0, 0}; //-3,2.8,-2.5}; - m_guiHelper->resetCamera(dist, yaw, pitch, targetPos[0], targetPos[1], targetPos[2]); + m_multiThreadedHelper->m_childGuiHelper->resetCamera(dist, yaw, pitch, targetPos[0], targetPos[1], targetPos[2]); } virtual bool wantsTermination(); @@ -2360,6 +2377,19 @@ void PhysicsServerExample::updateGraphics() m_multiThreadedHelper->mainThreadRelease(); break; } + case eGUIHelperResetCamera: + { + m_multiThreadedHelper->m_childGuiHelper->resetCamera( + m_multiThreadedHelper->m_resetCameraCamDist, + m_multiThreadedHelper->m_resetCameraYaw, + m_multiThreadedHelper->m_resetCameraPitch, + m_multiThreadedHelper->m_resetCameraCamPosX, + m_multiThreadedHelper->m_resetCameraCamPosY, + m_multiThreadedHelper->m_resetCameraCamPosZ); + m_multiThreadedHelper->mainThreadRelease(); + break; + } + case eGUIHelperAutogenerateGraphicsObjects: { B3_PROFILE("eGUIHelperAutogenerateGraphicsObjects"); diff --git a/examples/pybullet/gym/pybullet_data/laikago/laikago_toes_zup.urdf b/examples/pybullet/gym/pybullet_data/laikago/laikago_toes_zup.urdf index d051affb8..8ebab9123 100644 --- a/examples/pybullet/gym/pybullet_data/laikago/laikago_toes_zup.urdf +++ b/examples/pybullet/gym/pybullet_data/laikago/laikago_toes_zup.urdf @@ -7,7 +7,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 0 0"/> <mass value="13.715"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.22" ixy="0" ixz="0" iyy="0.431" iyz="0" izz="0.565"/> </inertial> <visual> <origin rpy="0 0 0" xyz=" 0 0 0"/> @@ -32,7 +32,7 @@ <inertial> <origin rpy="0 0 0" xyz="0.02 0 0"/> <mass value="1.095"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy=".002" iyz="0" izz=".001"/> </inertial> <visual> @@ -67,7 +67,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.04 -0.04"/> <mass value="1.527"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.015" ixy="0" ixz="0" iyy="0.007" iyz="0" izz="0.01"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -102,7 +102,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.16 -0.02"/> <mass value="0.241"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.002"/> </inertial> <visual> <origin rpy="0 1.57079 0" xyz="0 0.0 0"/> @@ -137,7 +137,7 @@ <inertial> <origin rpy="0 0 0" xyz="-.02 0 0"/> <mass value="1.095"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.001"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -174,7 +174,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.04 -0.04"/> <mass value="1.527"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.016" ixy="0" ixz="0" iyy="0.007" iyz="0" izz="0.011"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -213,7 +213,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.16 -0.02"/> <mass value="0.241"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.002"/> </inertial> <visual> <origin rpy="0 1.57079 0" xyz="0 0 0"/> @@ -254,7 +254,7 @@ <inertial> <origin rpy="0 0 0" xyz="0.02 0 0"/> <mass value="1.095"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.001"/> </inertial> <visual> @@ -291,7 +291,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.04 -0.04"/> <mass value="1.527"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.016" ixy="0" ixz="0" iyy="0.007" iyz="0" izz="0.011"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -326,7 +326,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.16 -0.02"/> <mass value="0.241"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.002"/> </inertial> <visual> <origin rpy="0 1.57079 0" xyz="0 0 0"/> @@ -362,7 +362,7 @@ <inertial> <origin rpy="0 0 0" xyz="-.02 0 0"/> <mass value="1.095"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.001"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -398,7 +398,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.04 -0.04"/> <mass value="1.527"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.016" ixy="0" ixz="0" iyy="0.007" iyz="0" izz="0.011"/> </inertial> <visual> <origin rpy="0 0 0" xyz="0 0 0"/> @@ -435,7 +435,7 @@ <inertial> <origin rpy="0 0 0" xyz="0 -0.16 -0.02"/> <mass value="0.241"/> - <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/> + <inertia ixx="0.002" ixy="0" ixz="0" iyy="0.002" iyz="0" izz="0.002"/> </inertial> <visual> <origin rpy="0 1.57079 0" xyz="0 0 0"/> |