From bf800e30d5d5fe688a2cd17a014f7068ad10886f Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Thu, 29 Jun 2017 17:54:04 -0700 Subject: [PATCH] Added manually converted widowx.urdf from https://github.com/RobotnikAutomation/widowx_arm Added simple pybullet file in Bullet/examples/pybullet/examples/widows.py (preliminary, both URDF and py file needs more work to be useful) https://github.com/RobotnikAutomation/widowx_arm/blob/master/widowx_arm_description/package.xml See also http://www.trossenrobotics.com/widowxrobotarm --- data/widowx/bsd_license.txt | 22 ++ data/widowx/meshes/base_link.stl | Bin 0 -> 26684 bytes data/widowx/meshes/biceps_link.stl | Bin 0 -> 18884 bytes data/widowx/meshes/forearm_link.stl | Bin 0 -> 21084 bytes .../widowx/meshes/gripper_hand_fixed_link.stl | Bin 0 -> 5284 bytes data/widowx/meshes/gripper_rail_link.stl | Bin 0 -> 17484 bytes data/widowx/meshes/shoulder_link.stl | Bin 0 -> 11884 bytes data/widowx/meshes/wrist_1_link.stl | Bin 0 -> 31884 bytes data/widowx/meshes/wrist_2_link.stl | Bin 0 -> 33084 bytes data/widowx/widowx.urdf | 279 ++++++++++++++++++ examples/pybullet/examples/widows.py | 21 ++ 11 files changed, 322 insertions(+) create mode 100644 data/widowx/bsd_license.txt create mode 100644 data/widowx/meshes/base_link.stl create mode 100644 data/widowx/meshes/biceps_link.stl create mode 100644 data/widowx/meshes/forearm_link.stl create mode 100644 data/widowx/meshes/gripper_hand_fixed_link.stl create mode 100644 data/widowx/meshes/gripper_rail_link.stl create mode 100644 data/widowx/meshes/shoulder_link.stl create mode 100644 data/widowx/meshes/wrist_1_link.stl create mode 100644 data/widowx/meshes/wrist_2_link.stl create mode 100644 data/widowx/widowx.urdf create mode 100644 examples/pybullet/examples/widows.py diff --git a/data/widowx/bsd_license.txt b/data/widowx/bsd_license.txt new file mode 100644 index 000000000..cf5bb8ce7 --- /dev/null +++ b/data/widowx/bsd_license.txt @@ -0,0 +1,22 @@ +Converted from https://github.com/RobotnikAutomation/widowx_arm/blob/master/widowx_arm_description/package.xml + +Copyright 2017 robotnik + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + widowx_arm_description + 0.0.2 + The widowx_arm_description package + + Jose Rapado García + Román Navarro + Carlos Villar + + \ No newline at end of file diff --git a/data/widowx/meshes/base_link.stl b/data/widowx/meshes/base_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..f9a35903780929e68d2cdd55b154171b5cc85cb5 GIT binary patch literal 26684 zcmb`OeXM0yS;mjF35g#Nv=tke+QAY;Vq4G>L+9KhW{53@D3LUfrdmMTI=N(O>R1?I z<`OZ{Xw`l|w2Gl<`~t0FY!kWX9?%38En<|^@CQOvlG+$sNl5re>U!SwKI{C}U3=e& zi6?32nf*S`de-N=*WP>0ou_wy;>WJ|zBk_a<5&E@{4ROM0>8c0&dJ^NcmKi1u6y`h zA6zE>u<(tq{OF0dKJyK0VF(s`s|W6V)rs3~xqYd~KYz_%zyJ1o-V%6T!3Y(lqW0@){3kvf9aa_$G>>_go2UX^=sC*-}7H5j_xaZ zQ1N$9zH$AEf4Vo+^R*(2qmMl%j}DCv!tc^uvairJes1k zX<26Ce66A^vPw@c%dCvC={*=Jqq!`zFIe>M6^u|(#%WnHMr4V31zCwB$MlM<)d}@U zwjK&nw8v`8H82MyTl9@znc%dHuOt&adQ_wOYUbRSz$J z?{Dw@Hm_h~U0*DUVrc~<#_G3Hl5*v`&a0>1_pF_lyz?F5VV24w%eZA<>2(V;Uy34yzuTj1_fEh)#KLJKDl$#*S{$gj2Nr#TwROBv4@_y`io27 zFeu0}t{xZt{FSR4t~ePAMvQZgDYs`k&VBl&tG6Bho^L@JubWC*43|_|Ll%t2_wexDDznNkMwxtN8Yk};9xT- z$TF@T=imI+)$1O+D-?_v%cHC`?F@3A|NgPJukQG>mktWDjH|~#K6ZZfji;U+xsDNI zcw}Zs#ab;lOJyYvmT~pSS{*=f-C;$xDYC?3p_c#fV|NV-vW%-o_HHN`F~*puM~>j2 z$Po;darMYqvQax2F_uTpvCKZ2iJy7!*q|WGxO(Jl4+SH}^2oK49=W0h1zE<`BUf!G z7%`SduKD!H%rGd(GOiw(eL}&Au{<)vrAKDCK|z*r^~fw53Pz0O!JTZ&)PsU7V|&Ei zAQX%kXFE=8cgUqy2PL-;ic+h_GOiw_$c#H<_-?ew#+O79+&+&(Bu?>3fk z^(Z5FP;z@H7%`Sd8Gr3+(xc3hP08(pf-K|eQD)+% zvW%-oSy7vk+e5*Ku{_Fp)cz{hd0DlalG_IbS;p0)WQI-2?U5N6F_uTkE83lykF3>B=5{F}Vix*pUpR96rsVcPku49FarMaF4Fw~{DmTX_J#qvG z1zE<`BWKAfb9?O16){U5Imgzu9h!+Hw+{-kjH^e^_E0clta5X$q(`o(K|z*r^~hBl z3Pz0Ok!wCZGBXScvW%-oW}i?nVl0o$UFne-ZcvbATs<<2hJq1ed3fh6yjXnvQ}5V( z;@>WgF@N;(cdrkwfAYlUS-*LmvC93*C+=T=>h3R|s2<<&io1&9U4w!wW0ka6{LbIs zyt(KPpAH2h#wz!ZpSW-RtDpHwdVJ~2uikw7)6a``n5DAFGOiwly(y|tlydeQTu=bV4!o6#j$|B3SdWh{2R5^+& zVytr229;JlR3pz4v!o!)xO%A7o{5YYt6cS;dZl`(XFc1^QdwjfSC3R2D8prBABugn zBk*F8wHg%Z*D0z;wmcMODPk;-?2+`y-rcBHW=TPoarMX%3`LIAS`lM;^f|1hlrYJRxw;x9<$kGbX>>m}3P*K{n_Kve34=TvY>l5R_{z)7=*`kPh z;bg5^go+%S>2@>)Svh+q6pT>eed$;$D#&sc9TkjF;eF}R3bMHV`|)6e3hzrt4=TuF zmgqgWw!Jr0xy-1&f)Of8N$m~myn-xd)Ly{|6{Q{Vwsvee6=Z2$YJH9hMyM$LrtfMO zP>{v--?xJiD#~ca+uE^KRFK6i(R*;ECXP3S^Q)E-Dl$tJ$~-oqV1$Zn#|0E* zWsgiK7@;EjZ8_V!Q5IP_7bX;B

6AUcm?zImaeEs30rn^n`*DDsrt{KtWcn<_QHO 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 n{zk95&npJXf*KN0w$@d=g|P6N9Y(}mbNL0G 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 HDTMz3Lh#{E literal 0 HcmV?d00001 diff --git a/data/widowx/meshes/forearm_link.stl b/data/widowx/meshes/forearm_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..1aaf44e48689e33f1f58499f98eb9de0654864fe GIT binary patch literal 21084 zcmbuHf6S#tb;qx|CfH_O0Sz?PNF`D+f~l}7`#$Vd5QQZqCh{wq7hNhOL{thUiqjYeXV%4$j_O>n+v&iA>Wd7kI; zPv1Xa@|^RTGjnF<%$b=B@7j0MjeE~{?Y?*3@alKI?Tr8b->084D}P7k`ltT(opSru zwHJJG@y&fFA9wi&Cu;c<|NRf~U3x8H$rK?vh^7Ad)Y-`|E?OJ1k@ZG7?QN*0X~GiI zBvc;TC`4x)Dw`;_-Qw6&Gb}aoUOV!p84*oKkE& z{|oO9;#c>-xgn^fvTRgB{;hvUmY=!n>oIqSzS4L5(AxTUB`l$L>Gj#{UmiX*m;SeZ zwk_6#h@4kpPvyVd@xdtn#g_W9eb=o?+|dx!Qdu=s;?oao2Jy7JpNP6FA+hwCL5(SyVdj3x`v>Z%Cb?3 zZ~yF$Ac_Z;l#t*!g;#?pUTz3#wIlefmmXTGReKJeChu;@I@WfSpE&oX4Xu?2Kf9y! zt(?ovMv?cZK(+@H}5(o;;f4g zFDW5$`;|9-b!DRv7fun>Qh8;gv}(5qwTcoFrB5-h`kv24sOKc8rSi&G#k)bsyOfY9 zV-q&&2)_E>Hw1A}89@@%Qdu_oSrWvagLfXMgoL8Dd{uXYG82f?6ueMju6kC^1Dbv6qn0`j_A8&MB{|AM!E@YN;$6m5_G* zJEEPl^B8bE^j(C;#@hOKB`hJqaf)4SF8xQ!u2y!hs7t$-%Ce_&*%PDO@0>ws=OjTb zm1Vo%orBQsObLmyw}*{B0|-JH010ZTEE|26v0MF6mO%*#`cQev*+D3iAwjJv?;cso z&Y35@KO)%&51hC7*7g@gOK#nHbmQtvFWFM7o^$Ov3+d^v5|ohm=Usoa5V85SV_Q{! zilEkiz2b*qObNgz6%ZYqOh<3?`_RYd(o`{%9hD2-QU**Lhc?=rA&v zpjJkSBs?OByCKO~8|5b_WW#%{yz8>R*L_2FygOS$8@WGr)4Q_?YURG0g!Vt#@a`-^ zb&<&Zv76qVO;9WM-6XV+%Z7Jn5vq$s?vLH{?refux$h>Sd_*?9JBv_VByz9K)An$8 zHbJf2sgoFH`XZd^YXns;*_q;Q*XMB2D&=slYp5kcHBD#wmayKEKZcFzOy2~xRMz)C z-;Gu|)3<~~X6M~>rf-5;nZqYB%=AU5E)tn*uZSkoH$kn;;a9DSb?!`miYR^3&bjLO zT(iWPz6olntna;dgK(yA2?=H7t1%yD`X;EQvcC7TBy2d-w}eEQJz--y(>FmamG!+6 zWwwV6-x^5bTLZP-w+1Tr`EC;R*1$wrQPGlIU16hNwL$pSK!mkiZ&~v}_j!8|zBMpG zEtU1Xk3K>8*1!@HC3c04{`?WM#J2_}sHL*L_fa$m-x^p#qQu~^QTLDH)gTm8SQoWa zR!x=AEUbV1y^r?{P-Q%+1n>$NLlsz%%KBo@CH+LqerLw;F zyYo^ud~;_BiL$qcjs9#9gm3OlP)lWf@3V{`d~;_BiM)r49A$iSXM$QP>wCSqyYIJ$ z!^Um*-C4e#ulB|nIf;d|^t}-AeKvc__bPGdzSE9TLLzMhJ(~?}$huZ1TavbO)edcF zW(hbfbdGKc~4N*y5@bqloxuU z#I6n5t`UwzS*an>dd}T>p(s(-O?@lv5gWxVx$yhO1z4)q8istJ06sfSU=_@ zs8w1U_QtKEgv9!pNP=3NZ*4zvw_IoqYQK_ywC=P=P0!uj^<$-yws*&CkP;H>ZIGar zzmI)I2?@@Hw&#?PD4vcPI$pITs8vQbh#EyX+bJQDd*Y(*oa+c`Ydp;tlRYq3vG55g% z!G1(p_HxZn*q|h1iTlylWM9>ryYxwTkp#~o>j`SvS5NL;5=we0mKCI&&t6fqu;jGWPrjKR_NjM{l(VLvD#QEV%==Uv7+ zf?B18K{PQj`auZ^m&g5>BBYh^abjLEyU&;yGb5wx^t_7otcXlvy$#kyEwBG^KPVxw zzUL&U#i$ggiMhtadArUA&f8U1OSo?0G!caJc8%?j;M%Ms?zt<8GWti}{_|ssA1XT+ zRe7@K{TYCSqPB=8(~ntV8>)+1#S1}9+E}<%@|#;CUrpPfM3Gur*^j=aQO|n`3B_R1 zO-}88^aQosKlyNEqf=dykWkcKYojNqMNhXj=tad6)$7=<@}zgeh9o4)JdW?@~{DUKNk^z1~JuZ>=J=C5r7T zXTBTdanD&7ePypt$9B~#$rLdj55;y7c@mCto`j>^oP@(yitTQ@V!O&B6jyA!oh2lw zRazLtxaX9RaCzL1DI#agLaiFxP;8eZPhL^ZlUI}{=T$FJY!@v;F?iaBV!I@&i&~5; zt*hAAfTY zhkyO(aY{(=HFGw*;on~$#25eI*-H}CQdzd^Tk4*B&kEw;6&EcjA;I_0+3cE2wg++l zp{p8#S}My%c|R{Nqt_g~JMMSCw|D=N5)$oO>UZ|NF^G>m_dN|kEtO@XzP?`m$B)IU z?KwX^yrhH#-k^)_)4%k*xUGHGiQ5{2S}My%{dK}GF1bI5k39J2OG-%KZM)d`=9#ml z=G99+x!DlZQdu_YuM^Hb{bfP?>(5`Yq=bau)$1=HzWm|W1@WJoXEX%0RF;iO{NnIi zgLv$+?;odxgnu8PUlf$NJFCCBJLQ*u+Yr=JSvD&1!uQqt-4|@V_ZTHZLTjb|IswFm zQ-rkqy%K2EZc1!JTJBT*b%J~TKbL*KA*f}KRKni<$>tezN=RUAy4egP*bvmh$QA;# zWKIbQ%&|gXCN>1MFhdK0**>R)gx89G4KtfzMKuJqywWQ1-PNj{Q$hl3zSy{S6&V_W zT8J2hK=heYLc+1D{<7xsjBvMJaZy81%aN}Vh@x{!NH_-9-owg;KfWf)SMA^E^7}&HXS4s?eO3^QdoD5& z5)xTnh*qT1-|B6m?3|r;NVP;|W?=;xe=JX}j#6^#wC?#`d%w1SOd>#`(Nt z13@==;)tMD=8Wx0I0#BexZGr9Yl+Or!V67C76g5gXAa+y1;M;z>|GLhddW9>d39<$ zs8z;BnM{mR)i*({JV!;n>j_Fo3HEq@<-ml6`0^-atx64WXqs4P5YW!tJe z{lv{yo{D_?5#!Nh$T5O>@`^hE5_t-nm{%mIRazT1CVSpXNUWcUtczNlZ*9-%lRQ~O z+v&rWpoB!`@Dn{JL9IM9gb!OAl#s}?NQ}*Tf?9d@Y40p!1oJ!?(I?MszO#&3(wu99 z$TMJnBdEFLcN~?+>zo9AWv`Fp6(v)IXGuM2%LnqVvLZ>+(|uXreHT6^{DM*1-V-W2 z`m}_4Xd9*8zO3)-iQEn1rjYb>t6W$1DP9Cr*4{O3!;&GfzUKp?f0ZfU*Yw$|wjcBl36E1frLt8ds8znl zXx4MofaoP8F!NXEs2C5{MXloLsHr)51wjc3ui){2F+ze`#nWM9Jc5*vaEuxMcM~M2 z<@HhTMa!9UE`RCFnXT&bWU7|<#EPDmb8Qeh*Rmh!w;<@lIvUG_B-EiLt2HfqmlL$g{E&1%hjm9-{FxBZ}mgv<5Di#DbR+<0|O zEQx+-MX4paX=DqvR`k93Z?J-(gamE3{UAXttrgj5c7w1%2?>r(YXg$bT*9CVzi35y2^ix z{LG7&(!cD17tR@-%X(D3aXXaXyBbR-h>(!Ta;*PoP1sP$Hk5g}ta@$38Cl&sKy>Sf z+N$4d+Zi_WZ{`WMAv(WjW;sEGgv78_YLEWncVyvr2OD2ezyQb9=6SY-kwnsm-KDbAjP`&v*XZr*Z z5)!siTZI?Jc!N~5^e&?j#Oq@2I3WD%@m|Y>B9Y3|Z;-Nqvr}j}c1^!Qijai$X8sU+ z@c0eV1hpK4r{5q&NJ2s}Kl)K$6bEmRCa8s7qMUJtZ;;WdQWpuueA%db)bI_`1hu?N zOus>jkc5O{zHHRJ7Oyh#25Ev?*dsKoFMQiQc!ulrOp0QcN)kS3^QUsb~1^&6xJNl0L9O3r{0j5kOV)WVn- zV)zCrqKtV*0&}bon2GTQX@XjqyM@4Pj~7J|W$wm*d7o>d^IEAn-0%(31hu>dD=~b7 z6d?%-tohQa;Txn0Y9W>sV)zCrLjR`#5{_NdZ;&Ra<(N4A1}Q=k5{|+3#4>z?G(j!L z_DT%jAVo+*!h8Gpj8k^6hyco|FiV<9q&-=G^`_H=_B*aYe|Oe5CL|%@nO|c`m>Ad) zK`pkh>Z4V$L#kEmExoXwpjMj!uvL_h;AplsNKmWI+i8QDB|TdD6ywCqvVVi@B_yzd z7j3Ip7q#rSNgLr^Nl17-j?aUvi(131Pc5tcprj$1oPoX~fmN#;;b?8m`bbbh!edi2 znRNuUTvN^ZrU*$$c*Zn0+mVm5E^66_<5lZ=6-&?$-Ks^;n;WmNK?wE8`Q!q@m*h>UaJLUbzUO%pjEwfYL%51-OS8Cc^ErgEEEJoV4v%1er#f)pvXWv8*Ngl z!O9(7>VE^b`A^WNUYne59O*S4{> ze){YuvuQ$}F(DeFr#{+v;I?aEv%a1{1A=Ouh&syUwPT~9o)pPbFWfWk1HByG%0h#x z=$3WYs0RcSg>XGI^jo)7g@!7TjYiRVAUrPw8W8=SlS@^}{`}YF?1wAMZ2$Yv6VHWe z@+tAE6459MTXacyUf+*yy;(~HkMcU<`!Vc;TvSL;OkuLBTsu*zkJ)tR>Vs~bVCs_^ znIOu062TKsqR)z+HXna*i*=&)TQA&`Y7cWu>v_5%I-f*xP0+dXl2GSPU^6Qbdg>N+ zW~DxyUQ6UzL5%k!1oWY7Qkwqae7 zJay}y2_n#av@D|Te{gb^=tef{(wio%l0ZN^A+lb`^Yk~X8F{g(R_kc=ggP7(sj9FJ z5vS|9Jc@O%YDmcA1hx~gDtWrvbGO)u2o>lmEh~PeRqd4K|c4dwDe-8vzLF+~(JHHc; zB|=ov$kQ!|;PJfJ+$hx(DW9U}o!XB`xMzxp8h2mb4YT^=`tNhs@aZ~TRZh5Pg2>ZV zAA0J=^N+sPtZtmS{oSQMw;z7>mFC3Zy&q+Ne0`^Rss8Gw>=+yW){9?Gyq%-IpRY3g z*R402&BL9LX-LR(@^I%_Aq3(<6uXo+@q8 zIN^Hh36Hw)^E+#%>mDb33PTMiJWAD0cHZLA+lM`uO;5b9(5YLGa+(TD!aYt<;qin= zv4bVy9w#_&#}gjK=_v`OE06afTX&@-+~dUh={n(2>PdIA)NqdzoaspXcKXA`r+;r9 zX&fB zKXtFFh*B<(!bT&U#6Y+QTX}Vk`##cXF9?sqjvDDk1;Rbp($IZm(&1d`))s_EVMh&} Rbj?ehy9Zku{$8o7{{V6`EI$AM literal 0 HcmV?d00001 diff --git a/data/widowx/meshes/gripper_rail_link.stl b/data/widowx/meshes/gripper_rail_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..e480ed586ab09dc677b178d0be3a4f6004a3ea29 GIT binary patch literal 17484 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 literal 0 HcmV?d00001 diff --git a/data/widowx/meshes/shoulder_link.stl b/data/widowx/meshes/shoulder_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..636d414033e1878b6d0afc26401b6b582ea0fab0 GIT binary patch literal 11884 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 jX`LG%G?=*4}$Pdsuti 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 LB}9bKw&ed0Cio@> literal 0 HcmV?d00001 diff --git a/data/widowx/widowx.urdf b/data/widowx/widowx.urdf new file mode 100644 index 000000000..0463f9336 --- /dev/null +++ b/data/widowx/widowx.urdf @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/pybullet/examples/widows.py b/examples/pybullet/examples/widows.py new file mode 100644 index 000000000..aa1af8cb5 --- /dev/null +++ b/examples/pybullet/examples/widows.py @@ -0,0 +1,21 @@ +import pybullet as p +import time + +p.connect(p.GUI) +p.loadURDF("table/table.urdf", 0.5000000,0.00000,-.820000,0.000000,0.000000,0.0,1.0) +p.setGravity(0,0,-10) +arm = p.loadURDF("widowx/widowx.urdf",useFixedBase=True) + +p.resetBasePositionAndOrientation(arm,[-0.098612,-0.000726,-0.194018],[0.000000,0.000000,0.000000,1.000000]) + + +while (1): + p.stepSimulation() + time.sleep(0.01) + #p.saveWorld("test.py") + viewMat = p.getDebugVisualizerCamera()[2] + #projMatrix = [0.7499999403953552, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, -1.0000200271606445, -1.0, 0.0, 0.0, -0.02000020071864128, 0.0] + projMatrix = p.getDebugVisualizerCamera()[3] + width=640 + height=480 + img_arr = p.getCameraImage(width=width,height=height,viewMatrix=viewMat,projectionMatrix=projMatrix)