ROS安装加小海龟仿真

(一)ROS学习

ROS安装

安装的为Ubuntu16.04,ros为Kinetic版本

参考链接:https://www.ncnynl.com/archives/201801/2273.html

步骤6解决依赖执行第一个命令时

  1. sudo rosdep init
  2. rosdep update

出现以下问题

bash ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.

解决方法链接:https://blog.csdn.net/u013468614/article/details/102917569

Ubuntu使用

VMware Tools安装:

自适应屏幕大小和方便本机和虚拟机之间直接拖拽文件

安装链接:https://blog.csdn.net/engerla/article/details/83009677

没有Tab键自动补全功能

  • unbunt下的shell为bash,若要tab之后直接选择命令,则要安装zsh

方法一:

  1. 利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)
sudo vi /etc/bash.bashrc
  1. 找到文件中的下列代码
#enable bash completion in interactive shells
# if ! shopt -oq posix; then
 # if [ -f /usr/share/bash-completion/bash_completion ]; then
 #   . /usr/share/bash-completion/bash_completion
 # elif [ -f /etc/bash_completion ]; then
 #   . /etc/bash_completion
 # fi
# fi
  1. 去掉 if 到 fi 之间的注释 “#” 号
#enable bash completion in interactive shells
if ! shopt -oq posix; then
 if [ -f /usr/share/bash-completion/bash_completion ]; then
   . /usr/share/bash-completion/bash_completion
 elif [ -f /etc/bash_completion ]; then
   . /etc/bash_completion
 fi
fi
  1. 最后刷新一下即可
source /etc/bash.bashrc
  1. 如果在普通用户执行不了则如下操作
sudo source /etc/bash.bashrc

方法二:

  1. 打开主目录home文件,ctrl+h显示出隐藏文件
  2. 打开.bashrc文件,在结尾加入. /etc/bash_completion

Lunix编辑文档一些操作命令

  • 命令模式进入编辑模式:i,退出:e
  • 删除内容:分为删除一行还是一个字符
    如果是一行:执行两次 d
    如果是删除某个字符:x
    如果是要将文件整个删除,在shell下敲命令:rm -f file (-f是目录)
  • 编辑模式返回命令模式:Esc键
  • 末行模式:Shift键+:,保存退出:wq,放弃所有改动直接退出:q!

ros安装目录

默认在我的虚拟机的opt/ros里面

安装目录功能

  • bin文件夹:存放可执行的具体的程序,是ros系统或者功能包提供的可直接执行的命令,常在终端下执行,故要配置环境变量,让系统找到它。
  • etc文件夹:ros相关的配置文件。 include文件夹:安装的功能包代码的头文件。
  • lib文件夹:可执行的Python文件和一些可执行文件,即功能包中的节点,通过运行节点就可以启动相应功能包的功能。
  • share文件夹:保存的是功能包里面节点的信息,如话题、服务、action机制的定义等。

ROS常用命令

  • ros+Tab键*2:查看ros常用命令(例roscp、rosnode)
  • 命令+空格+Tab键:查看命令参数
  • 命令+空格+ --help:查看使用方法和说明

ROS应用框架

在这里插入图片描述

第一个程序小海龟仿真

参考内容:https://www.cnblogs.com/it-cute/p/13122224.html

  1. 打开三个终端(打开终端快捷键:Ctrl+Alt+T),之后分别输入命令234
  2. 启动ROS Master:roscore
  # ROS Master即ROS提供的节点管理器,它在整个网络通信架构里相当于管理中心,管理各个节点,必须启动
  # 节点管理器启动,同时启动的还有rosout和parameter server。rosout是负责日志输出的一个节点,其作用是告知用户当前系统的状态,包括输出系统的error、warning等,并将log记录在日志文件里;parameter server是参数服务器,它不是一个节点,是存储参数配置的一个服务器。
  # 会显示ros信息,如ros版本号:1.12.17
  # 主机资源地址:ROS_MASTER_URI=http://x-virtual-machine:11311/
  # 退出:Ctrl+C
  1. 启动小海龟仿真器:rosrun turtlesim turtlesim_node
  rosrun pkg_name node_name
  # rosrun:运行功能包中的可执行文件即启动节点,后跟两个参数
  # turtlesim:为该功能包的名字
  # turtlesim_node:为该节点名字,该节点归属于该功能包下面
  1. 启动海龟控制节点:rosrun turtlesim turtle_teleop_key
   # 提供使用键盘来控制小海龟的运动的功能
  1. 打开计算图:rqt_graph
   # 使用rqt_graph可视化工具查看系统中运行的计算图,将系统中的主要资源可视化的展现出来
  1. 列出当前节点(查看话题列表):rosnode list
  2. 查看节点信息:rosnode info +节点
   例:  rosnode info /turtlesim
  1. 列出当前发布或订阅的话题/服务:rostopic list / rosservice list
  2. 查看话题/服务信息:rostopic info +话题 / rosservice info +服务
   例:  rostopic info /turtle1/cmd_vel
  	    rosservice info /spawn   //该服务作用为在服务器里面新生一只海龟
  1. 监听话题/服务具体发布或订阅信息:rostopic echo +话题
  2. 查找提供服务的节点:rosservice node +服务名
   例:  rostopic echo /turtle1/cmd_vel   //监听小海龟运动,角速度,线速度
   		rosservice node /spawn
  1. 发布服务请求:rosservice call + 服务名 + agrs
    查看服务参数agrs:rosservice agrs + 服务名 / 命令8
   例:  rosservice call /spawn + Tab键*2    //键盘左右移动修改参数
   		rosservice call /spawn 3 3 0 Peter  //新生成一只坐标(x,y)=(0,0),朝向角度为0,名字为Peter的小海龟
  1. 通过终端发布简单的订阅消息(发布话题消息):
    a.查看所发布话题的消息类型:rostopic type +话题
   例: rostopic type /turtle1/cmd_vel
  • b.查看消息的详细情况:rosmsg show +该话题数据类型
   例:  rosmsg show geometry_msgs/Twist
  • c.①.rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
参数说明:
   # rostopic pub:这条命令将会发布消息到某个给定的话题。
   # -1:(单个破折号)这个参数选项使rostopic发布一条消息后马上退出。
   # /turtle1/cmd_vel:这是消息所发布到的话题名称。
   # geometry_msgs/Twist:这是所发布消息的类型。
   # -- :(双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的。
   # '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]':在一个geometry_msgs/Twist消息里面包含有两个浮点型元素:linear和angular。
     在本例中,2.0是linear的值,1.8是angular的值。这些参数是按照YAML语法格式编写的,在YAML文档中有更多描述。
  • ②.rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
   # 以1Hz的频率发布速度发布到话题上。-r:频率参数;1:1Hz
  • d.zsh脚本解释器下命令:
    rostopic pub +话题名+该话题数据类型(Tab键可直接出来)
    rostopic pub -r 10 +话题名+该话题数据类型 //-r:频率参数;
   例: rostopic pub /turtle1/cmd_vel geometry_msgs/Twist       //这只发布一次
   	   rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist  //-r:频率参数;10:频率,10次/秒,按频率发布

rqt_plot 命令报错

rqt_plot:可视化工具,将系统中某一个话题的具体信息数据通过曲线的方式展现出来。

使用方法:输入具体话题名,如/turtle1/pose/x,/turtle1/pose/y,点击加号加入绘制区域,软件就会订阅小海龟的坐标位置,在绘制区域显示出来。

  • 报错如下:
    在这里插入图片描述

  • 通过以下命令判断是否安装python pip

	pip --version     # Python2.x 版本命令
	pip3 --version    # Python3.x 版本命令
  • 若未安装,则按照提示输入安装命令:
	sudo apt install python-pip
	sudo apt install python3-pip
  • 升级 matpoltlib
	pip show matplotlib    //查看 matpoltlib 版本
	pip install --upgrade matplotlib	//升级 matpoltlib
  • 最后再运行 rqt_plot ,运行成功。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值