|
| 1 | +<launch> |
| 2 | + |
| 3 | + <!-- ************** Global Parameters *************** --> |
| 4 | + <param name="use_sim_time" value="true"/> |
| 5 | + <arg name="controller" default="mpc" doc="opt: dwa, mpc, pure_pursuit"/> |
| 6 | + <arg name="model" default="serving_bot" doc="opt: serving_bot"/> |
| 7 | + <arg name="tf_prefix" default=""/> |
| 8 | + |
| 9 | + <!-- ************** GAZEBO Simulator *************** --> |
| 10 | + <arg name="x_pos" default="0.0"/> |
| 11 | + <arg name="y_pos" default="0.0"/> |
| 12 | + <arg name="z_pos" default="0.0"/> |
| 13 | + <arg name="roll" default="0"/> |
| 14 | + <arg name="pitch" default="0"/> |
| 15 | + <arg name="yaw" default="-1.507"/> |
| 16 | + <arg name="gui" default="false"/> |
| 17 | + |
| 18 | + <!-- ************** Robot model *************** --> |
| 19 | + <param name="robot_description" command="$(find xacro)/xacro.py $(find servingbot_description)/urdf/servingbot.urdf.xacro" if="$(eval model == 'serving_bot')"/> |
| 20 | + |
| 21 | + <include file="$(find gazebo_ros)/launch/empty_world.launch"> |
| 22 | + <arg name="world_name" value="$(find mpc_ros)/worlds/big_s_world.world"/> |
| 23 | + <arg name="paused" value="false"/> |
| 24 | + <arg name="use_sim_time" value="true"/> |
| 25 | + <arg name="gui" value="$(arg gui)"/> |
| 26 | + <arg name="headless" value="false"/> |
| 27 | + <arg name="debug" value="false"/> |
| 28 | + </include> |
| 29 | + |
| 30 | + |
| 31 | + <node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-urdf -model servingbot -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -R $(arg roll) -P $(arg pitch) -Y $(arg yaw) -param robot_description" /> |
| 32 | + |
| 33 | + <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher"> |
| 34 | + <param name="publish_frequency" type="double" value="50.0" /> |
| 35 | + </node> |
| 36 | + |
| 37 | + |
| 38 | + <!-- ************** Map ************** --> |
| 39 | + <node name="map_server" pkg="map_server" type="map_server" args="$(find mpc_ros)/map/big_s_world.yaml" output="screen"> |
| 40 | + <param name="frame_id" value="map"/> |
| 41 | + </node> |
| 42 | + |
| 43 | + |
| 44 | + <!-- ************** Localization ************** --> |
| 45 | + |
| 46 | + <node pkg="amcl" type="amcl" name="amcl" output="screen"> |
| 47 | + <rosparam file="$(find mpc_ros)/params/amcl_params.yaml" command="load" /> |
| 48 | + <param name="initial_pose_x" value="$(arg x_pos)"/> |
| 49 | + <param name="initial_pose_y" value="$(arg y_pos)"/> |
| 50 | + <param name="initial_pose_a" value="$(arg yaw)"/> |
| 51 | + </node> |
| 52 | + |
| 53 | + <!-- ************** Navigation *************** --> |
| 54 | + <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"> |
| 55 | + <rosparam file="$(find mpc_ros)/params/costmap_common_params.yaml" command="load" ns="global_costmap" /> |
| 56 | + <rosparam file="$(find mpc_ros)/params/costmap_common_params.yaml" command="load" ns="local_costmap" /> |
| 57 | + <rosparam file="$(find mpc_ros)/params/local_costmap_params.yaml" command="load" /> |
| 58 | + <rosparam file="$(find mpc_ros)/params/global_costmap_params.yaml" command="load" /> |
| 59 | + |
| 60 | + <!-- Global Planner --> |
| 61 | + <param name="base_global_planner" value="global_planner/GlobalPlanner" /> |
| 62 | + <param name="planner_frequency" value="1.0" /> |
| 63 | + <param name="planner_frequency" value="0.0" if="$(eval controller == 'pure_pursuit')"/> |
| 64 | + <param name="planner_patience" value="5.0" /> |
| 65 | + <rosparam file="$(find mpc_ros)/params/global_planner_params.yaml" command="load" /> |
| 66 | + |
| 67 | + <!-- Local Planner --> |
| 68 | + <rosparam file="$(find mpc_ros)/params/mpc_last_params.yaml" command="load" /> |
| 69 | + <param name="base_local_planner" value="mpc_ros/MPCPlannerROS" if="$(eval controller == 'mpc')"/> |
| 70 | + <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" if="$(eval controller == 'dwa')"/> |
| 71 | + |
| 72 | + <!-- external controller > |
| 73 | + <remap from="/cmd_vel" to="/fake_cmd" unless="$(eval controller == 'dwa')"/--> |
| 74 | + </node> |
| 75 | + |
| 76 | + <!-- ************** MPC Node ************** --> |
| 77 | + <!--node name="nav_mpc" pkg="mpc_ros" type="nav_mpc" output="screen" if="$(eval controller == 'mpc')" > |
| 78 | + <rosparam file="$(find mpc_ros)/params/mpc_last_params.yaml" command="load" /> |
| 79 | + </node--> |
| 80 | + |
| 81 | + <!-- ************** Pure Pursuit ************** --> |
| 82 | + <!--node name="Pure_Pursuit" pkg="mpc_ros" type="Pure_Pursuit" output="screen" if="$(eval controller == 'pure_pursuit')" > |
| 83 | + <rosparam file="$(find mpc_ros)/params/pure_pursuit_params.yaml" command="load" /> |
| 84 | + <remap from="/pure_pursuit/odom" to="/odom" /> |
| 85 | + <remap from="/pure_pursuit/global_planner" to="/move_base/GlobalPlanner/plan" /> |
| 86 | + <remap from="/pure_pursuit/goal" to="/move_base_simple/goal" /> |
| 87 | + <remap from="/pure_pursuit/cmd_vel" to="/cmd_vel" /> |
| 88 | + </node--> |
| 89 | + |
| 90 | + <!-- ************** Visualisation ************** --> |
| 91 | + <node name="rviz" pkg="rviz" type="rviz" args="-d $(find mpc_ros)/params/total_rviz_navigation.rviz"/> |
| 92 | +</launch> |
0 commit comments