git commit -m "first commit for v2"
This commit is contained in:
50
Controllers/Packages/amr_startup/launch/amr_control.launch
Normal file
50
Controllers/Packages/amr_startup/launch/amr_control.launch
Normal file
@@ -0,0 +1,50 @@
|
||||
<launch>
|
||||
<arg name="robot_type" default="T800" doc="Can be 'hook_150' or 'imr' for now." />
|
||||
<arg name="local_planner" default="pnkx" doc="Local planner can be either dwa, dwb, eband, base, teb or pose" />
|
||||
<arg name="global_planner" default="custom" doc="Global planner can be either sbpl two_points custom"/>
|
||||
<arg name="global_plan_msg_type" default="vda5050_msgs::Order" doc="nav_msgs::Path or vda5050_msgs::Order"/>
|
||||
<arg name="primitive_filename" default="$(find amr_startup)/config/mprim/unicycle_highcost_5cm.mprim"/>
|
||||
<arg name="with_virtual_walls" default="true" doc="Enables usage of virtual walls when set. Set to false when running SLAM." />
|
||||
<arg name="prefix" default="" doc="Prefix used for robot tf frames" /> <!-- used in the config files -->
|
||||
|
||||
<param name="rosconsole_config_file" value="$(find amr_startup)/rosconsole.config"/>
|
||||
<rosparam file="$(find amr_startup)/config/mqtt_general.yaml" command="load" />
|
||||
<node pkg="amr_control" type="amr_control_node" respawn="false" name="amr_node" output="screen" clear_params="true">
|
||||
<!-- robot type -->
|
||||
<rosparam param="footprint" if="$(eval robot_type == 'imr')">
|
||||
[[0.412, -0.304], [0.412, 0.304], [-0.412, 0.304], [-0.412, -0.304]]
|
||||
</rosparam>
|
||||
<!-- Footprint cho imr -->
|
||||
<rosparam param="footprint" if="$(eval robot_type == 'hook_150')">
|
||||
[[0.511,-0.1955],[0.511,0.1955],[-0.511,0.1955],[-0.511,-0.1955]]
|
||||
</rosparam>
|
||||
|
||||
<rosparam param="footprint" if="$(eval robot_type == 'T800')">
|
||||
[[0.583,-0.48],[0.583,0.48],[-0.583,0.48],[-0.583,-0.48]]
|
||||
</rosparam>
|
||||
|
||||
<param name="primitive_filename" value="$(arg primitive_filename)" />
|
||||
<param name="global_plan_msg_type" value="$(arg global_plan_msg_type)" />
|
||||
|
||||
<rosparam file="$(find amr_startup)/config/maker_sources.yaml" command="load" />
|
||||
<rosparam file="$(find amr_startup)/config/move_base_common_params.yaml" command="load" />
|
||||
<rosparam file="$(find amr_startup)/config/$(arg global_planner)_global_params.yaml" command="load" />
|
||||
<rosparam file="$(find amr_startup)/config/$(arg local_planner)_local_planner_params.yaml" command="load" />
|
||||
|
||||
<!-- global costmap params -->
|
||||
<rosparam file="$(find amr_startup)/config/costmap_common_params.yaml" command="load" ns="global_costmap" subst_value="true" />
|
||||
<rosparam file="$(find amr_startup)/config/costmap_global_params.yaml" command="load" />
|
||||
<rosparam file="$(find amr_startup)/config/costmap_global_params_plugins_no_virtual_walls.yaml" command="load" />
|
||||
|
||||
<!-- local costmap params -->
|
||||
<rosparam file="$(find amr_startup)/config/costmap_common_params.yaml" command="load" ns="local_costmap" subst_value="true" />
|
||||
<rosparam file="$(find amr_startup)/config/costmap_local_params.yaml" command="load" subst_value="true" />
|
||||
<rosparam file="$(find amr_startup)/config/costmap_local_params_plugins_no_virtual_walls.yaml" command="load" />
|
||||
|
||||
<rosparam file="$(find amr_startup)/config/localization.yaml" command="load" />
|
||||
|
||||
<remap from="map" to="/map" />
|
||||
<remap from="marker" to="move_base_node/markers" />
|
||||
<!-- <remap from="cmd_vel" to="/cmd_vel_1" /> -->
|
||||
</node>
|
||||
</launch>
|
||||
102
Controllers/Packages/amr_startup/launch/amr_startup.launch
Normal file
102
Controllers/Packages/amr_startup/launch/amr_startup.launch
Normal file
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="tf_prefix" default="" />
|
||||
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="base_footprint_to_base_link" args="0 0 0 0 0 0 base_footprint base_link" />
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="imu_link_to_base_link" args="0 0 0.45 0 0 0 base_link imu_link" />
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="surface_to_base_link" args="0 0 0.9 0 0 0 base_link surface" />
|
||||
|
||||
|
||||
<include file="$(find sick_line_guidance)/launch/sick_line_guidance.launch">
|
||||
<arg name="yaml" value="$(find amr_startup)/config/sick_line_guidance_mls.yaml"/>
|
||||
</include>
|
||||
<include file="$(find mlse_tf_base_link)/launch/msle_tf_base_link.launch">
|
||||
<arg name="yaml" value="$(find amr_startup)/config/sick_line_guidance_mls.yaml"/>
|
||||
</include>
|
||||
|
||||
<node pkg="diff_wheel_plugin" type="diff_wheel_feedback" name="diff_wheel_feedback" output="screen">
|
||||
<rosparam file="$(find amr_startup)/config/plc_config.yaml" command="load" />
|
||||
<param name="start_bit" value="111"/>
|
||||
<param name="end_bit" value="114"/>
|
||||
</node>
|
||||
|
||||
<node pkg="diff_wheel_plugin" type="diff_wheel_controller" name="diff_wheel_controller" output="screen">
|
||||
<rosparam file="$(find amr_startup)/config/motorInfomation.yaml" command="load" />
|
||||
<param name="port_name" type="str" value="/dev/ttyTHS0"/>
|
||||
</node>
|
||||
|
||||
<arg name="frame_id" default="imu_frame"/>
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="$(arg frame_id)_to_imu_link" args="0 0 0 0 0 0 imu_link $(arg frame_id)" />
|
||||
<node pkg="wit_wt901ble_reader" name="wit_wt901ble_reader_node" type="wit_wt901ble_reader_node" output="screen">
|
||||
<param name="baudrate" type="int" value="115200"/>
|
||||
<param name="portname" type="string" value="/dev/USB_IMU"/>
|
||||
<param name="topic_name" type="string" value="/imu_data"/>
|
||||
<param name="frame_id" type="string" value="$(arg frame_id)"/>
|
||||
<param name="imu_diagnostics_topic_name" type="string" value="/imu_diagnostics"/>
|
||||
</node>
|
||||
|
||||
<node pkg="ros_kinematics" type="ros_kinematics_node" name="ros_kinematics" output="screen">
|
||||
<rosparam file="$(find amr_startup)/config/ros_diff_drive_controller.yaml" command="load" />
|
||||
<param name="use_encoder" type="bool" value="false"/>
|
||||
<param name="type" type="int" value="2"/>
|
||||
<remap from="/ros_kinematics/odom" to="/odom" />
|
||||
</node>
|
||||
|
||||
<!-- <include file="$(find manual_psx)/launch/ps4.launch"></include> -->
|
||||
|
||||
<!-- <node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization_node" clear_params="true" output="screen">
|
||||
<rosparam command="load" file="$(find amr_startup)/config/ekf.yaml" subst_value="true" />
|
||||
</node> -->
|
||||
|
||||
<!-- Load URDF -->
|
||||
<include file="$(find robot_description)/launch/upload_urdf.launch">
|
||||
<arg name="robot_type" value="imr" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
|
||||
<!-- driver -->
|
||||
<arg name="pkg" value="olelidar"/>
|
||||
|
||||
<arg name="driver" default="true"/>
|
||||
<arg name="f_device_ip" default="192.168.2.101"/>
|
||||
<arg name="f_device_port" default="2368"/>
|
||||
<arg name="local_ip" default="192.168.2.100"/>
|
||||
<arg name="multiaddr" default=""/>
|
||||
|
||||
<!-- decoder -->
|
||||
<arg name="f_frame_id" default="front_laser_link"/>
|
||||
<arg name="f_topic_name" default="/f_scan"/>
|
||||
<arg name="f_r_max" default="25"/>
|
||||
<arg name="f_ang_start" default="-90"/>
|
||||
<arg name="f_ang_end" default="90"/>
|
||||
<arg name="decoder" default="true"/>
|
||||
<arg name="inverted" default="false"/>
|
||||
<arg name="f_debug" default="false"/>
|
||||
<env if="$(arg f_debug)" name="ROSCONSOLE_CONFIG_FILE" value="$(find olelidar)/launch/debug.conf"/>
|
||||
|
||||
<node pkg="tf2_ros" type="static_transform_publisher" name="$(arg f_frame_id)_to_base_link" args="0.432 0 0.135 0 0 0 base_link $(arg f_frame_id)" />
|
||||
|
||||
<node pkg="$(arg pkg)" type="$(arg pkg)_decoder" name="$(arg pkg)_decoder" output="screen">
|
||||
<param name="frame_id" type="string" value="$(arg f_frame_id)"/>
|
||||
<param name="r_max" type="int" value="$(arg f_r_max)"/>
|
||||
<param name="ang_start" type="int" value="$(arg f_ang_start)"/>
|
||||
<param name="ang_end" type="int" value="$(arg f_ang_end)"/>
|
||||
<param name="inverted" type="bool" value="$(arg inverted)"/>
|
||||
<param name="device_ip" type="string" value="$(arg f_device_ip)"/>
|
||||
<param name="device_port" type="int" value="$(arg f_device_port)"/>
|
||||
<param name="local_ip" type="string" value="$(arg local_ip)"/>
|
||||
<param name="multiaddr" type="string" value="$(arg multiaddr)"/>
|
||||
|
||||
<remap from="~packet" to="packet"/>
|
||||
<remap from="~scan" to="$(arg f_topic_name)"/>
|
||||
</node>
|
||||
|
||||
<node pkg="topic_tools" type="relay" name="f_scan_relay" args="$(arg f_topic_name) scan"/>
|
||||
|
||||
<include file="$(find amr_startup)/launch/amr_control.launch"></include>
|
||||
|
||||
<!-- <include file="$(find amr_startup)/launch/includes/rviz.launch"></include> -->
|
||||
|
||||
<!-- <include file="$(find slam_toolbox)/launch/offline.launch"></include> -->
|
||||
|
||||
</launch>
|
||||
5
Controllers/Packages/amr_startup/launch/fake_detected_shelf.launch
Executable file
5
Controllers/Packages/amr_startup/launch/fake_detected_shelf.launch
Executable file
@@ -0,0 +1,5 @@
|
||||
|
||||
<launch>
|
||||
<!-- <node pkg="tf" type="static_transform_publisher" name="goal_charger_broadcaster" args="1.9 0.07 0 0.0 0 0 base_link shelf_target 100" /> -->
|
||||
<node pkg="tf" type="static_transform_publisher" name="base_link_surface_broadcaster" args="0 0 0 0 0 0 base_link surface 1000" />
|
||||
</launch>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="tf_map_scanmatch_transform_frame_name" default="scanmatcher_frame"/>
|
||||
<arg name="base_frame" default="base_footprint"/>
|
||||
<arg name="odom_frame" default="odom"/>
|
||||
<arg name="pub_map_odom_transform" default="true"/>
|
||||
<arg name="scan_subscriber_queue_size" default="5"/>
|
||||
<arg name="scan_topic" default="scan"/>
|
||||
<arg name="map_size" default="2048"/>
|
||||
<!-- set use_tf_pose_start_estimate and map_with_known_poses to `true` when
|
||||
the map-base_footprint transform is provided by a different node, such
|
||||
as fake_localization -->
|
||||
<arg name="disable_localization" default="false"/>
|
||||
|
||||
<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
|
||||
|
||||
<!-- Frame names -->
|
||||
<param name="map_frame" value="map" />
|
||||
<param name="base_frame" value="$(arg base_frame)" />
|
||||
<param name="odom_frame" value="$(arg odom_frame)" />
|
||||
|
||||
<!-- Tf use -->
|
||||
<param name="use_tf_scan_transformation" value="true"/>
|
||||
<param name="use_tf_pose_start_estimate" value="$(arg disable_localization)"/>
|
||||
<param name="map_with_known_poses" value="$(arg disable_localization)" />
|
||||
<param name="pub_map_odom_transform" value="$(arg pub_map_odom_transform)"/>
|
||||
<param name="pub_map_scanmatch_transform" value="true" />
|
||||
|
||||
<!-- Map size / start point -->
|
||||
<param name="map_resolution" value="0.050"/>
|
||||
<param name="map_size" value="$(arg map_size)"/>
|
||||
<param name="map_start_x" value="0.5"/>
|
||||
<param name="map_start_y" value="0.5" />
|
||||
<param name="map_multi_res_levels" value="3" />
|
||||
<param name="map_pub_period" value ="2.0" />
|
||||
|
||||
<!-- Map update parameters -->
|
||||
<param name="update_factor_free" value="0.4"/>
|
||||
<param name="update_factor_occupied" value="0.9" />
|
||||
<param name="map_update_distance_thresh" value="0.4"/>
|
||||
<param name="map_update_angle_thresh" value="0.06" />
|
||||
<param name="laser_min_dist" value="0.1" />
|
||||
<param name="laser_max_dist" value="10.0" />
|
||||
<param name="laser_z_min_value" value="-1.0" />
|
||||
<param name="laser_z_max_value" value="1.0" />
|
||||
|
||||
<!-- Advertising config -->
|
||||
<param name="advertise_map_service" value="true"/>
|
||||
|
||||
<param name="scan_subscriber_queue_size" value="$(arg scan_subscriber_queue_size)"/>
|
||||
<param name="scan_topic" value="$(arg scan_topic)"/>
|
||||
<param name="pose_update_topic" value="poseupdate" />
|
||||
<param name="sys_msg_topic" value="syscommand" />
|
||||
<param name="pub_odometry" value="false" />
|
||||
|
||||
<!-- Debug parameters -->
|
||||
<!--
|
||||
<param name="output_timing" value="false"/>
|
||||
<param name="pub_drawings" value="true"/>
|
||||
<param name="pub_debug_output" value="true"/>
|
||||
-->
|
||||
<param name="tf_map_scanmatch_transform_frame_name" value="$(arg tf_map_scanmatch_transform_frame_name)" />
|
||||
<remap from="map" to="/map" />
|
||||
</node>
|
||||
</launch>
|
||||
105
Controllers/Packages/amr_startup/launch/includes/amcl.launch
Normal file
105
Controllers/Packages/amr_startup/launch/includes/amcl.launch
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<launch>
|
||||
<arg name="tf_prefix" default="" />
|
||||
<arg name="namespace" default="$(arg tf_prefix)" doc="Namespace to push all topics into."/>
|
||||
|
||||
<arg name="use_map_topic" default="true"/>
|
||||
<arg name="scan_topic" default="scan"/>
|
||||
<arg name="map_topic" default="/map"/> <!-- if use_map_topic = true -->
|
||||
<arg name="map_service" default="/static_map"/> <!-- if use_map_topic = false -->
|
||||
<arg name="initial_pose_x" default="0.0"/>
|
||||
<arg name="initial_pose_y" default="0.0"/>
|
||||
<arg name="initial_pose_a" default="0.0"/>
|
||||
<arg name="odom_frame_id" default="$(arg tf_prefix)/odom"/>
|
||||
<arg name="base_frame_id" default="$(arg tf_prefix)/base_footprint"/>
|
||||
<arg name="global_frame_id" default="/map"/>
|
||||
|
||||
<group if="$(eval namespace != '')" ns="$(arg namespace)">
|
||||
<node pkg="amcl" type="amcl" name="amcl" output="screen" >
|
||||
<param name="use_map_topic" value="$(arg use_map_topic)"/>
|
||||
<param name="odom_model_type" value="diff-corrected"/>
|
||||
<param name="gui_publish_rate" value="10.0"/>
|
||||
<param name="save_pose_rate" value="0.5"/>
|
||||
<param name="laser_max_beams" value="200"/>
|
||||
<param name="laser_min_range" value="-1.0"/>
|
||||
<param name="laser_max_range" value="-1.0"/>
|
||||
<param name="min_particles" value="500"/>
|
||||
<param name="max_particles" value="5000"/>
|
||||
<param name="kld_err" value="0.09"/>
|
||||
<param name="kld_z" value="0.99"/>
|
||||
<param name="odom_alpha1" value="0.02"/>
|
||||
<param name="odom_alpha2" value="0.01"/>
|
||||
<param name="odom_alpha3" value="0.01"/>
|
||||
<param name="odom_alpha4" value="0.02"/>
|
||||
<param name="laser_z_hit" value="0.5"/>
|
||||
<param name="laser_z_short" value="0.05"/>
|
||||
<param name="laser_z_max" value="0.05"/>
|
||||
<param name="laser_z_rand" value="0.5"/>
|
||||
<param name="laser_sigma_hit" value="0.2"/>
|
||||
<param name="laser_lambda_short" value="0.1"/>
|
||||
<param name="laser_model_type" value="likelihood_field"/>
|
||||
<param name="laser_likelihood_max_dist" value="2.0"/>
|
||||
<param name="update_min_d" value="0.2"/>
|
||||
<param name="update_min_a" value="0.2"/>
|
||||
<param name="odom_frame_id" value="$(arg odom_frame_id)"/>
|
||||
<param name="base_frame_id" value="$(arg base_frame_id)"/>
|
||||
<param name="global_frame_id" value="$(arg global_frame_id)"/>
|
||||
<param name="resample_interval" value="1"/>
|
||||
<param name="transform_tolerance" value="0.2"/>
|
||||
<param name="recovery_alpha_slow" value="0.0"/>
|
||||
<param name="recovery_alpha_fast" value="0.0"/>
|
||||
<param name="initial_pose_x" value="$(arg initial_pose_x)"/>
|
||||
<param name="initial_pose_y" value="$(arg initial_pose_y)"/>
|
||||
<param name="initial_pose_a" value="$(arg initial_pose_a)"/>
|
||||
<remap from="scan" to="$(arg scan_topic)"/>
|
||||
<remap from="map" to="$(arg map_topic)"/>
|
||||
<remap from="static_map" to="$(arg map_service)"/>
|
||||
</node>
|
||||
</group>
|
||||
|
||||
<!-- Duplicate of the above in case namespace is empty. This is necessary to
|
||||
avoid the "<group> tag has an empty 'ns' attribute" parsing error. -->
|
||||
<group unless="$(eval namespace != '')">
|
||||
<node pkg="amcl" type="amcl" name="amcl" output="screen" >
|
||||
<param name="use_map_topic" value="$(arg use_map_topic)"/>
|
||||
<param name="odom_model_type" value="diff-corrected"/>
|
||||
<param name="gui_publish_rate" value="10.0"/>
|
||||
<param name="save_pose_rate" value="0.5"/>
|
||||
<param name="laser_max_beams" value="200"/>
|
||||
<param name="laser_min_range" value="-1.0"/>
|
||||
<param name="laser_max_range" value="-1.0"/>
|
||||
<param name="min_particles" value="500"/>
|
||||
<param name="max_particles" value="5000"/>
|
||||
<param name="kld_err" value="0.09"/>
|
||||
<param name="kld_z" value="0.99"/>
|
||||
<param name="odom_alpha1" value="0.02"/>
|
||||
<param name="odom_alpha2" value="0.01"/>
|
||||
<param name="odom_alpha3" value="0.01"/>
|
||||
<param name="odom_alpha4" value="0.02"/>
|
||||
<param name="laser_z_hit" value="0.5"/>
|
||||
<param name="laser_z_short" value="0.05"/>
|
||||
<param name="laser_z_max" value="0.05"/>
|
||||
<param name="laser_z_rand" value="0.5"/>
|
||||
<param name="laser_sigma_hit" value="0.2"/>
|
||||
<param name="laser_lambda_short" value="0.1"/>
|
||||
<param name="laser_model_type" value="likelihood_field"/>
|
||||
<param name="laser_likelihood_max_dist" value="2.0"/>
|
||||
<param name="update_min_d" value="0.2"/>
|
||||
<param name="update_min_a" value="0.2"/>
|
||||
<param name="odom_frame_id" value="$(arg odom_frame_id)"/>
|
||||
<param name="base_frame_id" value="$(arg base_frame_id)"/>
|
||||
<param name="global_frame_id" value="$(arg global_frame_id)"/>
|
||||
<param name="resample_interval" value="1"/>
|
||||
<param name="transform_tolerance" value="0.2"/>
|
||||
<param name="recovery_alpha_slow" value="0.0"/>
|
||||
<param name="recovery_alpha_fast" value="0.0"/>
|
||||
<param name="initial_pose_x" value="$(arg initial_pose_x)"/>
|
||||
<param name="initial_pose_y" value="$(arg initial_pose_y)"/>
|
||||
<param name="initial_pose_a" value="$(arg initial_pose_a)"/>
|
||||
<remap from="scan" to="$(arg scan_topic)"/>
|
||||
<remap from="map" to="$(arg map_topic)"/>
|
||||
<remap from="static_map" to="$(arg map_service)"/>
|
||||
</node>
|
||||
</group>
|
||||
</launch>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="tf_prefix" default="" />
|
||||
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization_node" clear_params="true" output="screen">
|
||||
<rosparam command="load" file="$(find amr_startup)/config/ekf.yaml" subst_value="true" />
|
||||
</node>
|
||||
</launch>
|
||||
@@ -0,0 +1,3 @@
|
||||
<launch>
|
||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find amr_startup)/rviz/navigation.rviz" required="true" />
|
||||
</launch>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<node name="spawn_maze" pkg="gazebo_ros" type="spawn_model" args="-sdf
|
||||
-file $(find amr_startup)/sdf/maze/model.sdf -model walls" output="screen" />
|
||||
</launch>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="robot_x" default="17.5" />
|
||||
<arg name="robot_y" default="34.5" />
|
||||
<arg name="robot_yaw" default="1.57079" />
|
||||
<arg name="model" default="trolley" />
|
||||
<node name="spawn_maze" pkg="gazebo_ros" type="spawn_model"
|
||||
args="-sdf -file $(find factory_ss_demo)models/sehc_trolley/model.sdf -model $(arg model)
|
||||
-x $(arg robot_x) -y $(arg robot_y) -Y $(arg robot_yaw)" output="screen" />
|
||||
|
||||
</launch>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" ?>
|
||||
<launch>
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="world_name" default="worlds/empty.world"/> <!-- Note: the world_name is with respect to GAZEBO_RESOURCE_PATH environmental variable, but can also be an absolute path -->
|
||||
|
||||
<arg name="robot_x" default="0.0" />
|
||||
<arg name="robot_y" default="0.0" />
|
||||
<arg name="robot_yaw" default="0.0" />
|
||||
|
||||
<arg name="robot_type" default="hook_150" doc="Can be 'hook_150' or 'imr' for now." />
|
||||
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
|
||||
<arg name="namespace" default="$(arg tf_prefix)" doc="Namespace to push all topics into."/>
|
||||
|
||||
<group if="$(eval namespace != '')">
|
||||
<group>
|
||||
<remap from="$(arg namespace)/joint_states" to="$(arg namespace)/robot/joint_states" />
|
||||
<remap from="$(arg namespace)/mobile_base_controller/cmd_vel" to="$(arg namespace)/cmd_vel" />
|
||||
<remap from="$(arg namespace)/mobile_base_controller/odom" to="$(arg namespace)/odom" />
|
||||
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch">
|
||||
<arg name="world_name" value="$(arg world_name)"/>
|
||||
<arg name="paused" default="false" />
|
||||
<arg name="use_sim_time" default="true" />
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="debug" default="false" />
|
||||
<arg name="verbose" default="true" />
|
||||
</include>
|
||||
</group>
|
||||
|
||||
<group ns="$(arg namespace)">
|
||||
<!-- spawn robot and bring up controllers etc. -->
|
||||
<include file="$(find amr_startup)/launch/robot_gazebo_common.launch">
|
||||
<arg name="robot_x" value="$(arg robot_x)" />
|
||||
<arg name="robot_y" value="$(arg robot_y)" />
|
||||
<arg name="robot_yaw" value="$(arg robot_yaw)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<!-- Duplicate of the above in case namespace is empty. This is necessary to
|
||||
avoid the "<group> tag has an empty 'ns' attribute" parsing error. -->
|
||||
<group unless="$(eval namespace != '')">
|
||||
<group>
|
||||
<remap from="joint_states" to="robot/joint_states" />
|
||||
<remap from="mobile_base_controller/cmd_vel" to="cmd_vel" />
|
||||
<remap from="mobile_base_controller/odom" to="odom" />
|
||||
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch">
|
||||
<arg name="world_name" value="$(arg world_name)"/>
|
||||
<arg name="paused" default="false" />
|
||||
<arg name="use_sim_time" default="true" />
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="debug" default="false" />
|
||||
<arg name="verbose" default="true" />
|
||||
</include>
|
||||
</group>
|
||||
|
||||
|
||||
<include file="$(find amr_startup)/launch/robot_gazebo_common.launch">
|
||||
<arg name="robot_x" value="$(arg robot_x)" />
|
||||
<arg name="robot_y" value="$(arg robot_y)" />
|
||||
<arg name="robot_yaw" value="$(arg robot_yaw)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
</group>
|
||||
|
||||
</launch>
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" ?>
|
||||
<launch>
|
||||
<arg name="robot_x" default="0.0" />
|
||||
<arg name="robot_y" default="0.0" />
|
||||
<arg name="robot_yaw" default="0.0" />
|
||||
<arg name="robot_type" default="hool_150" doc="Can be 'hool_150' or 'imr' for now." />
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
<arg name="prefix" value="$(arg tf_prefix)/" if="$(eval tf_prefix != '')" /> <!-- $(arg prefix) is used in all the config files! TODO: For multiple robots, create groups when loading the parameters to overwrite the arg? -->
|
||||
<arg name="prefix" value="" unless="$(eval tf_prefix != '')" />
|
||||
<arg name="model_name" default="robot" doc="Name of the Gazebo robot model (needs to be different for each robot)" />
|
||||
|
||||
|
||||
<param name="rosconsole_config_file" value="$(find amr_startup)/rosconsole.config"/>
|
||||
|
||||
<!-- Load URDF -->
|
||||
<include file="$(find robot_description)/launch/upload_urdf.launch">
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
|
||||
<!-- Spawn the robot into Gazebo -->
|
||||
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-param robot_description -urdf -model $(arg model_name)
|
||||
-x $(arg robot_x) -y $(arg robot_y) -Y $(arg robot_yaw)" output="screen" />
|
||||
|
||||
<!-- Load ros_control controller configurations -->
|
||||
<rosparam file="$(find robot_description)/config/joint_state_controller.yaml" command="load" />
|
||||
<rosparam file="$(find robot_description)/config/diffdrive_controller.yaml" command="load" subst_value="true" />
|
||||
<rosparam file="$(find robot_description)/config/pid_gains.yaml" command="load" />
|
||||
|
||||
<!-- Start the controllers -->
|
||||
<node name="controller_spawner" pkg="controller_manager" type="spawner" output="screen"
|
||||
args="joint_state_controller mobile_base_controller"/>
|
||||
|
||||
<!-- Add passive + mimic joints to joint_states topic -->
|
||||
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
|
||||
<rosparam param="source_list">[robot/joint_states]</rosparam>
|
||||
<param name="rate" value="200.0" />
|
||||
</node>
|
||||
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" output="screen" />
|
||||
|
||||
<node name="rqt_robot_steering" pkg="rqt_robot_steering" type="rqt_robot_steering">
|
||||
<param name="default_topic" value="cmd_vel"/>
|
||||
<param name="default_vx_max" value="1.0" />
|
||||
<param name="default_vx_min" value="-1.0" />
|
||||
<param name="default_vw_max" value="1.5" />
|
||||
<param name="default_vw_min" value="-1.5" />
|
||||
</node>
|
||||
|
||||
<!-- EKF -->
|
||||
<include file="$(find amr_startup)/launch/includes/ekf.launch.xml">
|
||||
<arg name="tf_prefix" value="$(arg prefix)" />
|
||||
</include>
|
||||
|
||||
<!-- create combined scan topic (like on robot real) -->
|
||||
<node pkg="topic_tools" type="relay" name="b_scan_relay" args="b_scan scan"/>
|
||||
<node pkg="topic_tools" type="relay" name="f_scan_relay" args="f_scan scan"/>
|
||||
|
||||
</launch>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="robot_type" default="T800" doc="Can be 'hook_150' or 'imr' for now." />
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
|
||||
<include file="$(find amr_startup)/launch/robot_empty_world.launch">
|
||||
<arg name="gui" value="$(arg gui)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
|
||||
<include file="$(find amr_startup)/launch/includes/spawn_maze.launch.xml" />
|
||||
<!-- <include file="$(find amr_startup)/launch/includes/rviz.launch" /> -->
|
||||
</launch>
|
||||
18
Controllers/Packages/amr_startup/launch/sehc_world.launch
Normal file
18
Controllers/Packages/amr_startup/launch/sehc_world.launch
Normal file
@@ -0,0 +1,18 @@
|
||||
<launch>
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="robot_type" default="imr" doc="Can be 'hook_150' or 'imr' for now." />
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
<include file="$(find amr_startup)/launch/robot_empty_world.launch">
|
||||
<arg name='world_name' value="$(find factory_ss_demo)/worlds/factory_ss_demo.world"/>
|
||||
<arg name="robot_x" value="5.5"/>
|
||||
<arg name="robot_y" value="34.5"/>
|
||||
<arg name="robot_yaw" value="0.0"/>
|
||||
<arg name="gui" value="$(arg gui)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
|
||||
<include file="$(find amr_startup)/launch/includes/spawn_trolley.launch"/>
|
||||
|
||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find amr_startup)/rviz/navigation.rviz" required="false" />
|
||||
</launch>
|
||||
14
Controllers/Packages/amr_startup/launch/start_maps.launch
Normal file
14
Controllers/Packages/amr_startup/launch/start_maps.launch
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
<arg name="map_file" default="$(find managerments)/maps/maze.yaml" doc="Path to a map .yaml file (required)." />
|
||||
<arg name="virtual_walls_map_file" default="$(arg map_file)" doc="Path to a virtual walls map .yaml file (optional)." />
|
||||
<arg name="with_virtual_walls" default="true" />
|
||||
|
||||
<node name="static_map_server" pkg="map_server" type="map_server" args="$(arg map_file)" ns="/" output="screen">
|
||||
<param name="frame_id" type="string" value="map"/>
|
||||
</node>
|
||||
|
||||
<node if="$(arg with_virtual_walls)" name="virtual_walls_map_server" pkg="map_server" type="map_server" args="$(arg virtual_walls_map_file)" ns="/virtual_walls" output="screen">
|
||||
<param name="frame_id" type="string" value="map"/>
|
||||
</node>
|
||||
</launch>
|
||||
@@ -0,0 +1,16 @@
|
||||
<launch>
|
||||
<arg name="gui" default="true" />
|
||||
<arg name="robot_type" default="imr" doc="Can be 'hook_150' or 'imr' for now." />
|
||||
<arg name="tf_prefix" default="" doc="tf_prefix to be used by gazebo plugins and in the robot's urdf etc." />
|
||||
<include file="$(find amr_startup)/launch/robot_empty_world.launch">
|
||||
<arg name='world_name' value="$(find dynamic_logistics_warehouse)/worlds/warehouse.world"/>
|
||||
<arg name="robot_x" value="12.0"/>
|
||||
<arg name="robot_y" value="22.0"/>
|
||||
<arg name="robot_yaw" value="3.141592654"/>
|
||||
<arg name="gui" value="$(arg gui)" />
|
||||
<arg name="robot_type" value="$(arg robot_type)" />
|
||||
<arg name="tf_prefix" value="$(arg tf_prefix)" />
|
||||
</include>
|
||||
|
||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find amr_startup)/rviz/navigation.rviz" required="true" />
|
||||
</launch>
|
||||
Reference in New Issue
Block a user