ROS入门之通信架构+实践问题+python版本切换解决

运行起来后是什么样的通信结构。
PR2机器人
在这里插入图片描述
这么多东西,怎么管理进行,并且怎么通信。

节点管理器(作为管家管理进程,master)

在这里插入图片描述
node首先要向master注册,之后就可以点对点通信。
所以首先启动master

roscore

运行以后会启动以下三个
在这里插入图片描述
node是一个ros进程,在ros中叫节点。
一个package中可以有多个可执行文件,运行以后,加载在内存中,就作为一个node。node是动态的概念,可执行文件是静态的。
node以功能划分,不同功能放在不同node中。
启动node

rosrun [pkg_name] [node_name]

rosnode命令
在这里插入图片描述
当有多个node时,可以通过lanuch文件启动。

roslaunch [pkg_name] [file_name.launch]

启动规则在lanuch中。

lanuch文件

在这里插入图片描述
下面是pr2机器人的launch中需要启动的note。需要注意的是,一般把启动的packge命名为bringup
在这里插入图片描述

实践

在重德智能github

https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/melodic

git clone这个软件包到src
然后回到工作空间安装依赖
我们直接安装ros一个功能包所需要的依赖一个较常使用的命令是

rosdep install --from-paths src --ignore-src --rosdistro=melodic -y  

这个命令是用于安装工作空间中 src 路径下所有package的依赖项(由pacakge.xml文件指定)。
参考ROS:安装一个功能包所有的依赖
问题1
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?这里我都试了,最终解决办法是再添加源文件

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

参考博客ROS安装(国内源)

运行lunch文件
roslaunch启动节点

roslaunch robot_sim_demo robot_spawn.launch 

问题2
substitution args not supported: No module named ‘rospkg’
解决

pip3 install -U rospkg

问题3
再运行,有个error
gazebo 报错 [Err] [REST.cc:205] Error in REST request
解决:
gazebo 报错 [Err] [REST.cc:205] Error in REST request 解决
或者有时后需要改回去

查看节点

rosnode list
rosnode info /cmd_vel_mux 

问题4
不显示图上物体
在这里插入图片描述
解决
未解决。。。

问题5
运行脚本,控制运动:

rosrun robot_sim_demo robot keyboard teleop.py

如果正常运行的话这时候再rosnode list就会显示处这个node
出现问题

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(msg)?

考虑是python版本问题,将文件中的usr/bin/env python改为/usr/bin/python
因为查看/usr/bin下python发现,python指向python2,但是很奇怪再桌面查看版本却是python3。这个原因是因为设置anaconda时将其路径写在环境变量里,因此emmmm,但是如果在python文件的头文件改为#!/usr/bin/python则是默认python。
关于python路径讲解请看博文
如何在Anaconda的python和系统自带的python之间切换
同时我们注意,python版本有系统版本,anaconda版本和anaconda虚拟版本之间的区别。

ps:NODE就是一个process

发布了53 篇原创文章 · 获赞 8 · 访问量 3056

猜你喜欢

转载自blog.csdn.net/def_init_myself/article/details/105461099