Skip to content
Snippets Groups Projects
Commit 75340037 authored by Fernando Herrero's avatar Fernando Herrero
Browse files

helena_robot: updated launchs/xacro and files after sim tests

parent 3d57c97f
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0"?>
<!-- -->
<launch>
<!-- Convert an xacro and put on parameter server -->
<param name="robot_description" command="$(find xacro)/xacro.py $(find helena_description)/urdf/helena.xacro" />
<node pkg="robot_state_publisher" type="state_publisher" name="helena_tf_broadcaster">
<param name="tf_prefix" type="string" value="/helena"/>
<param name="publish_frequency" type="double" value="20.0"/>
</node>
</launch>
<?xml version="1.0"?>
<!-- Please note that this URDF will _not_ load in gazebo -->
<robot name="helena" xmlns:xacro="http://www.ros.org/wiki/xacro">
<!-- Import all Gazebo-customization elements, including Gazebo colors -->
<xacro:include filename="$(find helena_description)/urdf/helena.gazebo" />
<!-- Import Rviz colors -->
<xacro:include filename="$(find helena_description)/urdf/materials.xacro" />
<!-- Chassis -->
<link name="base_link">
<collision>
<origin xyz="0 0 0.19" rpy="0 0 0"/>
<geometry>
<box size="0.501000 0.400000 0.190000"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0.177" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/chassis.stl"/>
</geometry>
<material name="ChassisRed"/>
</visual>
<inertial>
<mass value="14" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.333800" ixy="0.0" ixz="0.0" iyy="0.4783" iyz="0.0" izz="0.3338" />
</inertial>
</link>
<!-- Top -->
<link name="top_plate">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/top.stl"/>
</geometry>
<material name="TopBlack"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="base_top_joint" type="fixed">
<origin xyz="0.003 0 0.274" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="top_plate"/>
</joint>
<!-- Axle~Hub~Wheel -->
<xacro:macro name="wheel" params="prefix rx ry">
<link name="${prefix}_axle">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/axle.stl"/>
</geometry>
<material name="AxleGrey"/>
</visual>
<inertial>
<mass value="1" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-3" ixy="0" ixz="0" iyy="1e-3" iyz="0" izz="1e-3" />
</inertial>
</link>
<joint name="${prefix}_axle_joint" type="continuous">
<origin xyz="${rx*0.135} ${ry*0.156} 0.111" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="${prefix}_axle"/>
<axis xyz="0 1 0"/>
<dynamics damping="0.5"/>
<cfmDamping>true</cfmDamping>
</joint>
<transmission name="${prefix}_tran">
<type>transmission_interface/SimpleTransmission</type>
<joint name="${prefix}_axle_joint">
<hardwareInterface>EffortJointInterface</hardwareInterface>
</joint>
<actuator name="${prefix}_motor">
<hardwareInterface>EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<link name="${prefix}_hub">
<visual>
<origin xyz="0 0 0" rpy="${ry * 1.57 - 1.57} 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/hub.stl"/>
</geometry>
<material name="HubcapYellow"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="${prefix}_hub_joint" type="fixed">
<origin xyz="0 ${ry*0.041} 0" rpy="0 0 0"/>
<parent link="${prefix}_axle"/>
<child link="${prefix}_hub"/>
</joint>
<link name="${prefix}_wheel">
<collision>
<origin xyz="0 0 0" rpy="1.57 0 0"/>
<geometry>
<cylinder radius="0.11" length="0.075"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/wheel.stl"/>
</geometry>
<material name="WheelBlack"/>
</visual>
<inertial>
<mass value="1.0" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1" />
</inertial>
</link>
<joint name="${prefix}_wheel_joint" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="${prefix}_hub"/>
<child link="${prefix}_wheel"/>
</joint>
</xacro:macro>
<xacro:wheel prefix="front_left" rx="1" ry="1" />
<xacro:wheel prefix="front_right" rx="1" ry="-1"/>
<xacro:wheel prefix="rear_left" rx="-1" ry="1" />
<xacro:wheel prefix="rear_right" rx="-1" ry="-1"/>
<!-- Sonar -->
<link name="front_sonar">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/front_sonar.stl"/>
</geometry>
<material name="SonarYellow"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="front_sonar_joint" type="fixed">
<origin xyz="0.193 0 0.25" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="front_sonar"/>
</joint>
<link name="rear_sonar">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/back_sonar.stl"/>
</geometry>
<material name="SonarYellow"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="rear_sonar_joint" type="fixed">
<origin xyz="-0.187 0 0.247" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="rear_sonar"/>
</joint>
<joint name="camera_joint" type="fixed">
<axis xyz="0 1 0" />
<origin xyz="0 0 0.4" rpy="0 0 0"/>
<parent link="top_plate"/>
<child link="camera_link"/>
</joint>
<!-- Camera -->
<link name="camera_link">
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.05 0.05 0.05"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.05 0.05 0.05"/>
</geometry>
<material name="Red"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="front_laser_joint" type="fixed">
<axis xyz="0 1 0" />
<xacro:include filename="$(find helena_description)/urdf/platform/platform.xacro" />
<xacro:include filename="$(find helena_description)/urdf/platform/platform.gazebo" />
<xacro:include filename="$(find helena_description)/urdf/sensors/laser.xacro" />
<xacro:include filename="$(find helena_description)/urdf/sensors/camera.xacro" />
<xacro:sensor_laser parent="top_plate" name="front_laser" prefix="$(arg name)">
<origin xyz="0.2 0 0.05" rpy="0 0 0"/>
<parent link="top_plate"/>
<child link="front_laser_link"/>
</joint>
<!-- Hokuyo Laser -->
<link name="front_laser_link">
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/hokuyo.dae"/>
</geometry>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="rear_laser_joint" type="fixed">
<axis xyz="0 1 0" />
</xacro:sensor_laser>
<xacro:sensor_laser parent="top_plate" name="rear_laser" prefix="$(arg name)">
<origin xyz="-0.2 0 0.05" rpy="0 0 3.14159"/>
<parent link="top_plate"/>
<child link="rear_laser_link"/>
</joint>
<!-- Hokuyo Laser -->
<link name="rear_laser_link">
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.1 0.1 0.1"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://helena_description/meshes/hokuyo.dae"/>
</geometry>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<!--<xacro:macro name="Sonar" params="id px py rz">
<link name="Sonar_${id}">
<visual>
<origin xyz="0 0 0" rpy="0 1.57 0"/>
<geometry>
<cylinder radius="0.01" length="0.005"/>
</geometry>
<material name="SonarGold"/>
</visual>
<inertial>
<mass value="1e-5" />
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
</inertial>
</link>
<joint name="Sonar_${id}_joint" type="fixed">
<origin xyz="${px} ${py} 0.25" rpy="0 0 ${rz}"/>
<parent link="Pioneer3AT/base_link"/>
<child link="Sonar_${id}"/>
</joint>
</xacro:macro>-->
<!-- Sonar offsets came from p2os_driver robot_params.cc -->
<!-- Not used, a lot of TF clutter
<xacro:Sonar id="1" px="0.145" py="0.13" rz="1.5705"/>
<xacro:Sonar id="2" px="0.185" py="0.115" rz="0.8725"/>
<xacro:Sonar id="3" px="0.22" py="0.08" rz="0.5235"/>
<xacro:Sonar id="4" px="0.24" py="0.025" rz="0.1745"/>
<xacro:Sonar id="5" px="0.24" py="-0.025" rz="-0.1745"/>
<xacro:Sonar id="6" px="0.22" py="-0.08" rz="-0.5235"/>
<xacro:Sonar id="7" px="0.185" py="-0.115" rz="-0.8725"/>
<xacro:Sonar id="8" px="0.145" py="-0.13" rz="-1.5705"/>
<xacro:Sonar id="9" px="-0.145" py="-0.13" rz="-1.5705"/>
<xacro:Sonar id="10" px="-0.185" py="-0.115" rz="-2.2685"/>
<xacro:Sonar id="11" px="-0.22" py="-0.08" rz="-2.6175"/>
<xacro:Sonar id="12" px="-0.24" py="-0.025" rz="-2.9665"/>
<xacro:Sonar id="13" px="-0.24" py="0.025" rz="2.9665"/>
<xacro:Sonar id="14" px="-0.22" py="0.08" rz="2.6175"/>
<xacro:Sonar id="15" px="-0.185" py="0.115" rz="2.2685"/>
<xacro:Sonar id="16" px="-0.145" py="0.13" rz="1.5705"/>
-->
</xacro:sensor_laser>
</robot>
<xacro:sensor_camera parent="top_plate" name="front_camera" prefix="$(arg name)">
<origin xyz="0.2 0 0.15" rpy="0 0 0"/>
</xacro:sensor_camera>
<!--
<xacro:sensor_camera parent="top_plate" name="rear_camera" prefix="$(arg name)">
<origin xyz="-0.1 0 0.4" rpy="0 0 3.14159"/>
</xacro:sensor_camera>
-->
</robot>
\ No newline at end of file
......@@ -32,5 +32,4 @@
<material name="Red">
<color rgba="0.9 0.0 0.0 1"/>
</material>
</robot>
</robot>
\ No newline at end of file
<?xml version="1.0"?>
<xacro xmlns:xacro="http://www.ros.org/wiki/xacro" name="VLP-16">
<xacro:property name="M_PI" value="3.1415926535897931" />
<xacro:property name="RATE" value="10" />
<xacro:property name="PIXEL_WIDTH" value="600" />
<xacro:property name="PIXEL_HEIGHT" value="480" />
<xacro:macro name="sensor_camera" params="parent name prefix *origin">
<joint name="${name}_mount_joint" type="fixed">
<xacro:insert_block name="origin" />
<parent link="${parent}"/>
<child link="${name}_link"/>
</joint>
<link name="${name}_link">
<inertial>
<mass value="0.1"/>
<origin xyz="0 0 0"/>
<inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.05 0.05 0.05"/>
</geometry>
<material name="Red"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.05 0.05 0.05"/>
</geometry>
</collision>
</link>
<joint name="${name}_optical_joint" type="fixed">
<origin xyz="0 0 0" rpy="${-M_PI/2} 0 ${-M_PI/2}"/>
<parent link="${name}_link"/>
<child link="${name}_link_optical"/>
</joint>
<link name="${name}_link_optical"/>
<gazebo reference="${name}_link">
<sensor type="camera" name="${name}">
<update_rate>${RATE}</update_rate>
<camera name="${name}">
<horizontal_fov>1.3962634</horizontal_fov>
<image>
<width>${PIXEL_WIDTH}</width>
<height>${PIXEL_HEIGHT}</height>
<format>R8G8B8</format>
</image>
<clip>
<near>0.02</near>
<far>300</far>
</clip>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.007</stddev>
</noise>
</camera>
<plugin name="camera_${name}_controller" filename="libgazebo_ros_camera.so">
<alwaysOn>true</alwaysOn>
<updateRate>0.0</updateRate>
<cameraName>${prefix}/${name}</cameraName>
<imageTopicName>image_raw</imageTopicName>
<cameraInfoTopicName>camera_info</cameraInfoTopicName>
<frameName>${prefix}/${name}_link_optical</frameName>
<hackBaseline>0.07</hackBaseline>
<distortionK1>0.0</distortionK1>
<distortionK2>0.0</distortionK2>
<distortionK3>0.0</distortionK3>
<distortionT1>0.0</distortionT1>
<distortionT2>0.0</distortionT2>
</plugin>
</sensor>
</gazebo>
<gazebo reference="${name}_link">
<material>Gazebo/Red</material>
<mu1>0</mu1>
<mu2>0</mu2>
</gazebo>
</xacro:macro>
</xacro>
\ No newline at end of file
<?xml version="1.0"?>
<xacro xmlns:xacro="http://www.ros.org/wiki/xacro" name="VLP-16">
<xacro:property name="M_PI" value="3.1415926535897931" />
<xacro:property name="MESH" value="hokuyo.dae" />
<xacro:macro name="sensor_laser" params="parent name prefix *origin">
<joint name="${name}_mount_joint" type="fixed">
<xacro:insert_block name="origin" />
<parent link="${parent}"/>
<child link="${name}_link"/>
</joint>
<link name="${name}_link">
<inertial>
<mass value="0.5"/>
<origin xyz="0 0 0"/>
<inertia ixx="0.1" ixy="0" ixz="0" iyy="0.1" iyz="0" izz="0.1"/>
</inertial>
<visual>
<geometry>
<mesh filename="package://helena_description/meshes/${MESH}"/>
</geometry>
<material name="orange"/>
</visual>
<collision>
<origin xyz="0 0 0"/>
<geometry>
<!--<mesh filename="package://helena_description/meshes/${MESH}"/>-->
<box size="0.1 0.1 0.1"/>
</geometry>
</collision>
</link>
<gazebo reference="${name}_link">
<sensor type="ray" name="${name}_sensor">
<pose>0 0 0 0 0 0</pose>
<visualize>false</visualize>
<update_rate>40</update_rate>
<ray>
<scan>
<horizontal>
<samples>133</samples>
<resolution>1</resolution>
<min_angle>-1.570796</min_angle>
<max_angle>1.570796</max_angle>
</horizontal>
</scan>
<range>
<min>0.10</min>
<max>30.0</max>
<resolution>0.01</resolution>
</range>
<noise>
<type>gaussian</type>
<mean>0.0</mean>
<stddev>0.01</stddev>
</noise>
</ray>
<plugin name="gazebo_ros_head_laser_controller" filename="libgazebo_ros_laser.so">
<topicName>/${prefix}/sensors/${name}_scan</topicName>
<frameName>${prefix}/${name}_link</frameName>
</plugin>
</sensor>
</gazebo>
<gazebo reference="${name}_link">
<material>Gazebo/Orange</material>
<mu1>0</mu1>
<mu2>0</mu2>
</gazebo>
</xacro:macro>
</xacro>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment