ROS工作空间的创建,以及发布者publisher,subscriber订阅者的编程实现
1.ros工作空间的分为
src(代码空间):用于存放我们代码的空间,功能包一定要放入这里。
build(编译空间):用于存放编译文件
devel(开发空间)
install(安装控件)
注意:我们启动ROS之前一定要先启动rosmaster,在终端输入roscore,如果此时出现,红色字行报错吗,说明你的环境变量并没有设置好,解决方法(博主已经试过了是可以的)就是在.bashrc添加一行source /opt/ros/你的ROS版本/setup.bash
2.创造工作区间:mkdir -p ~/catkin_ws/src
然后再进入,catkin_ws(这个文件夹名字完全看你自己的取名爱好)
输入指令catkin_init_workspace,这样工作区建便成功创建了
然后我们就可以编译了catkin_make(不过此时编译完之后是空的节点)
然后创建节点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MD1uoRh0-1586545946831)(C:\Users\admin\Desktop\创建程序)]
这个我们也可以使用catkin_make 命令来编译,由于有了文件,编译信息会多一堆。
为了防止环境变量有问题我们还可以查看,环境变量,echo $ROS_PACAKGE_PATH
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PkZA5GbI-1586545946832)(C:\Users\admin\Desktop\echo.jpg)]
二。关于发布者publisher
1.它是向订阅他的节点发布消息的,我们需要对它做程序编写来使得它可以成功实现(ROS支持C++,python,所以可以使用他们来编写,在创造的时候加上roscpp,rospy就可以了。)
2.在创建节点名字的时候注意,ros的节点名字是不能重复的。
3.创建publisher的步骤
1.初始化ROS输出节点
2.向ROS注册ROSmaster注册节点信息
3创建消息数据(向其中输入数据)。
4.按照一定频率循环发布消息
我么在这里要注意的是其中有一个节点句柄,它是用来管理节点连接资源的,其中为了查看信息,我们可以使用ros info(打印信息)
这里是鸽了很多天的博主,几天后重新写自己有关ROS学习报告,主要是在实际操作方面会遇到许多没有意料到的错误,比如在使用rosrun 运行自己的命令时,始终会显示找不到该文件,为了解决这个错误我们可以在终端输入source devel/setup.bash(也会有许多搜索结果叫你在.bashrc文件里,但这样短期内可能并不管用,所以我们干脆简单粗暴一点,如果想找到这个文件只需要在,home目录下使用CTRL H就会出现隐藏文件)
中间还有一些需要注意,在CMAKELIist文件中添加编译信息中,仔细观察你会发现,他在里面有分区(虽然我觉得将你想输入的信息直接添加在末尾也没什么事,但为了分类方便,可以在build分区里输入你的编译信息,例如add_executable(),target_link_libraires(xxx,${catkin_make})一般是这个)
e(),target_link_libraires(xxx,${catkin_make})一般是这个)
这里还漏了一些,关于实际操作的贴图(怪我偷懒,关于,订阅者,客户端,服务端的知识我还是把它合并在一起,在发吧(理论是已经学到了,但是实际操作上总是出现的错误(。。。。。。),也算是给我写个博客增加素材吧。