一、基于python的ros简单话题消息编程
1.终端输入
2.再开一个终端输入
cd ~/catkin_ws/src
3.创建一个hello_world的包
4.在hello_world目录下创建一个scripts文件夹
5.在scripts下创建两个py文件输入如下代码:
6.对py文件进行授权 sudo chmod +x py文件
7.最后对文件进行运行:①在两个终端中运行rosrun hello_world py文件,如果不能成功运行就做第二步
② 进入py文件所在的位置./执行py文件(这是在授权的前提下才能成功的)
8.最终得到结果:
在这里插入图片描述
二、 ROS环境Gazebo与Rviz仿真
首先启动gazebo(如果安装的是ros-full的话就自带有),否则需要自己安装
注意:
gazebo最好是在版本7以上(7.xx),我的版本是7.0的时候用rviz查看图像会报错,所以强烈建议将其更新到7.0以上。
在7.0的基础上升级gazebo的步骤如下:
下面开始搭建模型
有两种方法:
①使用模型库,这个需要在官网下载,之后导入到你的工作空间的models文件夹下
https://bitbucket.org/osrf/gazebo_models/downloads/
当然网上有别人提供的网盘连接,那个快一点
②在gazebo界面使用Ctrl+B或者菜单栏找到Building Editor出现自主编辑界面,可以自己做出你想要的模型。
下面显示的是利用gazebo自带的模型进行的操作(做这个之前有三个文件夹是必须要有的)
命令行输入:
会出现如下界面:
这个是自带摄像头的模型,为了方便结合rviz进行图像查看,这个模型再好不过。
如果想要在自己建造的模型中添加摄像头等则需要自己编写代码了。下面是我将摄像头与激光结合的代码
编写完成之后需要catkin_make
,之后再source ./devel/setup.bash
如果catkin_make没有成功,解决方式可能是如下:
缺少控制,所以需要增加控制:
还有就是缺少导航
下面的机器人就是运行成功之后将两种结合的样子。
rviz查看图像:
第一个kinetic的位置应该会有下拉框供你选择,可能是camera_link,如果是lasar就是laser_link
然后需要add一个话题(image/laserscan),将下图所示位置修改,一般也会有下拉框,如果没有则需要根据rostopic list
查看话题信息。
上述的话题输进去之后gazebo报错的话一般就是gazebo的版本低了,参考文章开头位置说的更新gazebo。
接着就会出现摄像头或者激光的图像
激光就不用在意了,参数可能没设对就只有这么一点
此外:如果想要移动小车则需另开一个终端:
如果第一次没有成功则需要进行
然后点击键盘的进行移动和转向
参考链接:https://www.guyuehome.com/26681
http://gazebosim.org/tutorials?tut=actor&cat=build_robot