【ROS1-Noetic】学习记录02-建立一个节点(cpp和py)

目录

cpp 

一、软件包

1.新建一个软件包

2.该软件包的CMakeList.txt文件

3.package.xml

4.roscd 软件包名:进入该软件包的目录

5.卸载软件包

​编辑​编辑​编辑

二、创建cpp节点程序并编译运行

1.正确编写程序

2.CMakeList文件修改

3.运行节点

4.总结

py

cpp 

一、软件包

1.新建一个软件包

在目标工作空间目录下,执行:catkin_creat_pkg 包名 rospy roscpp std_msgs

此时会在该工作空间新建一个包,包李有两个文件两个目录

2.该软件包的CMakeList.txt文件

cmake_minimum_required(VERSION 3.0.2):最低支持的版本号

project(ssr_pkg):包名

#注释掉的地方,指令示例,用来在需要的时候去掉注释

##注释:指令说明

3.package.xml

几乎是软件包必备文件,有这个文件很有可能说明这个文件是一个软件包

4.roscd 软件包名:进入该软件包的目录

其中/opt/ros/noetic/share该目录存放了所有刚开始下载ros的基础包和后来用apt下载的扩展包,都是现成的可执行文件,可以直接运行,但github上下载到工作空间的软件包三源码文件,需要编译

120是基础包的source

125是工作空间扩展包的source

(这里好像不是特别懂,好像关于依赖项的选择)

5.卸载软件包

*下载讯飞输入法时执行了修复依赖项

后来又卸载了

二、创建cpp节点程序并编译运行

包->src 新建一个cpp文件

1.正确编写程序

例如:

2.CMakeList文件修改

(1)为这个包添加一个可执行程序

找到Declare a C++ executable

复制136到最后一行

add_executable(可执行文件的名字(节点名) src/指定从那个代码文件进行编译)

(2)把ros相关程序所在的库文件链接

即ros::(argc,argc,"节点名“);这样的代码

找到113Build

将148## Specify libraries to link a library or executable target against中的

# target_link_libraries(${PROJECT_NAME}_node

# ${catkin_LIBRARIES}

# )

复制到最后一行并更改

target_link_libraries(节点名

${catkin_LIBRARIES}

)

修改完该文件后编译工作空间

3.运行节点

rosrun 包名 节点名

(注意没有在.bashrc文件加上source这个工作空间的setup.bash的话,要先source一下)

4.总结

(1)catkin_create_pkg创建软件包

(2)软件包下的src文件夹下创建cpp节点文件

(3)include包含ros的头文件

(4)构建main函数,并在开头执行ros::init

(5)while(ros::ok())

(6)修改CMakeList.txt文件

(7)编译运行

---------------------------------------------------------------------------------------------------------------------------------

py

一、软件包

1.新建一个软件包

py程序不需要编译,所以在建好软件包后编译一次即可,目的是找到该软件包

2.在软件包下新建一个scripts,在该文件夹下存放py文件

二、创建py节点

1.正确编写程序

添加解释器

显示中文

引入rospy,相当于cpp中的句柄

引入消息类型

2.添加权限

因为ubuntu新创建的文件不带有执行权限

在该py文件目录下打开终端,输入

chmod +x <节点名>

回车后没有提示即可

*如果新建py文件时直接复制了已添加权限的py文件,则不需要再次添加

3.运行节点

先运行roscore

然后rosrun即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值