Skip to content

Commit

Permalink
Enhance QEV3D launch configuration: add vehicle_urdf dependency, incl…
Browse files Browse the repository at this point in the history
…ude hardware plugin, and improve node organization
  • Loading branch information
bocho0600 committed Feb 7, 2025
1 parent 7437ba5 commit 30eefdb
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 4 deletions.
7 changes: 6 additions & 1 deletion src/control/ros2_control/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Minimum CMake version required
cmake_minimum_required(VERSION 3.16)

find_package(vehicle_urdf REQUIRED)
# Define the project name macro
set(PROJECT_NAME qev3d_ros2_control)
# Project name and language
Expand Down Expand Up @@ -79,6 +79,11 @@ install(
DESTINATION share/${PROJECT_NAME}

)

install(FILES
qev3d_hardware_plugin.xml
DESTINATION share/${PROJECT_NAME}
)
# Uncomment and modify the following lines to add tests
# if(BUILD_TESTING)
# find_package(ament_cmake_pytest REQUIRED)
Expand Down
23 changes: 20 additions & 3 deletions src/control/ros2_control/bringup/launch/qev3d.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,16 @@ def generate_launch_description():
"bicycle_steering_controller",
"--param-file",
robot_controllers,
"--controller-ros-args",
"-r /bicycle_steering_controller/tf_odometry:=/tf",
],
condition=IfCondition(remap_odometry_tf),
)

joint_state_publisher_node = Node(
package="joint_state_publisher",
executable="joint_state_publisher",
condition=IfCondition(gui), # Only launch the node if gui is set to true
)

# Event Handlers for delayed execution
delay_robot_bicycle_controller_spawner_after_steering_controller_spawner = RegisterEventHandler(
event_handler=OnProcessExit(
Expand All @@ -120,16 +124,29 @@ def generate_launch_description():
on_exit=[rviz_node],
)
)
delay_controller_spawners = RegisterEventHandler(
event_handler=OnProcessExit(
target_action=robot_state_pub_bicycle_node,
on_exit=[
joint_state_broadcaster_spawner,
drive_pid_controller,
steering_pid_controller,
],
)
)

# Nodes to launch
nodes = [
control_node,
robot_state_pub_bicycle_node,
joint_state_broadcaster_spawner,
joint_state_publisher_node,
drive_pid_controller,
steering_pid_controller,
delay_robot_bicycle_controller_spawner_after_steering_controller_spawner,
robot_state_pub_bicycle_node,
rviz_node,
delay_rviz_after_joint_state_broadcaster_spawner,
delay_controller_spawners,
]

return LaunchDescription(declared_arguments + nodes)
5 changes: 5 additions & 0 deletions src/control/ros2_control/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

<!-- Additional dependencies -->
<exec_depend>bicycle_steering_controller</exec_depend>
<exec_depend>pid_controller</exec_depend>
<exec_depend>controller_manager</exec_depend>
<exec_depend>joint_state_broadcaster</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
Expand All @@ -40,6 +41,10 @@
<exec_depend>ros2launch</exec_depend>
<exec_depend>rviz2</exec_depend>
<exec_depend>xacro</exec_depend>
<!-- Packages -->
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<depend>xacro</depend>

<!-- Test dependencies -->
<test_depend>ament_cmake_pytest</test_depend>
Expand Down

0 comments on commit 30eefdb

Please sign in to comment.