diff --git a/.gitignore b/.gitignore index 60bc878..f56f3a4 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,10 @@ # External packages **/mocap_msgs/ **/mocap4r2/ -**/mocap4ros2_optitrack/ \ No newline at end of file +**/mocap4ros2_optitrack/ +**/ros_phoenix/* + +# Maintain version control of launch files +!**/ros_phoenix/launch/ +**/ros_phoenix/launch/* +!**/ros_phoenix/launch/trunk.launch.py diff --git a/stack/motors/src/interfaces/CMakeLists.txt b/stack/motors/src/interfaces/CMakeLists.txt index f3cf5e3..9dc5806 100644 --- a/stack/motors/src/interfaces/CMakeLists.txt +++ b/stack/motors/src/interfaces/CMakeLists.txt @@ -24,7 +24,6 @@ rosidl_generate_interfaces(${PROJECT_NAME} "msg/AllMotorsStatus.msg" "msg/SingleMotorControl.msg" "msg/SingleMotorStatus.msg" - "srv/MPCCommand.srv" ) if(BUILD_TESTING) diff --git a/stack/motors/src/interfaces/srv/MPCCommand.srv b/stack/motors/src/interfaces/srv/MPCCommand.srv deleted file mode 100644 index 5fad935..0000000 --- a/stack/motors/src/interfaces/srv/MPCCommand.srv +++ /dev/null @@ -1,3 +0,0 @@ -float32[] current_state ---- -float32[] control_action \ No newline at end of file diff --git a/stack/motors/src/ros_phoenix/launch/trunk.launch.py b/stack/motors/src/ros_phoenix/launch/trunk.launch.py new file mode 100644 index 0000000..5c7ea48 --- /dev/null +++ b/stack/motors/src/ros_phoenix/launch/trunk.launch.py @@ -0,0 +1,55 @@ +import launch +from launch_ros.actions import ComposableNodeContainer +from launch_ros.descriptions import ComposableNode + + +def generate_launch_description(): + """Generate trunk motors launch description with all motors.""" + container = ComposableNodeContainer( + name="PhoenixContainer", + namespace="", + package="ros_phoenix", + executable="phoenix_container", + parameters=[{"interface": "can0"}], + composable_node_descriptions=[ + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon1", + parameters=[{"id": 1, "P": 1.0, "D": 0.001, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon2", + parameters=[{"id": 2, "P": 1, "D": 0.0, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon3", + parameters=[{"id": 3, "P": 0.1, "D": 0.001, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon4", + parameters=[{"id": 4, "P": 0.1, "D": 0.001, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon5", + parameters=[{"id": 5, "P": 0.1, "D": 0.001, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ComposableNode( + package="ros_phoenix", + plugin="ros_phoenix::TalonSRX", + name="talon6", + parameters=[{"id": 6, "P": 0.1, "D": 0.001, "period_ms": 1000, "watchdog_ms": 2000}], + ), + ], + output="screen", + ) + + return launch.LaunchDescription([container])