目录
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即可