These files go in a folder called lawnmow_control in the src directory.
This file goes in a folder named launch:
lawnmow_control.launch:
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- Load joint controller configurations from YAML file to parameter server -->
<rosparam file="$(find lawnmow_control)/config/lawnmow_control.yaml" command="load"/>
<!-- load the controllers -->
<node name="controller_spawner"
pkg="controller_manager"
type="spawner" respawn="false"
output="screen" ns="/lawnmow"
args="joint_state_controller
mobile_base_controller"
/>
<!-- convert joint states to TF transforms for rviz, etc -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" respawn="false" output="screen">
<param name="robot_description" command="$(find xacro)/xacro.py '$(find lawnmow_description)/urdf/lawnmow.xacro'"/>
<remap from="/joint_states" to="/lawnmow/joint_states" />
</node>
</launch>
This file goes in a folder named config:
lawnmow_control.yaml:
lawnmow:
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 50
mobile_base_controller:
type: "diff_drive_controller/DiffDriveController"
left_wheel: 'left_wheel_hinge'
right_wheel: 'right_wheel_hinge'
pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]