TechmanRobotInc / tmr_ros2

TM Robots supporting ROS2 drivers and some extended external applications. (experimental) (not support the new TM S-Series)
Other
41 stars 22 forks source link

What is the difference between tmr_driver and tm_driver #6

Closed janandries closed 2 years ago

janandries commented 3 years ago

I see there is both a tm_driver and a tmr_driver. What is exactly the difference? It seems like tmr_driver is a more advanced driver, supporting also PVT? It is not build however, the Cmake executably and install are commented out.

JensVanhooydonck commented 3 years ago

For me, the tmr_driver builds with following CMakeLists.txt

project(tmr_driver)

# Default to C99
if(NOT CMAKE_C_STANDARD)
  set(CMAKE_C_STANDARD 99)
endif()

# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
  set(CMAKE_CXX_STANDARD 14)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

add_definitions(-DROS2_BUILD)

# find dependencies
find_package(ament_cmake REQUIRED)
# uncomment the following section in order to fill in
# further dependencies manually.
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(trajectory_msgs REQUIRED)
find_package(control_msgs REQUIRED)
find_package(rclcpp_action REQUIRED)
find_package(tmr_msgs REQUIRED)
find_package(tmrlib REQUIRED)

if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # uncomment the line when a copyright and license is not present in all source files
  #set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # uncomment the line when this package is not in a git repo
  #set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

include_directories(include
  # ../tmrlib/include
  ${CMAKE_CURRENT_SOURCE_DIR}
)

add_executable(tmr_driver
 src/tmr_ros2_composition.cpp
 src/tmr_ros2_sct.cpp
 src/tmr_ros2_svr.cpp
)

ament_target_dependencies(tmr_driver
 rclcpp
 std_msgs
 sensor_msgs
 trajectory_msgs
 control_msgs
 rclcpp_action
 tmr_msgs
 tmrlib
)
# target_link_libraries(tmr_driver
#  tmrlib::tmrdriver
# )

install(TARGETS
 tmr_driver
 DESTINATION lib/${PROJECT_NAME}
)

install(
 DIRECTORY launch
 DESTINATION share/${PROJECT_NAME}
)

ament_package()
CFZeon commented 3 years ago

The tmr_driver seems to be made for the moveit demo, which requires usage of PVTpoints to follow the trajectory planned out by moveit. If you look into the tm_sct code there is an action server for FollowJointTrajectory which is used by MoveIt to move the robot there. As for the tm_driver, I do not really know except that it's updated more often and does not support the MoveIt demo.

TechmanRobotIncOwner commented 2 years ago

Please ues "tm_driver", "tm_driver" is the original one. We develop "tmr_driver" for moveit. We will keep "tm_driver" up to date and delete "tmr_driver" to avoid confusion.

JensVanhooydonck commented 2 years ago

What about the moveit integration? Will tm_driver be adopted to be used with moveit?

okvik commented 2 years ago

@JensVanhooydonck The commit message doesn't give it up but looking through the diff of https://github.com/TechmanRobotInc/tmr_ros2/commit/e64d59f2f174a48d30f1779af64ba0785e573dd7 it seems we finally got a singular driver with MoveIt2 integration. I'll test this in the following weeks.

Thanks @TechmanRobotIncOwner.

JensVanhooydonck commented 2 years ago

@JensVanhooydonck The commit message doesn't give it up but looking through the diff of e64d59f it seems we finally got a singular driver with MoveIt2 integration. I'll test this in the following weeks.

Thanks @TechmanRobotIncOwner.

Looks like that indeed! Great news. This issue can be closed i guess.

TechmanRobotIncOwner commented 2 years ago

Oh yes, we will keep updating and integrating.