From 4360e5e3e4407843bad4742caa4bcd9af6b07a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergi=20Hern=C3=A1ndez?= <shernand@iri.upc.edu> Date: Sun, 1 May 2016 19:40:50 +0200 Subject: [PATCH] Chnaged the rang of the simulated gyro to coincide with the real one (from 1023 to 511). Added rviz and gazebo models for the feet sensors (support board and cny70 sensor). --- .../include/bioloid_controller_cm510_impl.h | 4 +- .../meshes/bounding_boxes/cny70_bb.stl | Bin 0 -> 684 bytes bioloid_description/meshes/cny70.stl | Bin 0 -> 3884 bytes .../meshes/left_foot_board.stl | Bin 0 -> 1284 bytes .../meshes/right_foot_board.stl | Bin 0 -> 1284 bytes bioloid_description/urdf/bioloid_ceabot.xacro | 2 + bioloid_description/urdf/cny70_ir.gazebo | 55 +++++++++++ bioloid_description/urdf/cny70_ir.xacro | 38 ++++++++ bioloid_description/urdf/feet_ir.xacro | 91 ++++++++++++++++++ 9 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 bioloid_description/meshes/bounding_boxes/cny70_bb.stl create mode 100644 bioloid_description/meshes/cny70.stl create mode 100644 bioloid_description/meshes/left_foot_board.stl create mode 100644 bioloid_description/meshes/right_foot_board.stl create mode 100644 bioloid_description/urdf/cny70_ir.gazebo create mode 100644 bioloid_description/urdf/cny70_ir.xacro create mode 100644 bioloid_description/urdf/feet_ir.xacro diff --git a/bioloid_controller_cm510/include/bioloid_controller_cm510_impl.h b/bioloid_controller_cm510/include/bioloid_controller_cm510_impl.h index 6468d9a..7ccba10 100644 --- a/bioloid_controller_cm510/include/bioloid_controller_cm510_impl.h +++ b/bioloid_controller_cm510/include/bioloid_controller_cm510_impl.h @@ -354,12 +354,12 @@ namespace bioloid_controller_cm510 fb_imu_value=300.0; else if(fb_imu_value<-300.0) fb_imu_value=-300.0; - adc_values[BALANCE_GYRO_X_CHANNEL]=((fb_imu_value*512)/300.0)+512; + adc_values[BALANCE_GYRO_X_CHANNEL]=((fb_imu_value*256)/300.0)+256; if(lr_imu_value>300.0) lr_imu_value=300.0; else if(lr_imu_value<-300.0) lr_imu_value=-300.0; - adc_values[BALANCE_GYRO_Y_CHANNEL]=((lr_imu_value*512)/300.0)+512; + adc_values[BALANCE_GYRO_Y_CHANNEL]=((lr_imu_value*256)/300.0)+256; } else { diff --git a/bioloid_description/meshes/bounding_boxes/cny70_bb.stl b/bioloid_description/meshes/bounding_boxes/cny70_bb.stl new file mode 100644 index 0000000000000000000000000000000000000000..e3ef1eb5536cbc62de80c30f3b56d6c132d32e75 GIT binary patch literal 684 zcmXTU&&f<tNY1M?H;7M4QlJ>{Fu*{=eh|wkAyp5EcSA9ZZM|&v5t!I+R2|4NNV<`A zSi^KMG%zqU?1!qdMzdo#)FiMtst#lsBs*X_z%GO7Xs`#dkn8}N2l5BlTqKj=u7c=5 zmcgL|?sJe04faq~Als4c!0vOf4yYZtbbw3&y9(kWkS)kAL1M$~1DOPN6^0J53=SO- eJHYV`vIE)YNNnWL#jXQn2h6u17a{8ax(Wc89L^d5 literal 0 HcmV?d00001 diff --git a/bioloid_description/meshes/cny70.stl b/bioloid_description/meshes/cny70.stl new file mode 100644 index 0000000000000000000000000000000000000000..069b736f6734e8ae653bd8bfc6451426628da060 GIT binary patch literal 3884 zcmb`JF>Vw=5JflO4kQj75h60AwZvM81c`_fSONkh1OXA*9)KGdQfI_SUL+H60j|L* zsQ;^eb@g<&M8HTpE>HLC|EsEdc0Yc2_xAPqtM{KCKRW*(*NYvl;~j2@ZmxfwUOxZ2 ze{%SItN7lxpNel0V_r|(|Na}q9t2{W#rWyfn+tqK!ZdD0AQk~_#3Nzrc7z<p^NA~| z!&Ss5IfV99BlDOL6OC==auqe4Yh<>jL1$5EJ|A7x`cxtuE~=}FYF210s;jz}T3x7C z%YL9%+8Nt;lDTRkCxu4llj?2=&JsO$Rr9d864*Tp4b=)nb!G8956t2YuY`8!*g=d) zL$jjN?EgsAK35{*Ngfk|y@}_irH0N#W*%-Q8XAcnWOe^dW7CiQyysf0^jUe}T{6#u zBU{4Ut~HX-EYOIxOR`=&Q++5`CFc3ibIiuY_afh-8d(rLwa$QwS#(th_Qw9t%o_o} z8krCnW3A}wfP2isTKFI*{H+@4>PVt!tccWbomlr2YfGcnDm9!4jTHf167Fb|2dLC2 z+H^G#n7ty>l{)zBN9=Yx=N{|K>p8sO62biw=X@meE^)@F1J;c*ks5kS=(%Q7#|VBq zcN!uFSBKr@*^M;Zd)4!msw=A(i8dly8dFzyeSKV`)~aeS4<o!*)s+Znh^W6Zs`skV z`s8cd{fJ1e-1|sK19O@AgOaViagyNMCo<<du@c#jDPbB(kjh$_t0X+m-7^qvM6N^( zuJAi9GlzPq0`tHwsjm9HyCR^6m36hfTM3VI_Y6cEkt-3^Rp0a2)tQI%YUVwmkzS*9 zGjq7xUHwtd`PPr>@;f6=+V<Ok1oK!D^IBOR9Z@pxG~f=^WzVOC<<}9|yI*+Dq2W7& zXCi1{sk#!;Mxs_70f(v;U2*S1y=r*u6{#8`+K4nn$gR(``w@|5sn43F-pJL^^Q_gD zsIH8<Jj<Tj$iA#=ak|~Z3oa3DWJZ{)BuH5Yy$4mp<E;8Xv=M2Dh^i-{4rZU3M`X@C z5LZ_sTmvJ$!=}x&<95uRSHfejNY!BGMzj%Wh^Vgm4mR(7PBrtM&`7Vra~_%h1xd=u Ad;kCd literal 0 HcmV?d00001 diff --git a/bioloid_description/meshes/left_foot_board.stl b/bioloid_description/meshes/left_foot_board.stl new file mode 100644 index 0000000000000000000000000000000000000000..54942f0efd0396079f68821d4a7f869a8c41d6e1 GIT binary patch literal 1284 zcmbV~u}T9$5QY~^J1Yg7K%PKMp^$Lk8`xP0QAq-Uz=27VZt-1gZ3QjT<ONb$Sc;tw z;r%;&$?UCKxW(P>%zX3D?9RNNO-G&Cc(NEy>UuG}t8ec|o&T?+pcSk1Yd+og<=}LE z@^o?Y`O5z4yw}(M@Okqhdr9E=i4dK#$Mg+xwg1*FG?Z6%GL-}#G^h}}h`2J15YW(> zz1JWvCzR_qg3d!U)=1rzC(IWDnbJ9$)d)OPB_EwzobN*xX?#2$57-l>OxSmQ$m=~+ zh#i`LtiCSK(tD5#J=uMxobVn9G%V9W|2oap^kJ{!)ie!WkGZlbX%o_D6Gc^#`Smxd zN_^+OLcO3(JXJ9niej#`_p_T5@}TEw>82Ii8lF&uzlEIe9yC%!^U3;X&bxQlT`8(P qOa7hY&k4PhCyLwM5=3!7%1h^HE5DX$K*+*7dwP4je-etytNI4==5S>I literal 0 HcmV?d00001 diff --git a/bioloid_description/meshes/right_foot_board.stl b/bioloid_description/meshes/right_foot_board.stl new file mode 100644 index 0000000000000000000000000000000000000000..567d6bb539f501c27a133637d071f0c4a9060b51 GIT binary patch literal 1284 zcmbW0u}T9$5QY~^I}wavVIZxIXb~Y2@CDS)LWoLG4}^o5Cf#A-a|Bed5Wz+vB0<Ot zq_QxLh>iFV-gnE-&1E?Yx44_k%s2n+&Ez~ji`vyrbaL8l9mjFEbrc_V+SPxbMd#dO z<!&K;r6(EAzSUmVMyvN9+Yj@2uv7mf{>syM;QiA?9?1!4{Lt7*lV`oRQj^Bk!Pm3w z<<X=s4g4WNtug}Ix!3R8YdG#vd+%lUumm=KRSF43)Rk!YeQloUJ+7p&x3S)kZ8h+R z1hvWtXy@h{`$M?sVy5}CThH$Cd9$=B4QTvS!XFZfSOQzxzJD~B%g$ijXU^2JdiYf- zBowhku`4@sl>9C^XZ7$?i8m+T5`HOSiDFk|iNcbGCdj^8njDVTu@OtyJNbMO%F>+C z)0SZCf0Jv7AfkC#T3hlrp_!xMXYTt-*pvhfzLnJNcf$?|ZG(CzOI=|Xy2>;}5Rsmx VrJdcQlpt$*OLD?SqybT!`7hU=*D(M9 literal 0 HcmV?d00001 diff --git a/bioloid_description/urdf/bioloid_ceabot.xacro b/bioloid_description/urdf/bioloid_ceabot.xacro index 474d40e..2c1d925 100755 --- a/bioloid_description/urdf/bioloid_ceabot.xacro +++ b/bioloid_description/urdf/bioloid_ceabot.xacro @@ -2,6 +2,7 @@ <xacro:include filename="$(find bioloid_description)/urdf/bioloid.xacro" /> <xacro:include filename="$(find bioloid_description)/urdf/sharp_ir.xacro" /> + <xacro:include filename="$(find bioloid_description)/urdf/feet_ir.xacro" /> <xacro:sharp_ir name="IR1" parent="base_link" update_rate="100" fov="0.05" min_range="0.1" max_range="0.8"> <origin xyz="0 0.0 0.035" rpy="-1.5707 -1.5707 0" /> @@ -9,5 +10,6 @@ <xacro:sharp_ir name="IR2" parent="base_link" update_rate="100" fov="0.05" min_range="0.1" max_range="0.8"> <origin xyz="0 -0.05 0.035" rpy="-1.5707 -1.5707 0" /> </xacro:sharp_ir> + <xacro:feet_ir left_parent="left_leg_ankle_roll" right_parent="right_leg_ankle_roll" update_rate="100" range="0.005"/> </robot> diff --git a/bioloid_description/urdf/cny70_ir.gazebo b/bioloid_description/urdf/cny70_ir.gazebo new file mode 100644 index 0000000..a0b2b85 --- /dev/null +++ b/bioloid_description/urdf/cny70_ir.gazebo @@ -0,0 +1,55 @@ +<?xml version="1.0"?> + +<root xmlns:xacro="http://ros.org/wiki/xacro"> + + <xacro:macro name="cny70_ir_gazebo" params="name update_rate fov min_range max_range"> + <gazebo reference="${name}_ir_link"> + <material>Gazebo/Black</material> + <gravity>true</gravity> + <self_collide>false</self_collide> + <mu1>0.200000</mu1> + <mu2>0.200000</mu2> + </gazebo> + + <gazebo reference="${name}_ir_joint"> + <implicitSpringDamper>true</implicitSpringDamper> + </gazebo> + + <gazebo reference="${name}_ir_link"> + <sensor type="ray" name="${name}"> + <always_on>true</always_on> + <update_rate>${update_rate}</update_rate> + <visualize>false</visualize> + <ray> + <scan> + <horizontal> + <samples>1</samples> + <resolution>1</resolution> + <min_angle>-${fov/2}</min_angle> + <max_angle>${fov/2}</max_angle> + </horizontal> + <vertical> + <samples>1</samples> + <resolution>1</resolution> + <min_angle>-${fov/2}</min_angle> + <max_angle>${fov/2}</max_angle> + </vertical> + </scan> + <range> + <min>${min_range}</min> + <max>${max_range}</max> + <resolution>0.001</resolution> + </range> + </ray> + <plugin name="${name}_range_sensor" filename="libgazebo_ros_range.so"> + <frameName>${name}_ir_link</frameName> + <topicName>/bioloid/sensors/range</topicName> + <radiation>infrared</radiation> + <fov>${fov}</fov> + <gaussianNoise>0.01</gaussianNoise> + <updateRate>${update_rate}</updateRate> + </plugin> + </sensor> + </gazebo> + </xacro:macro> +</root> diff --git a/bioloid_description/urdf/cny70_ir.xacro b/bioloid_description/urdf/cny70_ir.xacro new file mode 100644 index 0000000..1798773 --- /dev/null +++ b/bioloid_description/urdf/cny70_ir.xacro @@ -0,0 +1,38 @@ +<?xml version="1.0"?> + +<root xmlns:xacro="http://ros.org/wiki/xacro"> + + <xacro:include filename="$(find bioloid_description)/urdf/cny70_ir.gazebo" /> + + <xacro:macro name="cny70_ir" params="name parent *origin update_rate fov min_range max_range"> + <!-- IR distance sensors --> + <link name="${name}_ir_link"> + <collision> + <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/bounding_boxes/cny70_bb.stl" /> + </geometry> + </collision> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/cny70.stl"/> + </geometry> + <material name="black"/> + </visual> + <inertial> + <mass value="0.0007" /> + <origin xyz="-0.00307736 0.0000000 0.00000000" rpy="0 0 0"/> + <inertia ixx="0.000000001" ixy="0.00000000" ixz="0.000000" iyy="0.000000001" iyz="0.00000000" izz="0.000000001" /> + </inertial> + </link> + <joint name="${name}_ir_joint" type="fixed"> + <xacro:insert_block name="origin" /> + <parent link="${parent}"/> + <child link="${name}_ir_link"/> + </joint> + + <xacro:cny70_ir_gazebo name="${name}" update_rate="${update_rate}" fov="${fov}" min_range="${min_range}" max_range="${max_range}"/> + </xacro:macro> +</root> + diff --git a/bioloid_description/urdf/feet_ir.xacro b/bioloid_description/urdf/feet_ir.xacro new file mode 100644 index 0000000..04dc1af --- /dev/null +++ b/bioloid_description/urdf/feet_ir.xacro @@ -0,0 +1,91 @@ +<?xml version="1.0"?> + +<root xmlns:xacro="http://ros.org/wiki/xacro"> + + <xacro:include filename="$(find bioloid_description)/urdf/cny70_ir.xacro" /> + + <xacro:macro name="feet_ir" params="left_parent right_parent update_rate range"> + <!-- IR distance sensors --> + <link name="left_board_link"> + <collision> + <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/left_foot_board.stl" /> + </geometry> + </collision> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/left_foot_board.stl"/> + </geometry> + <material name="green"/> + </visual> + <inertial> + <mass value="0.011" /> + <origin xyz="0.02939017 -0.00080000 0.01656892" rpy="0 0 0"/> + <inertia ixx="0.00000152" ixy="0.00000000" ixz="-0.00000061" iyy="0.00000465" iyz="0.00000000" izz="0.00000313" /> + </inertial> + </link> + + <joint name="left_board_joint" type="fixed"> + <origin xyz="-0.024 -0.0179 0.024" rpy="0 0 0"/> + <parent link="${left_parent}"/> + <child link="left_board_link"/> + </joint> + + <!-- sensor links --> + <xacro:cny70_ir name="left_front_fwd" parent="left_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="0.0085 -0.0055 0.038" rpy="-1.5707 -1.5707 0" /> + </xacro:cny70_ir> + + <xacro:cny70_ir name="left_front_dwn" parent="left_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="0.0225 -0.012 0.038" rpy="0 0 -1.5707" /> + </xacro:cny70_ir> + + <xacro:cny70_ir name="left_lateral_dwn" parent="left_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="0.0575 -0.012 0.0065" rpy="0 0 -1.5707" /> + </xacro:cny70_ir> + + <link name="right_board_link"> + <collision> + <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/right_foot_board.stl" /> + </geometry> + </collision> + <visual> + <origin xyz="0 0 0" rpy="0 0 0"/> + <geometry> + <mesh filename="package://bioloid_description/meshes/right_foot_board.stl"/> + </geometry> + <material name="green"/> + </visual> + <inertial> + <mass value="0.011" /> + <origin xyz="-0.02939017 -0.00080000 0.01656892" rpy="0 0 0"/> + <inertia ixx="0.00000152" ixy="0.00000000" ixz="0.00000061" iyy="0.00000465" iyz="0.00000000" izz="0.00000313" /> + </inertial> + </link> + + <joint name="right_board_joint" type="fixed"> + <origin xyz="0.024 -0.0179 0.024" rpy="0 0 0"/> + <parent link="${right_parent}"/> + <child link="right_board_link"/> + </joint> + + <!-- sensor links --> + <xacro:cny70_ir name="right_front_fwd" parent="right_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="-0.0085 -0.0055 0.038" rpy="-1.5707 -1.5707 0" /> + </xacro:cny70_ir> + + <xacro:cny70_ir name="right_front_dwn" parent="right_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="-0.0225 -0.012 0.038" rpy="0 0 -1.5707" /> + </xacro:cny70_ir> + + <xacro:cny70_ir name="right_lateral_dwn" parent="right_board_link" update_rate="${update_rate}" fov="0.05" min_range="${range}" max_range="${range}"> + <origin xyz="-0.0575 -0.012 0.0065" rpy="0 0 -1.5707" /> + </xacro:cny70_ir> + + </xacro:macro> +</root> + -- GitLab