在ros1 noetic中,分开设计头文件,源文件和执行文件

目录

需求

流程

1.头文件

2.源文件

3.可执行文件

4.配置文件


需求

设计头文件与源文件,在可执行文件中包含头文件。

流程

  1. 编写头文件;
  2. 编写源文件;
  3. 编写可执行文件;
  4. 编辑配置文件并执行。

1.头文件

头文件,在功能包下的 include/功能包名 目录下新建头文件: haha.h,示例内容如下:

注意:一定要在include/功能包名目录下,

#ifndef _HAHA_H
#define _HAHA_H

namespace hello_ns {

class My {

public:
    void run();

};

}

#endif

注意:

在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性

"/home/用户/工作空间/src/功能包/include/**"

2.源文件

在 src 目录下新建文件:haha.cpp,示例内容如下:

#include "test_head_src/haha.h"
#include "ros/ros.h"

namespace hello_ns{

void My::run(){
    ROS_INFO("hello,head and src ...");
}

}

3.可执行文件

在 src 目录下新建文件: use_head.cpp,示例内容如下:

#include "ros/ros.h"
#include "test_head_src/haha.h"

int main(int argc, char *argv[])
{
    ros::init(argc,argv,"hahah");
    hello_ns::My my;
    my.run();
    return 0;
}
Copy

4.配置文件

头文件与源文件相关配置:

include_directories(
include
  ${catkin_INCLUDE_DIRS}
)

## 声明C++库
add_library(head_src       #head_src起的一个库的名字
  include/test_head_src/haha.h
  src/haha.cpp
)

#head_src与起的库名保持一致,是后面的add_dependencies
add_dependencies(head_src ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})            

#head_src与起的库名保持一致
target_link_libraries(head_src
  ${catkin_LIBRARIES}
)
Copy

可执行文件配置:

add_executable(use_head src/use_head.cpp)

add_dependencies(use_head ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

#此处需要添加之前设置的 head 库
target_link_libraries(use_head
  head_src                           #head_src与起的库名保持一致
  ${catkin_LIBRARIES}
)

5.编译运行

cd  工作空间目录
source ./devel/setup.bash

在一个终端下运行

roscore

在另一个终端下运行

rosrun 功能包 usr_head

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS Noetic的MoveIt,Gazebo Simulation Integration是一个用于将MoveIt和Gazebo集成的功能。它允许用户在Gazebo仿真环境运行MoveIt规划器,以便对机器人进行规划和控制。 使用Gazebo Simulation Integration需要进行以下步骤: 1. 安装必要的软件包: ``` sudo apt-get install ros-noetic-moveit-ros-move-group ros-noetic-moveit-ros-planning-interface ros-noetic-moveit-ros-perception ros-noetic-moveit-ros-visualization ros-noetic-moveit-ros-control-interface ros-noetic-controller-manager ros-noetic-gazebo-ros-control ros-noetic-ros-control ros-noetic-ros-controllers ros-noetic-joint-state-controller ros-noetic-joint-trajectory-controller ros-noetic-effort-controllers ros-noetic-position-controllers ros-noetic-velocity-controllers ``` 2. 启动Gazebo仿真环境: ``` roslaunch <your_robot_description_package> gazebo.launch ``` 3. 启动MoveIt规划器: ``` roslaunch <your_moveit_config_package> your_moveit_planning_execution.launch sim:=true ``` 4. 启动机器人控制器: ``` roslaunch <your_robot_controller_package> your_robot_controller.launch ``` 5. 启动MoveIt Rviz插件: ``` roslaunch <your_moveit_config_package> moveit_rviz.launch config:=true ``` 通过上述步骤,我们可以将MoveIt和Gazebo集成在一起,以便在仿真环境进行机器人规划和控制。用户可以通过MoveIt Rviz插件进行规划,并将规划结果发送到机器人控制器执行。同时,用户也可以通过Gazebo监视机器人在仿真环境的运动情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值