ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot

一直在寻找一个示例可以将ROS学习中常用的基础内容大部分都包含进去,最好还包括Gazebo仿真,

这样即使没有硬件设备,也可以很好的学习ROS相关内容,但又必须有对应的硬件,便于后续研究。

这里,介绍一款意外发现的ROS的robot示例----evarobot----

官方教程网址:http://wiki.ros.org/Robots/evarobot

仿真源码网址:https://github.com/inomuh/evarobot_simulator

下面进入正文:

ROS(indigo)机器人操作系统Gazebo仿真示例evarobot

1. 基本安装和编译

下载功能包后,在catkin_ws中进行编译,一切ok,就可以使用这个功能包了。

~/catkin_ws$ catkin_make

有可能遇到一些问题,可能需要下面命令:

~/catkin_ws$ source devel/setup.bash

~/catkin_ws$ rosdep install --from-path src/ -y -i

~/catkin_ws$ rosstack profile & rospack profile

2. 示例使用

上面步骤完成后,就可以复习常用的ROS命令:

~$ rosstack find evarobot_simulator

/home/exbot/catkin_ws/src/evarobot_simulator/evarobot_simulator

[email protected]:~$ rospack find evarobot_gazebo

/home/exbot/catkin_ws/src/evarobot_simulator/evarobot_gazebo

[email protected]:~$ rosls evarobot_gazebo

cfg            CMakeLists.txt  launch   map          src

CHANGELOG.rst  include         LICENSE  package.xml  worlds

其他还有roscd等,不一一列举。在终端运行:

~$ roslaunch evarobot_gazebo evarobot.launch

~$ rosnode list

/gazebo

/joint_state_publisher

/robot_state_publisher

/rosout

/twist_marker_server

~$ rostopic list

/camera/depth/camera_info

/camera/depth/image_raw

/camera/depth/points

/camera/parameter_descriptions

/camera/parameter_updates

/camera/rgb/camera_info

/camera/rgb/image_raw

/camera/rgb/image_raw/compressed

/camera/rgb/image_raw/compressed/parameter_descriptions

/camera/rgb/image_raw/compressed/parameter_updates

/camera/rgb/image_raw/compressedDepth

/camera/rgb/image_raw/compressedDepth/parameter_descriptions

/camera/rgb/image_raw/compressedDepth/parameter_updates

/camera/rgb/image_raw/theora

/camera/rgb/image_raw/theora/parameter_descriptions

/camera/rgb/image_raw/theora/parameter_updates

/clock

/cmd_vel

/gazebo/link_states

/gazebo/model_states

/gazebo/parameter_descriptions

/gazebo/parameter_updates

/gazebo/sensor/Bumper

/gazebo/set_link_state

/gazebo/set_model_state

/imu

/ir0

/ir0/parameter_descriptions

/ir0/parameter_updates

/ir1

/ir1/parameter_descriptions

/ir1/parameter_updates

/ir2

/ir2/parameter_descriptions

/ir2/parameter_updates

/ir3

/ir3/parameter_descriptions

/ir3/parameter_updates

/joint_states

/lidar

/odom

/rosout

/rosout_agg

/sonar0

/sonar0/parameter_descriptions

/sonar0/parameter_updates

/sonar1

/sonar1/parameter_descriptions

/sonar1/parameter_updates

/sonar2

/sonar2/parameter_descriptions

/sonar2/parameter_updates

/sonar3

/sonar3/parameter_descriptions

/sonar3/parameter_updates

/sonar4

/sonar4/parameter_descriptions

/sonar4/parameter_updates

/sonar5

/sonar5/parameter_descriptions

/sonar5/parameter_updates

/sonar6

/sonar6/parameter_descriptions

/sonar6/parameter_updates

/tf

/tf_static

/twist_marker_server/feedback

/twist_marker_server/update

/twist_marker_server/update_full

~$ rosrun rqt_reconfigure rqt_reconfigure

~$ rviz

~$ rosrun rqt_graph rqt_graph

~$ rosrun rqt_console rqt_console

~$ rosrun rqt_plot rqt_plot /cmd_vel

在Gazebo环境中加入一些物体:

$ rosrun rqt_image_view rqt_image_view

可以使用键盘,手柄或手机遥控gazebo中的机器人运动,观察各类传感器数据的变化。

也可以在虚拟仿真环境中,测试各类图像算法等,构建自己的3D模型等,这里不再赘述。

如果想要查看点云,可以通过rviz:

3. SLAM示例

~$ roslaunch evarobot_gazebo evarobot.launch world_path:=$(rospack find evarobot_gazebo)/worlds/UPlat.sdf

~$ roslaunch evarobot_slam gazebo_slam.launch

~$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

~$ roslaunch evarobot_viz view_evarobot.launch

~$ rosrun map_server map_saver -f $(rospack find evarobot_slam)/gazebo_map/map

4. 导航

~$ roslaunch evarobot_navigation gazebo_navigation.launch world_path:=$(rospack find evarobot_gazebo)/worlds/UPlat.sdf

遇到点小问题,还未解决。

-End-

时间: 2024-10-08 12:52:18

ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot的相关文章

ROS(indigo) turtlebot2 + android一些有趣应用

ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtlebot示例非常全面,也给出了Android的Apk,今天尝试一下.实际机器人已测. 考虑到通用性,这里选用仿真环境: ~$ roslaunch turtlebot_gazebo turtlebot_world.launch ~$ roslaunch turtlebot_gazebo gmapping

机器人操作系统 除了Android还有一个ROS(转)

你知道市面上的机器人都采用了哪些操作系统吗? 估计大多数人给出的答案就是 Android 了.从市面上的产品来看,基于 Android 系统开发的机器人确实是主流,但是还有一种操作系统却鲜为人知,它叫 ROS(机器人操作系统,Robot Operating System),是专门为机器人设计的一套开源操作系统,时至今日已经诞生八年时间了. ROS 究竟为何物? ROS 的前身是斯坦福人工智能实验室为了支持 STAIR(斯坦福大学人工智能机器人项目)而建立的交换庭(Switchyard)项目.要了

机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo【转】

转自:http://blog.csdn.net/bobsweetie/article/details/43638761 Ubuntu14.04安装ROS Indigo 一.安装ROS 1.1配置Ubuntu的软件中心 配置Ubuntu要求允许接受"restricted," "universe," and "multiverse."的软件源,可以根据下面的链接配置: https://help.ubuntu.com/community/Reposit

机器人操作系统ROS | 简介篇

同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一周年剪辑视频. ROS已经发布八周年了,在国外科研机构中非常受欢迎.目前,以美国西南研究院为首的几位大佬开始尝试将ROS应用在工业机器人中,上面这个视频就是ROS-I项目一周年的进展情况. 为了说明讲清楚ROS,我就从ROS是什么,为什么使用ROS,如何使用ROS三个方面展开. △出自今年<机器人视觉与应用>课程本人制作的课件 是什么 ROS是Robot Operating System

ROS机器人操作系统分布式控制的节点 配置方法

MASTER设置 整个系统只需要一个master,选择一个机器来运行master提供topic寻址.参数服务器等功能.所有的节点必须通过环境变量ROS_MASTER_URI配置为使用同一个master. master设置方法: export ROS_MASTER_URI="http:/wsh:11311" 其中wsh是我计算机的名称,此时我的计算机是master,其他计算机在终端输入此指令即可连接master. 可以通过下面介绍的ip和计算机名绑定的方法设置. SSH安全连接设置 完整

Ubuntu14.04安装和配置ROS Indigo

安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu.com/community/Repositories/Ubuntu 配置成如下图所示即可,一般情况下,这些配置都是默认的. 软件源配置 添加软件源到sources.list 设置软件源的代码如下: $ sudo sh -c 'echo "deb http://packages.ros.org/ro

Ubuntu 14.04 ROS Indigo install

对于在Ubuntu 14.04上安装ROS Indigo来说,首先你需要配置你的文件来源是可以均可以下载的,这就是保证后面的文件均可以在库中来下载:进而,选择不同的版本来选择以及设置你的source.list (软件源):进而来设置你的密钥:进而来进行安装,但是这时候就需要来确认你的Debian软件包索引是否是最新的,因此需要sudo apt-get update 或者sudo aptitude update来进行更新:进而来包含ROS许多库文件,使用sudo apt-get install r

ubuntu 14.04 server(amd64) 安装ros indigo

1.添加软件源(添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件) sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list' 2.安装软件包授权密钥 (1)在当前目录生成ros.key文件 wget http://packages.ros.org/ros.key -O - (2)然后加载该文

操作系统学习 28/9/2015

操作系统学习 28/9/2015 虚拟内存:程序可以比内存大,允许执行程序不全在内存中,按需调页. 按需调页:通过设置有效无效位,有效表面该页合法且在内存中,无效表明该页不在进程的逻辑空间内或者该页合法但是在磁盘上.进程试图访问无效位的页时会产生错误陷阱,处理:1.检查进程内部页表,确定该引用是否合法,若非法,则终止进程,若合法,则调入该页面:2.在内存中找到一个空闲帧,将页面从磁盘掉入该帧中:3.修改进程的内部表和页表:4.继续该中断指令的执行.(重新对该指令进行获取,译码等) fork()调