ROS踩坑(一)—— 载入多车时rviz模型显示错误

目录

问题

原因

解决方案


问题

rviz添加robotmodel时Status显示Error,URDF显示Parameter [robot_ description] does not exist, and was not found by searchParam()。

原因

多车时,需要给每个车不同的命名空间。

解决方案

第一步:在模型生成的launch文件中,给多车不同的命名空间。

第二步:加载模型。

注意:名字应仍为robot_description,不能改变。否则可能产生如下报错,并无法生成模型。

报错:[qingzhou4/spawn_vehicle-24] process has died [pid 43949, exit code 1, cmd /opt/ros/noetic/lib/gazebo_ros/spawn_model -urdf -param robot_description -model qingzhou4 -gazebo_namespace /gazebo -x -9.5 -y 13 -z 1 -R 0.0 -P 0.0 -Y -1.57 __name:=spawn_vehicle __log:=/home/yang/.ros/log/2e9f7f40-a79e-11ee-972f-2ff8d5412408/qingzhou4-spawn_vehicle-24.log].

第三步:在不同的命名空间下导入模型。

第四步:rviz中输入的命名空间与launch文件保持一致。

注意:红框区域需要手动输入,输入内容如下(robot_description前需要加上自定义的命名空间)。

以下是在 Ubuntu 18.04 和 ROS Melodic 中创建一个简单的 RVIZ 显示小车的步骤: 1. 首先,你需要安装 ROS Melodic。可以按照 [ROS Melodic 的官方文档](http://wiki.ros.org/melodic/Installation/Ubuntu) 的说明进行安装。 2. 创建一个小车模型。你可以使用 URDF 来描述小车模型。在本例中,我们将使用一个名为 "my_robot" 的包来描述小车模型。在终端中执行以下命令: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_create_pkg my_robot cd my_robot mkdir urdf cd urdf touch my_robot.urdf.xacro ``` 3. 编辑小车模型。打开 "my_robot.urdf.xacro" 文件并添加以下内容: ``` <?xml version="1.0"?> <robot xmlns:xacro="http://ros.org/wiki/xacro" name="my_robot"> <link name="chassis"> <visual> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <box size="0.5 0.3 0.2"/> </geometry> </visual> </link> <link name="wheel1"> <visual> <origin xyz="0.25 -0.15 0" rpy="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.05"/> </geometry> </visual> </link> <joint name="joint1" type="continuous"> <parent link="chassis"/> <child link="wheel1"/> <origin xyz="0.25 -0.15 0" rpy="0 0 0"/> <axis xyz="0 0 1"/> </joint> <link name="wheel2"> <visual> <origin xyz="0.25 0.15 0" rpy="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.05"/> </geometry> </visual> </link> <joint name="joint2" type="continuous"> <parent link="chassis"/> <child link="wheel2"/> <origin xyz="0.25 0.15 0" rpy="0 0 0"/> <axis xyz="0 0 1"/> </joint> </robot> ``` 4. 生成 URDF 文件。在终端中运行以下命令: ``` rosrun xacro xacro my_robot.urdf.xacro > my_robot.urdf ``` 5. 创建一个 launch 文件。在 "my_robot" 包的根目录中创建一个名为 "display.launch" 的文件,并添加以下内容: ``` <launch> <param name="robot_description" command="cat $(find my_robot)/urdf/my_robot.urdf"/> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"> <param name="use_gui" value="false"/> </node> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find my_robot)/rviz/my_robot.rviz"/> </launch> ``` 6. 创建一个 RVIZ 配置文件。在 "my_robot" 包的根目录中创建一个名为 "my_robot.rviz" 的文件,并添加以下内容: ``` <launch> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"> <param name="use_gui" value="false"/> </node> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find my_robot)/rviz/my_robot.rviz"/> </launch> ``` 7. 启动 RVIZ。在终端中运行以下命令: ``` roslaunch my_robot display.launch ``` 8. 在 RVIZ 中添加小车模型。点击左上角的 "Add" 按钮,选择 "RobotModel",然后将模型拖动到场景中心。你应该能够看到一个小车模型,其中包括一个底盘和两个轮子。 9. 通过 "File" 菜单中的 "Save Config" 选项保存 RVIZ 配置。 以上步骤将在 RVIZ 中创建一个简单的小车模型。你可以使用 "display.launch" 文件启动 RVIZ,并使用 "my_robot.rviz" 配置文件加载小车模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值