C++工程调用ros库 am
时间: 2025-07-06 10:53:52 浏览: 6
### 集成和使用ROS库进行C++开发
#### 创建工作空间并初始化
为了在C++项目中集成和使用ROS库,首先需要创建一个ROS工作空间。这可以通过以下命令完成:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
```
此过程建立了必要的目录结构,并设置了环境变量以便于后续操作[^2]。
#### 添加依赖项到`package.xml`
接着,在项目的根目录下找到`package.xml`文件,向其中添加所需的ROS包作为依赖项。例如,如果计划使用PCL(点云库),则应加入如下行来声明对该库的支持:
```xml
<build_depend>pcl_conversions</build_depend>
<exec_depend>pcl_conversions</exec_depend>
```
通过这种方式指定外部资源可以确保编译器能够识别并链接相应的头文件和库函数[^1]。
#### 编写源代码
随后可以在`src/`目录内新建`.cpp`文件实现具体逻辑。下面给出一段简单的订阅话题消息的例子:
```cpp
#include "ros/ros.h"
#include "std_msgs/String.h"
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "listener");
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);
ros::spin();
return 0;
}
```
这段程序定义了一个监听特定主题(`chatter`)的消息处理器,并打印接收到的内容至控制台[^3]。
#### 修改`CMakeLists.txt`
为了让Catkin构建系统知道如何处理新添加的源码文件,还需要编辑位于顶层的`CMakeLists.txt`:
- 将所有自定义的目标文件路径告知cmake;
- 设置目标链接哪些第三方库;
例如对于上述例子而言,应该有类似这样的设置:
```cmake
add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
```
这样做可以让编译脚本正确解析出所有的依赖关系,从而顺利完成整个工程的组装与打包工作。
#### 构建与测试
最后一步就是实际执行编译指令了。回到工作区顶部位置输入:
```bash
catkin_make
```
一旦编译无误,则可通过下列方式启动刚才建立好的节点来进行初步验证:
```bash
rosrun your_package_name listener
```
这里假设已经有一个发布者不断发送字符串给名为`chatter`的主题上,那么此时应当能在终端看到由回调函数输出的信息流显示出来[^5]。
阅读全文
相关推荐

















