ROS數據可視化工具Rviz和三維物理引擎機器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述
ROS數據可視化工具Rviz和三維物理引擎機器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述
Rviz
Rviz是ROS數據可視化工具,可以將類似字符串文本等枯燥的數據以二維或三維等非常形象的可視化方式進行顯示,如下:
除此之外,也是重要的人機交互界面,如下以一個六足機器人為例:
單足(初始--調整):
數值結果如下:
-
---
-
header:
-
seq: 9034
-
stamp:
-
secs: 1487127789
-
nsecs: 815515041
-
frame_id: ''
-
name: ['coxa_joint_r1', 'femur_joint_r1', 'tibia_joint_r1']
-
position: [-0.973265404079084, 0.7737742705767539, 0.37542032210281007]
-
velocity: []
-
effort: []
六足(調整):
數值結果如下:
-
---
-
header:
-
seq: 2740
-
stamp:
-
secs: 1487128030
-
nsecs: 840929985
-
frame_id: ''
-
name: ['coxa_joint_r1', 'femur_joint_r1', 'tibia_joint_r1', 'coxa_joint_r2', 'femur_joint_r2', 'tibia_joint_r2', 'coxa_joint_r3', 'femur_joint_r3', 'tibia_joint_r3', 'coxa_joint_l1', 'femur_joint_l1', 'tibia_joint_l1', 'coxa_joint_l2', 'femur_joint_l2', 'tibia_joint_l2', 'coxa_joint_l3', 'femur_joint_l3', 'tibia_joint_l3']
-
position: [-0.1977, 0.5781000000000001, -0.5928, -0.0009000000000001229, 0.0, 0.3878999999999999, 0.35850000000000026, -0.21209999999999996, 0.0, 1.017, 0.5486999999999997, 0.46109999999999984, 0.35850000000000026, 0.0, 0.0, 0.0, 0.0, 0.0]
-
velocity: []
-
effort: []
-
---
其他功能如下:
可見,rviz功能還是非常豐富的,如果想進一步深入學習rviz,下面提供了一下參考網址:
1 ros wiki: http://wiki.ros.org/rviz
2 ros-visualization/rviz: https://github.com/ros-visualization/rviz
3 gareth-cross/rviz_satellite: https://github.com/gareth-cross/rviz_satellite
4 davetcoleman/rviz_visual_tools: https://github.com/davetcoleman/rviz_visual_tools
5 uArm-Developer/UArmForROS: https://github.com/uArm-Developer/UArmForROS
6 ros-planning/moveit_visual_tools: https://github.com/ros-planning/moveit_visual_tools
7 ros-visualization/oculus_rviz_plugins: https://github.com/ros-visualization/oculus_rviz_plugins
8 ros-visualization/visualization_tutorials: https://github.com/ros-visualization/visualization_tutorials
9 davetcoleman/ompl_visual_tools: https://github.com/davetcoleman/ompl_visual_tools
資料太多,這里是給出一些典型的~
V-rep
這款機器人仿真軟件網上介紹比較多,用過一段時間覺得比Gazebo消耗資源小很多,支持多種物理引擎,效果如下:
在Linux下使用非常簡單,也有與ROS,Matlab等接口,解壓后,直接運行即可:
-
relaybot@relaybot-desktop:~/Rob_Soft/V-REP_PRO_EDU_V3_3_2_64_Linux$ ./vrep.sh
-
Using the default Lua library.
-
Loaded the video compression library.
-
Add-on script 'vrepAddOnScript-addOnScriptDemo.lua' was loaded.
-
Simulator launched.
-
Plugin 'MeshCalc': loading...
-
Plugin 'MeshCalc': load succeeded.
-
Plugin 'BubbleRob': loading...
-
Plugin 'BubbleRob': load succeeded.
-
Plugin 'Collada': loading...
-
Plugin 'Collada': load succeeded.
-
Plugin 'ConvexDecompose': loading...
-
Plugin 'ConvexDecompose': load succeeded.
-
Plugin 'CustomUI': loading...
-
Plugin 'CustomUI': load succeeded.
-
Plugin 'DynamicsBullet-2-78': loading...
-
Plugin 'DynamicsBullet-2-78': load succeeded.
-
Plugin 'DynamicsBullet-2-83': loading...
-
Plugin 'DynamicsBullet-2-83': load succeeded.
-
Plugin 'DynamicsNewton': loading...
-
Plugin 'DynamicsNewton': load succeeded.
-
Plugin 'DynamicsOde': loading...
-
Plugin 'DynamicsOde': load succeeded.
-
Plugin 'DynamicsVortex': loading...
-
Plugin 'DynamicsVortex': load succeeded.
-
Plugin 'ExternalRenderer': loading...
-
Plugin 'ExternalRenderer': load succeeded.
-
Plugin 'K3': loading...
-
Plugin 'K3': load succeeded.
-
Plugin 'LuaRemoteApiClient': loading...
-
Plugin 'LuaRemoteApiClient': load succeeded.
-
Plugin 'Mtb': loading...
-
Plugin 'Mtb': load succeeded.
-
Plugin 'OMPL': loading...
-
Plugin 'OMPL': load succeeded.
-
Plugin 'OpenMesh': loading...
-
Plugin 'OpenMesh': load succeeded.
-
Plugin 'PovRay': loading...
-
Plugin 'PovRay': load succeeded.
-
Plugin 'Qhull': loading...
-
Plugin 'Qhull': load succeeded.
-
Plugin 'RRS1': loading...
-
Plugin 'RRS1': load succeeded.
-
Plugin 'ReflexxesTypeII': loading...
-
Plugin 'ReflexxesTypeII': load succeeded.
-
Plugin 'RemoteApi': loading...
-
Starting a remote API server on port 19997
-
Plugin 'RemoteApi': load succeeded.
-
Plugin 'SDF': loading...
-
Plugin 'SDF': load succeeded.
-
Plugin 'SimpleFilter': loading...
-
Plugin 'SimpleFilter': load succeeded.
-
Plugin 'SurfaceReconstruction': loading...
-
Plugin 'SurfaceReconstruction': load succeeded.
-
Plugin 'Urdf': loading...
-
Plugin 'Urdf': load succeeded.
-
Plugin 'Vision': loading...
-
Plugin 'Vision': load succeeded.
-
Using the 'MeshCalc' plugin.
-
Checking for an updated V-REP version...
-
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
-
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method
-
This V-REP version is up-to-date.
-
Initializing the Bullet physics engine in plugin 'DynamicsBullet_2_78'...
-
Engine version: 2.78
-
Plugin version: 8
-
Initialization successful.
-
Initializing the Bullet physics engine in plugin 'DynamicsBullet_2_78'...
-
Engine version: 2.78
-
Plugin version: 8
-
Initialization successful.
-
Simulator ended.
主要參考資料如下:
1 官網: http://www.coppeliarobotics.com/
2 ROS wiki: http://wiki.ros.org/vrep_ros_bridge
3 文檔: http://www.coppeliarobotics.com/helpFiles/index.html
4 lagadic/vrep_ros_bridge: https://github.com/lagadic/vrep_ros_bridge
Morse
使用blender游戲引擎,仿真效果還是不錯的,支持ROS,如下:
ROS:
MORSE是一款通用的多機器人仿真平台,主要特點是能控制實際仿真的自由度,可以自由設計符合自己需求的組件模型,運用Blender實時游戲引擎進行原始渲染,設計適合的體系結構,支持通用的網絡接口。它提供了大量可配置的傳感器和執行器模塊,高度的可擴展性,提供人與機器人的交互仿真,使用Python編程,有豐富的文檔並且易於安裝但無法進行精確的動力學仿真,時鍾同步能力性能較差,多機器人仿真時可能出現不同步情況。目前有16所學校和科研機構使用,開源軟件,僅限於Linux和MacOSX操作系統。
參考資料:
1 官網: http://www.openrobots.org/morse/doc/stable/morse.html
2 morse-simulator/morse: https://github.com/morse-simulator/morse
Gazebo
ROS標配,博客有介紹,這里不再多說。
推薦一些網址:
1 官網: http://gazebosim.org/
2 RotorS is a UAV gazebo simulator: https://github.com/ethz-asl/rotors_simulator
Webots
付費機器人仿真軟件,支持ROS。
Webots是一個具備建模、編程和仿真移動機器人開發平台,主要用於地面機器人仿真。用戶可以在一個共享的環境中設計多種復雜的異構機器人,可以自定義環境大小,環境中所有物體的屬性包括形狀、顏色、文字、質量、功能等也都可由用戶來進行自由配置,它使用ODE檢測物體碰撞和模擬剛性結構的動力學特性,可以精確的模擬物體速度、慣性和摩擦力等物理屬性。每個機器人可以裝配大量可供選擇的仿真傳感器和驅動器,機器人的控制器可以通過內部集成化開發環境或者第三方開發環境進行編程,控制器程序可以用C,C++等編寫,機器人每個行為都可以在真實世界中測試。支持大量機器人模型如khepera、pioneer2、aibo等,也可以導入自己定義的機器人。全球有超過1200個高校和研究中心使用該仿真軟件,但需要付費,支持各主流操作系統包括Linux, Windows和MacOS。
具體參考官網: http://www.cyberbotics.com/
Mrpt
具體參考官網: http://www.mrpt.org/
1 mrpt_localization: http://wiki.ros.org/mrpt_localization
2 mrpt_navigation: http://wiki.ros.org/mrpt_navigation
usarsimros
參考: https://sourceforge.net/projects/usarsimros/
Matlab
推薦安裝Matlab 2016b。