学习6:编译ROS程序包,和学习ROS节点
2017-06-07 21:08
351 查看
设置好所有依赖项后,就可以编译这个程序包了。
1 编译ROS程序包
1.1 catkin_make
在catkin工作空间里,直接执行catkin_make就可以编译了。(官方教程说,相当于依次执行了cmake和make)
比如在之前新建的catkin_ws目录里执行,会编译src文件夹下所有的catkin工程。
就可以生成很多东西了。(build devel install文件夹。)
如果代码不在src目录里,则会有点麻烦,比如在mysrc目录里,则用下面代码
2 ROS节点
2.1 安装小乌龟模拟器
因为我们一开始是完整安装的。。所以应该不需要额外安装了。下面代码是直接安装的代码
2.2 LUNIX chown命令
命令格式 : chown [选项]... [所有者][:[组]] 文件...
必要参数
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
可选参数
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
--help 显示帮助信息
--version 显示版本信息
2.3 修改~/.ros文件夹用户归属代码为
也就是把根目录下的ros文件夹修改权限为当前用户(默认是只有root)
2.4 运行roscore
代码
这行代码,就启动了roscore,这个不能关,要打开其他的终端再用。
2.5 用rosnode
ctrl+alt+T 打开新终端,下面的代码会显示正在运行的节点。
正常情况下,应该显示/rosout节点。
试着输入下面的命令
这会输出/rosout节点的一些信息,
2.6 rosrun运行节点
rosrun可以运行一些已经存在的节点,包名+节点名。
我们知道我们之前学过了,我们可以做一些包,一个包里有src,里面可能有若干个东西。应该就是一个包里有很多节点把。
这里我们要运行之前下载的小乌龟包里的节点。
运行了turtlesim包里的turtlesim_node节点。
这个时候应该看到一个小乌龟。
再去运行2.5的命令,这次会多个/turtlesim节点。
有个好玩的命令rosnode ping来看ping。
比如rosnode ping turtlesim
可以看到延迟。(疑问:从哪里去ping这个节点?用ubuntu来ping?还是节点去ping?)
CTRL+C, Linux下万能关闭终端程序的方法。
1 编译ROS程序包
1.1 catkin_make
在catkin工作空间里,直接执行catkin_make就可以编译了。(官方教程说,相当于依次执行了cmake和make)
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
比如在之前新建的catkin_ws目录里执行,会编译src文件夹下所有的catkin工程。
$ catkin_make install
就可以生成很多东西了。(build devel install文件夹。)
如果代码不在src目录里,则会有点麻烦,比如在mysrc目录里,则用下面代码
$ catkin_make --source my_src
$ catkin_make install--source my_src
2 ROS节点
2.1 安装小乌龟模拟器
因为我们一开始是完整安装的。。所以应该不需要额外安装了。下面代码是直接安装的代码
sudo apt-get install ros-indigo-ros-tutorials
2.2 LUNIX chown命令
命令格式 : chown [选项]... [所有者][:[组]] 文件...
必要参数
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
可选参数
--reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
--help 显示帮助信息
--version 显示版本信息
2.3 修改~/.ros文件夹用户归属代码为
$ sudo chown -R <your_username> ~/.ros
也就是把根目录下的ros文件夹修改权限为当前用户(默认是只有root)
2.4 运行roscore
代码
$ roscore
这行代码,就启动了roscore,这个不能关,要打开其他的终端再用。
2.5 用rosnode
ctrl+alt+T 打开新终端,下面的代码会显示正在运行的节点。
rosnode list
正常情况下,应该显示/rosout节点。
试着输入下面的命令
$ rosnode info /rosout
这会输出/rosout节点的一些信息,
2.6 rosrun运行节点
rosrun可以运行一些已经存在的节点,包名+节点名。
$ rosrun [package_name] [node_name]
我们知道我们之前学过了,我们可以做一些包,一个包里有src,里面可能有若干个东西。应该就是一个包里有很多节点把。
这里我们要运行之前下载的小乌龟包里的节点。
$ rosrun turtlesim turtlesim_node
运行了turtlesim包里的turtlesim_node节点。
这个时候应该看到一个小乌龟。
再去运行2.5的命令,这次会多个/turtlesim节点。
有个好玩的命令rosnode ping来看ping。
比如rosnode ping turtlesim
可以看到延迟。(疑问:从哪里去ping这个节点?用ubuntu来ping?还是节点去ping?)
CTRL+C, Linux下万能关闭终端程序的方法。
相关文章推荐
- 机器人操作系统ROS Indigo 入门学习(5)——编译一个ROS Package
- ROS学习笔记10 - 编写编译和检验Service Node
- ROS学习历程(6)------理解ROS的节点(NODE)
- ROS学习笔记三(理解ROS节点)
- ROS入门_1.7 编译ROS程序包
- ROS的学习(六)理解ROS的节点(NODE)
- ROS学习笔记(三)- 分布式节点与laser数据可视化
- 学习ROS的基本知识,节点、话题、服务等
- ROS Learning-006 beginner_Tutorials 编译ROS程序包
- ROS学习笔记(三)- 分布式节点与laser数据可视化
- ROS学习--(五)编译ROS Package
- 机器人操作系统ROS Indigo 入门学习(5)——编译一个ROS Package
- 编译ros程序包--4
- 机器人操作系统ROS Indigo 入门学习(5)——编译一个ROS Package
- 【ROS工具学习】之topic_tools/throttle,改变节点发布频率
- redis学习(-) 单节点编译安装
- ros_fuerte创建工作空间、创建ROS功能包、编译ROS功能包、创建节点(cpp)、编译节点、使用launch文件、创建srv和msg文件、使用新建的srv和msg文件
- ROS学习之 cpp节点句柄
- ROS学习(五)—— 编译ROS Package
- ROS学习笔记(三)- 分布式节点与laser数据可视化