安装ROS+ROS命令行工具的使用

1.添加ROS软件源

$ sudosh -c 'echo "deb http;/packages.ros.org/ros/ubuntu $(sb_release -sc) main">/etc/apt/sources.list.d/ros-latest.list'

2.添加密钥

$ sudo apt-key adv --keyserver 'hkp:/ keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3.安装ROS

$ sudo apt update
$sudo apt install ros-melodic-desktop-full

4.初始化rosdep

$ sudo rosdep init$ rosdep update

5.设置环境变量

$ echo "source /opt/ros/melodic/setup.bash" >>~/.bashrc
$ source ~/.bashrc

6.安装rosinstall

$ sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

7.启动ROS Master

$ roscore

      这个是用来启动ROS Master ,ROS Master是ros里面所有节点的管理器,也是运行之后系统当中必须要首先运行的一个指令。

 启动小海龟仿真器

$ rosrun turtlesim turtlesim_node

启动海龟控制节点

$ rosrun turtlesim turtle_teleop_key

ros中有许多rqt开头的工具,都是一些基于qt的可视化工具,可以很直观的看到很多信息。

(1)qt_graph:是一个用来显示系统计算图的工具。有两个椭圆形的节点,一个turtlesim是仿真器节点,teleop_turtle是键盘控制节点,两个节点之间必然会存在一定的数据通讯,turtle1/cmd_vel这个话题里面的具体数据内容就是我们这个速度指令的内容,海龟是由两个节点和节点之间的话题组成。

 (2)rosnode是用来显示系统当中所有节点相关信息的一个指令。

$ rosnode list:用来把所有系统当中的节点都列出来。

rosout在服务器里面没有体现,是在ros环境里面默认只要启动ros go就会启动这个话题,这个话题主要采集我们ros里面得所有节点的日志信息,然后用来提交给上面的界面做显示的,这是ros默认的话题。

$ rosnode info:查看某一结点具体信息是什么

(3) rostopic:这是跟话题相关的一个命令行工具

$ rostopic pub:发布话题消息,摁Tab键自动补全

 前面一段是话题名,后面那段twist是发布指令的一个数据的内容/消息结构,双引号里的内容是消息数据里面的结构数据(线速度,角速度)。-r:频率,就是以多少的频率去发布这个话题的消息数据内容。z轴:是垂直仿真器,向屏幕向外的,海龟的旋转都是围绕z轴的。

(4) rosmsg show:显示哪一个消息

(5) rosservice:服务相关的命令行

发布服务请求:

$ rosservice call /spawn "x: 5.0

y: 5.0

theta: 0.0

name: 'turtle2"  

name: 'turtle2"  //反馈信息,turtle2已经生成成功

(6)rosbag record -a-O cmd_record:话题记录,记录现在所有的数据,-a就是把所有的数据都保存下来,-O把所有数据保存在压缩包,cmd_record是压缩包的名字

$ rosbag play cmd_record.bag:话题复现

ROS工作空间(存放工程开发相关文件的文件夹):

src:代码空间(Source Space)

build: 编译空间 (Build Space)

devel: 开发空间 (Development Space)

install: 安装空间 (Install Space)

1.创建工作空间

$ mkdir-p ~/catkin_ws/src

$ cd ~/catkin_ws/src

$ catkin_init_workspace  //把当前文件夹初始化,变成ros_workpase

2.编译工作空间

$ cd ~/catkin_ws/

$ catkin_make  //编译src下面所有功能包的源码

$ catkin_make install   //会产生install这个安装空间

 一个工作空间里面会有四个文件夹。src放后面功能包的源码,install是安装空间,里面会放置我们最终编译生成的可执行文件,devel是放置在开发过程中的一些可执行文件,和install类似,install是开发后分享或者发布给客户使用的一个结构文件,build是在编译过程中的一些中间文件,基本上用不到

3.设置环境变量

$ source devel/setup.bash

4.检查环境变量

$ echo $ ROS_PACKAGE_PATH    //通过ROS_PACKAGE_PATH这个环境变量来查找所有ros功能包的路径

5.创建功能包:$ catkin_create_pkg <package_name>[depend1][depend2][depend3]

功能包是放置ros源码的一个最小单元,所有源码必须全部放在功能包里面,不能直接放在src下面编译。

创建功能包

$ cd ~/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp

编译功能包

$ cd ~/catkin_ws

$ catkin_make

$ source ~/catkin_ws/devel/setup.bash    //只有设置了功能空间的这个setup.bash之后,ROS_PACKAGE_PATH这个里面才会包含工作空间的路径,才能找到写的功能包

只要把功能包放在src里面,就可以通过环境变量找到这个功能包。$ source ~/catkin_ws/devel/setup.bash 这个环境变量的设置是非常重要的。

注意:同一个工作空间下,不允许存在同名功能包。不同工作空间下,允许存在同名功能包。

任何一个功能包都必须存在下面两种文件。package.xml文件是通过xml这种语言去描述的一些跟功能包相关的信息(功能包的名字、版本号、描述等)。还有我们编译运行这个功能包时所依赖的一些其他第三方的功能包,这些信息如果在$ catkin_create_pkg这时没有全部添加好的话,在这里还可以进行扩展,手动添加。CMakeLists.txt这个文件是用来描述功能包里面的编译规则。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaoxiaochan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值