一直在寻找一个示例可以将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

exbot@relay-Aspire-4741:~$ rospack find evarobot_gazebo

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



exbot@relay-Aspire-4741:~$ 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-

最新文章

  1. 机器学习理论知识部分--偏差方差平衡(bias-variance tradeoff)
  2. PHP安全编程:对输出要进行转义
  3. selenium eclipse环境搭建
  4. ubuntu12.04 修改 主机名(hostname)
  5. SQL order by的用法
  6. .NET Core Roadmap
  7. $.ajax提交,后台接受到的值总是乱码?明天再总结
  8. 阿里 Java面试 知识点
  9. HDU (线段树 单点更新) I Hate It
  10. heap表按字符串和数值型排序规则
  11. there be 句型
  12. spring cloud微服务搭建第一天
  13. 你真的知道.NET Framework中的阻塞队列BlockingCollection的妙用吗?
  14. 爬虫基础(一)-----request模块的使用
  15. Java基础语法-Unicode、UTF-8、UTF-16
  16. vue-11-路由嵌套-参数传递-路由高亮
  17. RNG牛掰!
  18. Service Mesh
  19. SharePoint 2013 SqlException (0x80131904):找不到Windows NT 用户或组xxxx\administrator
  20. Delphi XE以后的版本 程序如何瘦身

热门文章

  1. canvas初学 半动态画太极图
  2. 解决Popup StayOpen=true时,永远置顶的问题
  3. page1
  4. zabbix API基本使用方法介绍
  5. MySQL CURTIME() 函数
  6. Ruby方法参数默认值的一个小技巧在Rails中的应用
  7. Xcode编译错误__NSCFConstantString
  8. 我的第一本著作:Spark技术内幕上市!
  9. C算法实现:将字符串中的数字返回为整型数
  10. 多线程(三) 实现线程范围内模块之间共享数据及线程间数据独立(ThreadLocal)