需求描述:
在 Rviz 中显示一个盒状机器人
1.创建工作空间,并且编译
mkdir -p urdf_ws/src
cd urdf
catkin_make
2.配置vscode
a.打开vscode
code .
b.在vscode按下 Ctrl+Shift+B 编译,选择:catkin_make:build,
修改.vscode/tasks.json 文件为
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
3.在src目录下新建功能包,并且添加依赖 urdf xacro
4.在功能包目录下新建目录,config , meshes , launch , urdf
urdf
: 存储 urdf 文件的目录
meshes
:机器人模型渲染文件(暂不使用)
config
: 配置文件
launch
: 存储 launch 启动文件
5.在urdf文件夹下新建urdf文件,并且写入:
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
其他link设置可以修改URDF文件
<link name="base_link">
<visual>
<!-- 形状 -->
<geometry>
<!-- 长方体的长宽高 -->
<!-- <box size="0.5 0.3 0.1" /> -->
<!-- 圆柱,半径和长度 -->
<!-- <cylinder radius="0.5" length="0.1" /> -->
<!-- 球体,半径-->
<!-- <sphere radius="0.3" /> -->
</geometry>
<!-- xyz坐标 rpy翻滚俯仰与偏航角度(3.14=180度 1.57=90度) -->
<origin xyz="0 0 0" rpy="0 0 0" />
<!-- 颜色: r=red g=green b=blue a=alpha -->
<material name="black">
<color rgba="0.7 0.5 0 0.5" />
</material>
</visual>
</link>
6.launch文件夹新建launch文件,并且写入:
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find 包名)/.urdf文件路径" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" />
</launch>
7.运行launch
source ./devel/setup.bash
roslaunch 包名 ###.launch
8.Rviz配置
a.点左下角Add,找到RobotModel选项,添加
b.Fixed Frame :map -> base_link
效果图:
9.Rviz保存优化
首先,将当前配置保存进config
目录
然后,launch
文件中 Rviz 的启动配置添加参数:args
,值设置为-d 配置文件路径
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find 包名)/.urdf文件路径" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find 包名)/config/.rviz文件路径" />
</launch>
再启动时,就可以包含之前的组件配置了,使用更方便快捷。