ROS工具RViz可视化3D空间的一些错误的解决方案

1、引言

RViz是ROS的一个可视化3D空间的工具,它用于帮助用户在ROS系统中导航、查看和交互。RViz可以显示来自各种ROS节点的信息,例如传感器数据、机器人的状态和路径等。通过RViz,用户可以以图形方式查看和交互各种ROS数据,非常直观便捷。

常见的一些用途:
机器人模型:可以在3D空间中查看机器人的模型,包括机器人的姿态、位置和速度等。
传感器数据:通过显示图像或点云数据,可以帮助用户查看机器人的周围环境。
路标:可以在地图上标记特定的点或对象,这些标记可以用于导航或其他应用。
路径规划:通过可视化路径规划机器人的轨迹,帮助用户更好地理解机器人的行为。
状态信息:例如电池电量、机器人当前的状态等。

2、安装与启动rviz

一般都是ROS自带的,如果没有自带的情况,可以自己单独再次安装,需要看自己系统版本来选择,我这里是Ubuntu18,所以就是melodic,如果是Ubuntu 20的版本,就选择修改为noetic

我们可以使用命令来查看ROS版本:printenv ROS_DISTRO

确定了版本就可以安装了:sudo apt-get install ros-melodic-rviz

对于安装ROS的可以查阅:Ubuntu18.04版本安装ROS及出现错误的处理方法
安装好了之后,我们接着上一篇文章的内容,分别开启多个终端:

roscore
cd ~/mywanderbot_ws/src/mywanderbot/src
python key_publisher.py
cd ~/mywanderbot_ws/src/mywanderbot/src
./keys_to_twist_ramps.py _linear_scale:=0.5 _angular_scale:=1.0 _linear_accel:=1.0 _angular_accel:=1.0

或者直接运行launch文件:roslaunch mywanderbot test.launch

然后我们启动机器人:roslaunch turtlebot3_gazebo turtlebot3_world.launch

最后我们启动rviz:rosrun rviz rviz

3、RobotModel错误 

开启rviz工具之后,我们先来添加一个机器人,在界面的左下角的位置,点击Add,在弹出框中选择RobotModel,如下图:

我们发现Add进来的RobotModel是红颜色高亮的,状态是错误Status:Error,右边的机器人是白色的,如下图: 

解决方法:

sudo apt-get install unicode
sudo apt-get install ros-melodic-joint-state-publisher-gui

安装好了之后,重启ros之后再打开:rosrun rviz rviz
其中melodic取决于Ubuntu版本(本机是Ubuntu18)不同而不同,我们在启动roscore等地方也是可以看到的,还可以使用参数来获取:rosparam get /rosdistro 

4、No transform错误

上面选择坐标系之后,如果问题还是没有解决,我们接下来看下里面的错误提示信息,如下图:  

No transform from [base_link] to [base_footprint]
解决方法,分别启动下面两个节点:

rosrun joint_state_publisher joint_state_publisher
rosrun robot_state_publisher robot_state_publisher

一个是发布关节状态信息JointState给机器人:rosmsg show JointState

[sensor_msgs/JointState]:
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
string[] name
float64[] position
float64[] velocity
float64[] effort

另一个就是将URDF以及接收到的位姿,通过运动学的计算,使用tf进行发布。

当然这种启动节点的方法,我们可以将其写入到我们的test.launch文件里面:

cd ~/mywanderbot_ws/src/mywanderbot/launch
gedit test.launch 
<launch>
<node name="key_publisher" pkg="mywanderbot" type="key_publisher.py" respawn="false" output="screen" />
<node name="keys_to_twist_ramps" pkg="mywanderbot" type="keys_to_twist_ramps.py" respawn="false" output="screen">
  <param name="linear_scale" type="double" value="0.5" />
  <param name="angular_scale" type="double" value="1.0" />
  <param name="linear_accel" type="double" value="1.0" />
  <param name="angular_accel" type="double" value="1.0" />
</node>

<include file="$(find turtlebot3_gazebo)/launch/turtlebot3_world.launch" />
<node  name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/> 
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" />
</launch>

这样就方便很多了,只需要运行launch文件即可:roslaunch mywanderbot test.launch

其中需要注意的是在新增的节点之前,需要通过include来先加载机器人的launch文件

<include file="$(find turtlebot3_gazebo)/launch/turtlebot3_world.launch" />

不然会出错。最后的节点就是rviz。运行之后,就一切正常了,如下图:

其他一些可视化工具,有兴趣的朋友可以查阅:机器人TF坐标系变换与一些可视化工具的应用

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅恪光潜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值