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
+
+
+
+
+