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]