当前位置: 首页 > news >正文

ROS-编写工作区、功能包、节点

新建工作区,chapt2_ws 文件夹就是一个工作区

mkdir -p chapt2_ws/src

新建功能包,功能包命名为 example_cpp,放在 chapt2_ws/src/ 中

cd chapt2_ws/src
ros2 pkg create example_cpp --build-type ament_cmake --dependencies rclcpp
  • pkg create 是创建包的意思
  • –build-type 用来指定该包的编译类型,一共有三个可选项 ament_pythonament_cmakecmake
  • –dependencies 指的是这个功能包的依赖,这里小鱼给了一个ros2的C++客户端接口 rclcpp

 新建节点,在 example_cpp/src 中创建 node_01.cpp 文件,此为一个节点,文件内容为:

#include "rclcpp/rclcpp.hpp"int main(int argc, char **argv)
{/* 初始化rclcpp  */rclcpp::init(argc, argv);/*产生一个node_01的节点*/auto node = std::make_shared<rclcpp::Node>("node_01");// 打印一句自我介绍RCLCPP_INFO(node->get_logger(), "node_01节点已经启动.");/* 运行节点,并检测退出信号 Ctrl+C*/rclcpp::spin(node);/* 停止运行 */rclcpp::shutdown();return 0;
}

修改 CMakeLists.txt,加入下面三行

add_executable(node_01 src/node_01.cpp)
ament_target_dependencies(node_01 rclcpp)
install(TARGETS node_01 DESTINATION lib/${PROJECT_NAME})# 若还有其他节点
add_executable(node_02 src/node_02.cpp)
ament_target_dependencies(node_02 rclcpp)
install(TARGETS node_02 DESTINATION lib/${PROJECT_NAME})

在工作空间 chapt2_ws 目录进行编译

colcon buildsource install/setup.bashros2 run example_cpp node_01

http://www.xdnf.cn/news/969841.html

相关文章:

  • 通过Elastic EDR看smbexec并进行二次开发Bypass
  • @component、@bean、@Configuration的区别
  • 在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
  • MySQL:InnoDB架构(内存架构篇)
  • Grey任命李文杰为中国总裁,开启增长新章
  • 云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项
  • 12要素法:构建高效云原生应用
  • 鸿蒙Next仓颉语言开发实战教程:下拉刷新和上拉加载更多
  • leetcode:42. 接雨水(秒变简单题)
  • 代码训练LeetCode(27)接雨水
  • 【PX4飞控】右手坐标系与右手系旋转正方向的定义与判断方法
  • go全局配置redis,全局只需要连接一次,然后全局可以引用使用
  • UVa12298 3KP-BASH Project
  • Codeforces Round 1027 (Div. 3)-G
  • Oracle 数据库对象管理:表空间与表的操作
  • 解决克隆Github源码库时的Permission denied 问题
  • 入门学者做的excel文献笔记发现不了问题怎么办?——用提示词来解决
  • 日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
  • RocketMQ延迟消息机制
  • Python列表:高效灵活的数据存储与操作指南
  • Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
  • 如何备考公路水运安全员A证?
  • pytorch-frame开源程序适用于 PyTorch 的表格深度学习库,一个模块化深度学习框架,用于在异构表格数据上构建神经网络模型。
  • dMSA 滥用(BadSuccessor)导致权限提升
  • C++11 花括号等式初始化器(Brace-or-Equal Initializers):从入门到精通
  • 安全大模型智驱网络和数据安全效能跃迁
  • 利用最小二乘法找圆心和半径
  • 【从零学习JVM|第五篇】打破双亲委派机制
  • OceanBase v4.3.5 特性解读:通过OSS WORM特性进行备份归档
  • 【动手学深度学习】3.2. 线性回归的从零开始实现