<launch>
<arg name="use_imu" default="true"/>
+ <node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager"/>
+
<!-- Load joint controller configurations from YAML file to parameter server -->
<rosparam file="$(find wild_thumper)/config/control.yaml" command="load" />
<rosparam param="/diff_drive_controller/enable_odom_tf" unless="$(arg use_imu)">true</rosparam>
<!-- load the controllers -->
<node name="controller_spawner" pkg="controller_manager" type="spawner" output="screen" ns="/" args="joint_state_controller diff_drive_controller"/>
- <node name="relay_cmd_vel" pkg="topic_tools" type="relay" output="screen" args="/cmd_vel /diff_drive_controller/cmd_vel" />
+ <node name="relay_cmd_vel" pkg="topic_tools" type="relay" output="screen" args="/cmd_vel_out /diff_drive_controller/cmd_vel" />
<node name="relay_odom" pkg="topic_tools" type="relay" output="screen" args="/diff_drive_controller/odom /odom" />
<node pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" name="depthimage_to_laserscan" output="screen">
<param name="debug" value="true"/>
<param name="sensor_timeout" value="2.0"/>
</node>
+
+ <include file="$(find yocs_cmd_vel_mux)/launch/cmd_vel_mux.launch">
+ <arg name="config_file" value="$(find wild_thumper)/config/cmd_vel_mux.yaml" />
+ <arg name="nodelet_manager_name" value="nodelet_manager" />
+ </include>
</launch>
<node pkg="gmapping" type="slam_gmapping" name="slap_gmapping" if="$(arg slam_gmapping)">
<param name="scan" value="scan" />
<param name="delta" value="0.01" />
- <param name="map_update_interval" value="30" />
+ <param name="map_update_interval" value="5.0" />
<param name="linearUpdate" value="0.5" />
<param name="angularUpdate" value="0.25" />
<param name="xmin" value="-5.0"/>
<param name="xmax" value="5.0"/>
<param name="ymax" value="5.0"/>
<param name="odom_frame" value="odom"/>
+ <param name="maxUrange" value="6.0"/>
+ <param name="maxRange" value="8.0"/>
+ <param name="minimumScore" value="200"/>
+ <param name="linearUpdate" value="0.5"/>
+ <param name="particles" value="80"/>
</node>
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
</geometry>
</collision>
<visual>
+ <origin xyz="-0.00275 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://wild_thumper/meshes/wild_thumper_4wd.stl" />
</geometry>
</visual>
<inertial>
+ <origin xyz="-0.00275 0 -0.02" rpy="0 0 0"/>
<mass value="2.5"/>
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
</inertial>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="0.1"/>
- <inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
+ <inertia ixx="0.005" ixy="0" ixz="0" iyy="0.005" iyz="0" izz="0.005"/>
</inertial>
</link>
+
+ <gazebo reference="${pos}_${side}_wheel">
+ <mu1 value="1.0"/>
+ <mu2 value="1.0"/>
+ <kp value="1000000.0" />
+ <kd value="1.0" />
+ <fdir1 value="1 0 0"/>
+ </gazebo>
+
<joint name="${pos}_${side}_wheel_joint" type="continuous">
<parent link="base_link"/>
<child link="${pos}_${side}_wheel"/>
<hardwareInterface>VelocityJointInterface</hardwareInterface>
</joint>
<actuator name="{pos}_${side}_wheel_motor">
- <hardwareInterface>VelocityJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
</xacro:macro>
- <xacro:wheel pos="rear" side="left" xyz="-0.06398 0.114 -0.022446" rpy="0 0 0" />
- <xacro:wheel pos="rear" side="right" xyz="-0.07397 -0.114 -0.022446" rpy="0 0 0" />
- <xacro:wheel pos="front" side="left" xyz="0.07602 0.114 -0.022446" rpy="0 0 0" />
- <xacro:wheel pos="front" side="right" xyz="0.07397 -0.114 -0.022446" rpy="0 0 0" />
+ <xacro:wheel pos="rear" side="left" xyz="-0.07525 0.12 -0.025" rpy="${-5*PI/180} 0 0" />
+ <xacro:wheel pos="rear" side="right" xyz="-0.07525 -0.12 -0.025" rpy="${5*PI/180} 0 0" />
+ <xacro:wheel pos="front" side="left" xyz=" 0.07525 0.12 -0.025" rpy="${-5*PI/180} 0 0" />
+ <xacro:wheel pos="front" side="right" xyz=" 0.07525 -0.12 -0.025" rpy="${5*PI/180} 0 0" />
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<frameName>base_imu_link</frameName>
<xyzOffsets>0 0 0</xyzOffsets>
<rpyOffset>0 0 0</rpyOffset>
+ <serviceName>/default_imu</serviceName>
</plugin>
</gazebo>
</gazebo>
</xacro:macro>
- <xacro:range_sensor name="sonar_forward" ros_topic="range_forward" update_rate="10" minRange="0.04" maxRange="6" fov="${30*PI/180}" radiation="ultrasound" />
- <xacro:range_sensor name="sonar_backward" ros_topic="range_backward" update_rate="10" minRange="0.04" maxRange="6" fov="${30*PI/180}" radiation="ultrasound" />
+ <xacro:range_sensor name="sonar_forward" ros_topic="range_forward" update_rate="10" minRange="0.04" maxRange="0.5" fov="${20*PI/180}" radiation="ultrasound" />
+ <xacro:range_sensor name="sonar_backward" ros_topic="range_backward" update_rate="10" minRange="0.04" maxRange="0.5" fov="${20*PI/180}" radiation="ultrasound" />
<xacro:range_sensor name="ir_left" ros_topic="range_left" update_rate="10" minRange="0.04" maxRange="0.3" fov="${5*PI/180}" radiation="infrared" />
<xacro:range_sensor name="ir_right" ros_topic="range_right" update_rate="10" minRange="0.04" maxRange="0.3" fov="${5*PI/180}" radiation="infrared" />
</robot>
--- /dev/null
+<?xml version="1.0" ?>
+<sdf version="1.4" >
+ <world name="default" >
+ <include>
+ <uri>model://ground_plane</uri>
+ </include>
+ <include>
+ <uri>model://sun</uri>
+ </include>
+ <include>
+ <uri>model://gas_station</uri>
+ <name>gas_station</name>
+ <pose>-2.0 7.0 0 0 0 0</pose>
+ </include>
+ <physics type='ode'>
+ <max_step_size>0.02</max_step_size>
+ <real_time_update_rate>50</real_time_update_rate>
+ </physics>
+ </world>
+</sdf>
<uri>model://sun</uri>
</include>
<include>
- <uri>model://gas_station</uri>
- <name>gas_station</name>
- <pose>-2.0 7.0 0 0 0 0</pose>
+ <uri>model://regerstr</uri>
+ <name>regerstr</name>
+ <pose>-5.0 5.0 0 1.5708 0 0</pose>
</include>
<physics type='ode'>
<max_step_size>0.02</max_step_size>
--- /dev/null
+<?xml version="1.0" ?>
+<sdf version="1.4" >
+ <world name="default" >
+ <include>
+ <uri>model://ground_plane</uri>
+ </include>
+ <include>
+ <uri>model://sun</uri>
+ </include>
+ <include>
+ <uri>model://willowgarage</uri>
+ <name>willowgarage</name>
+ <pose>-17.0 -9.0 0 0 0 0</pose>
+ </include>
+ <physics type='ode'>
+ <max_step_size>0.02</max_step_size>
+ <real_time_update_rate>50</real_time_update_rate>
+ </physics>
+ </world>
+</sdf>