ROS2 使用动态库

cmake_minimum_required(VERSION 3.5)
project(ntrip_client)

# 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()


include_directories(include)

### 以下重点
target_link_libraries(xxxx
${CMAKE_CURRENT_SOURCE_DIR}/xxx/xxxx.so
)


install(FILES
lib/xxxxx.so
DESTINATION lib
)


install(TARGETS
xx
RUNTIME DESTINATION lib/${PROJECT_NAME}
)

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


xxxxxxxxx
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()
ament_package()

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS中,可以使用tf2来发布动态坐标变换。下面是一个用C++编写的发布动态坐标变换的例子: ```cpp #include <ros/ros.h> #include <tf2_ros/transform_broadcaster.h> #include <geometry_msgs/TransformStamped.h> int main(int argc, char** argv){ ros::init(argc, argv, "tf2_broadcaster"); ros::NodeHandle node; tf2_ros::TransformBroadcaster broadcaster; geometry_msgs::TransformStamped transformStamped; ros::Rate rate(10.0); while (node.ok()){ transformStamped.header.stamp = ros::Time::now(); transformStamped.header.frame_id = "base_link"; transformStamped.child_frame_id = "camera_link"; // 设置变换的位移和旋转 transformStamped.transform.translation.x = 1.0; transformStamped.transform.translation.y = 0.0; transformStamped.transform.translation.z = 0.5; tf2::Quaternion q; q.setRPY(0, 0, 1.57); transformStamped.transform.rotation.x = q.x(); transformStamped.transform.rotation.y = q.y(); transformStamped.transform.rotation.z = q.z(); transformStamped.transform.rotation.w = q.w(); // 发布变换 broadcaster.sendTransform(transformStamped); rate.sleep(); } return 0; } ``` 在上面的例子中,我们使用`tf2_ros::TransformBroadcaster`类来创建一个变换广播器,并通过`broadcaster.sendTransform()`函数来发布变换。在循环中不断更新变换的时间戳和位移/旋转值即可实现动态变换。注意,`transformStamped.header.frame_id`表示父坐标系,`transformStamped.child_frame_id`表示子坐标系。在本例中,我们将发布一个相对于`base_link`坐标系的`camera_link`坐标系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值