ros新建功能包的第一个程序


每次新建功能包都容易忘记第一个程序需要配置什么,特此记录一下。。。

新建工作空间

//创建工作空间
mkdir -p ~/catkin_ws/src 
//初始化
cd ~/catkin_ws/src
catkin_init_workspace 
//编译
cd ~/catkin_ws/
catkin_make

//添加环境变量
source devel/setup.bash 

新建功能包

cd ~/catkin_ws/src
// 功能包命名为:my_first_cpp
catkin_create_pkg my_first_cpp  std_msgs rospy roscpp   

第一个程序配置

先在功能包内随便写一个程序,假设程序名称为“my_first_cpp_node.cpp”

#include<iostream>
using namespace std;
int main(int argc,char** argv)
{
   cout<< "hello word"<<endl;
    return (0);
}

进入CMakeLists.txt

//如果没有其他依赖,只需修改biuld
//找到 “Declare a C++ executable”
//将“add_executable()”的注释取消
add_executable(${PROJECT_NAME}_node src/my_first_cpp_node.cpp)

//将“add_dependencies()”的注释取消
add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

//将“target_link_libraries()”的注释取消
target_link_libraries(${PROJECT_NAME}_node
   ${catkin_LIBRARIES}
 )

 //然后编译
 catkin_make

运行

roscore
source devel/setup.bash
rosrun my_first_cpp my_first_cpp_node

其他程序配置

如果有其他单独节点,可直接在CMakeLists.txt末尾添加:

//假设其节点名为“other_node”
add_executable(other_node src/other_node.cpp )
target_link_libraries(other_node  ${catkin_LIBRARIES}   )

pcl、opencv、eigen等配置

//找到“ find_package”
find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)
find_package (PCL 1.8 REQUIRED)

//找到build中的“include_directories()”
${EIGEN3_INCLUDE_DIR}
${OpenCV_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}

//找到需要用到的节点所在的“target_link_libraries()”
加入:${OpenCV_LIBRARIES}    ${PCL_LIBRARIES}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值