diff --git a/launch/minimal.launch.py b/launch/minimal.launch.py index 6266d8f..fb4f68c 100644 --- a/launch/minimal.launch.py +++ b/launch/minimal.launch.py @@ -49,11 +49,19 @@ def generate_launch_description(): output="both", ) + roboclaw_broadcaster_spawner = Node( + package="controller_manager", + executable="spawner", + arguments=["roboclaw_broadcaster", "--controller-manager", "/controller_manager"], + output="both", + ) + nodes = [ ros2_control_node, robot_state_pub_node, joint_state_broadcaster_spawner, robot_controller_spawner, + roboclaw_broadcaster_spawner, ] return LaunchDescription(nodes) diff --git a/package.xml b/package.xml index d3ab369..f1a2a9c 100644 --- a/package.xml +++ b/package.xml @@ -12,6 +12,10 @@ launch launch_ros xacro + ros2_control + controller_manager + diff_drive_controller + joint_state_broadcaster roboclaw_hardware_interface ament_lint_auto diff --git a/params/roboclaw_controllers.yaml b/params/roboclaw_controllers.yaml index 5946915..5bcfb9b 100644 --- a/params/roboclaw_controllers.yaml +++ b/params/roboclaw_controllers.yaml @@ -5,9 +5,18 @@ controller_manager: joint_state_broadcaster: type: joint_state_broadcaster/JointStateBroadcaster + roboclaw_broadcaster: + type: roboclaw_broadcaster/RoboClawBroadcaster + diffbot_base_controller: type: diff_drive_controller/DiffDriveController +# TODO: These are not yet used +roboclaw_broadcaster: + ros__parameters: + publish_rate: 1.0 + roboclaw_name: roboclaw # TODO: Handle multiple roboclaw units in same interface + diffbot_base_controller: ros__parameters: left_wheel_names: ["left_wheel_joint"] diff --git a/urdf/roboclaw.ros2_control.xacro b/urdf/roboclaw.ros2_control.xacro index 830ff65..a77ee6f 100644 --- a/urdf/roboclaw.ros2_control.xacro +++ b/urdf/roboclaw.ros2_control.xacro @@ -12,6 +12,10 @@ + + + 1.0 + 128 M2 @@ -21,12 +25,21 @@ + + + 1.0 + 128 M1 51200 + + + + +