了解ROS是深入学习ROS和进行ROS应用开发的基础,硅步机器人以连载的形式对ROS的基本概念、常用命令及开发应用进行由浅入深的介绍。本期介绍3D可视化工具RViz。
RViz对数据进行三维可视化并进行交互操作,还常用于机器人的运动规划,包括机械臂运动规划、移动机器人路径规划等。本期主要内容有:RViz的安装和启动、显示面板、视图面板和坐标系。
1.Rviz的安装和启动
如果你还没有安装Rviz,请首先运行下面的指令:
sudo apt-get install ros-indigo-rviz
运行下面的指令启动Rviz:
source /opt/ros/indigo/setup.bash
roscore &
rosrun rviz rviz
Rviz首次启动时,你会看到图5-1所示的空白界面:
图1 Rviz启动界面
图1中间黑色的区域为3D视图,这里由于尚未载入可视化对象,所以是空的。左侧为显示列表,目前仅显示全局选项和时间视图,右侧是视图和选择面板。
2.显示(Displays)面板
显示面板中间有一个包含了模拟环境下不同参数项的树形列表,该列表中的选项包括点云、轴、网格、标记等。
2.1添加新的显示
要添加一个新的显示,点击底部的“Add”按钮:
Rviz将会弹出如下图所示的新显示对话框:
该对话框包括三项内容:显示类型、描述和显示名称。显示类型列表给出了该显示将要可视化的数据类型,描述给出了所选中显示的简要介绍,而显示名称则需要由用户输入一个独一无二的名字。例如,如果你的机器人有两个激光扫描仪,你需要创建两个“Laser Scan”的显示,可以将它们分别命名为“Lase Base”和“Laser head”。
2.2 显示属性
每个显示都有自己的属性列表(如图4),你可根据需要对其属性进行修改。
2.3 显示状态
每一显示都有一个相应的状态与之对应,通过状态可以了解某一显示是否正常。状态一共有四种:OK(正常),Warning(警告),Error(错误)和Disabled(禁用)。不同的状态用不同的背景色表示(如图5),黑色为OK,黄色为Warning,红色为Error,灰色为Disabled。
2.4内置显示类型
Rviz内置了许多显示类型,如表1所示。
表1 部分Rviz内置的显示
显示类型 |
描述 |
消息 |
Axes(轴) |
显示一组坐标轴 |
|
Camera(摄像机) |
从该摄像机的视角创建一个新的渲染窗口,在其上覆盖原来的图像 |
sensor_msgs/Image sensor_msgs/CameraInfo |
Grid(网格) |
显示2D或3D网格 |
|
Grid Cells(网格单元) |
从网格中提取单元,通常为导航栈代价地图中的障碍 |
nav_msgs/GridCells |
Image(图像) |
创建一个带有图像的渲染窗口。与Camera显示不同,该显示不使用CameraInfo。 |
sensor_msgs/Image |
InteractiveMarker(互动标记) |
从一个或多个交互标记服务器显示3D对象,允许使用鼠标与它们交互。 |
visualization_msgs/InteractiveMarker |
Laser Scan(激光扫描) |
显示来自激光扫描仪的数据,带有不同的渲染和累积选项。 |
sensor_msgs/LaserScan |
Map(地图) |
在地平面显示地图 |
nav_msgs/OccupancyGrid |
Markers(标记) |
允许程序员通过主题显示任意的原始形状 |
visualization_msgs/Marker visualization_msgs/MarkerArray |
Path(路径) |
显示来自导航栈的路径 |
nav_msgs/Path |
Point(点) |
将点绘制成一个小球体 |
geometry_msgs/PointStamped |
Pose(位姿) |
将位姿绘制成箭头或轴 |
geometry_msgs/PointStamped |
Pose Array(位姿阵列) |
绘制箭头“云”,每一个箭头代表位姿阵列中的一个位姿 |
geometry_msgs/PoseArray |
Point Cloud(点云) |
显示来自点云的数据,带有不同的渲染和累积选项。 |
sensor_msgs/PointCloud, sensor_msgs/PointCloud2 |
Polygon(多边形) |
将多边形的轮廓绘制成线 |
geometry_msgs/Polygon |
Odemetry(里程计) |
随时间累积里程计的位姿 |
nav_msgs/Odometry |
Range(距离) |
用圆锥体表示声呐或红外距离传感器的测量距离 |
sensor_msgs/Range |
RobotModel(机器人模型) |
显示处于正确位姿(由当前TF变换定义)的机器人的可视化表示 |
|
TF |
显示TF变换层次 |
|
Wrench(扳手) |
将扳手绘制成箭头(力)和箭头+圆(力矩) |
geometry_msgs/WrenchStamped |
3.视图面板
Rviz的视图面板中提供了几种不同类型的摄像机,每一种摄像机的控制方式和投影方式(正交投影、透视投影等)也不尽相同。
3.1 轨道摄像机(默认值)
轨道摄像机围绕焦点旋转,且始终朝向该焦点。当移动摄像机时,焦点可视为一个小圆盘,如图6所示。
轨道摄像机的控制:
鼠标左键:单击并拖动围绕焦点进行旋转。
鼠标中键:单击并拖动在由摄像机向上和向右的矢量组成的平面上移动焦点。移动的距离取决于焦点。如果焦点上有物体,你在该物体上单击,它会停留在你的鼠标下面。
鼠标右键:单击并拖动放大/缩小焦点。向上拖动放大,向下拖动缩小。
鼠标滚轮:放大/缩小焦点。
3.2 FPS(第一人称)摄像机
FPS是第一人称摄像机,相当于手持摄像机进行控制。
FPS摄像机的控制:
鼠标左键:单击并拖动进行旋转。单击鼠标下方的对象并直接查看它。
鼠标中键:单击并拖动沿由摄像机向上和向右的矢量组成的平面移动。
鼠标右键:单击并拖动沿摄像机前向矢量移动。向上拖动向前移动,向下拖动向后移动。
鼠标滚轮:向前/向后移动。
3.3 垂直正交摄像机
垂直(Top-down)正交摄像机始终沿Z轴(机器人框架内)向下观察对象,看到的是正交视图,这意味着当对象远离时看起来也不会变小。
垂直正交摄像机的控制:
鼠标左键:单击并拖动绕Z轴进行旋转。
鼠标中键:单击并拖动沿XY平面移动摄像机。
鼠标右键:单击并拖动缩放图像。
鼠标滚轮:缩放图像。
3.4 XY轨道摄像机
同轨道摄像机,但焦点限制在XY平面。
4.坐标系
Rviz使用tf变换系统将局部坐标系中的数据变换到全局坐标系中。Rviz常用的坐标系有两种:固定坐标系和目标坐标系。
4.1 固定坐标系
固定坐标系相比而言更重要一些。固定坐标系是用来表示“世界”坐标系的参考坐标系,它通常指“地图”、“世界”等,也可以是你的里程计坐标系。
如果固定坐标系被错误地设置成了机器人底座,那么该机器人曾看到的所有对象都将在其前面消失。为了得到正确的结果,固定坐标系相对于“世界”应该是静止的。如果你更改了固定坐标系,当前显示的所有数据都被清除,而非重新变换。
4.2 目标坐标系
目标坐标系是摄像机视图的参考坐标系。比如,如果你的目标坐标系是地图,你将会看到绕地图行驶的机器人。如果你的目标坐标系是机器人底座,你将会看到机器人将待在原地,而其他一切相对于机器人底座移动。
硅步机器人(Gaitech Robotics) 是专业提供机器人整体解决方案的创新型公司,在香港、首尔、台北、上海、山东五地拥有分支机构。硅步的业务和合作伙伴遍布全球多个国家,拥有健全的销售和服务网络。同时硅步拥有一支国际化的高水平技术团队,致力于为客户提供业内领先的产品、技术和专业的服务。公司目前主要业务是基于ROS(Robot Operating System)系统的智能机器人的集成、生产、销售和技术支持服务。
硅步机器人于2016年3月参与投资了加拿大Agile Sensor Technologies Inc.(www.agilesensors.com),致力于机器人电机控制系统、无人机飞行稳定系统、智能相机和高性能传感器等技术和产品的研究和开发。
硅步机器人联合协作移动机器人技术先驱西班牙Robotnik公司和协作机械臂国际知名公司北京遨博智能共同研发了工业智能移动抓取机器人JR2,它代表了目前国际上协作机器人的最高技术水平,有着巨大的市场潜力。
考虑到山东的人文环境、地理区位、产业基础等多个有利因素,硅步机器人于2017年3月斥资3亿元在山东邹城建造了科教无人机及工业机器人研发生产基地。这意味着硅步机器人正式进入机器人生产、加工产业链条,与研发和销售互为有效补充,标志着硅步机器人的发展从此迈上一个新的台阶。
同时,硅步所属企业积极参与了多项国家自然科学基金和973项目,拥有多项产品专利和软件著作权。在引进消化吸收国际先进技术的同时,硅步所属企业与国内科研单位紧密合作,不断创新,加速中国智造的前进步伐。
2025-04-30 11:24
2025-04-30 11:23
2025-04-30 11:22
2025-04-30 11:21
2025-04-30 11:20
2025-04-30 11:19
2025-04-29 14:04
2025-04-29 14:03
2025-04-29 14:02
2025-04-29 13:49