ros学习之机器人构建以及rviz可视化机器人

环境:ubuntu20.04+ros noetic

在学习此知识前,需要大致掌握的知识如下:

1、ros相关的操作语句,例如构建工作区间,创建文件夹以及文件。

2、XML语言。

我也会详细介绍用ros来构建机器人的过程。下面是创建机器人的总体流程:

1. 创建机器人的CAD模型
2. 导出CAD模型为URDF文件
3. 根据需要,修改URDF文件
4. 建立launch启动文件

若自己没有CAD模型,可以先自己编写urdf文件来进行学习一下。

1、首先在自己的工作区间内新建一个ros软件包,我的工作区间是catkin_ws(相关文件的构建可以去维基中文版学习,见如下链接:cn/ROS/Tutorials - ROS Wiki)。

cd ~/catkin_ws/src
catkin_create_pkg ros_robotics

2、接着对这个软件包进行编译

cd(该命令回到始目录)

cd ~/catking_ws(进入工作区间)
catkin_make(进行编译)

此时在/catkin_ws/src目录中就会出现ros_robotics的文件夹,如下图所示:

 另外两个ros软件包是实现其他功能的包,其构建方法类似,修改下文件名即可。

在ros_roboics文件夹中有两个在编译后出现的.XML和.txt的文件,我们要在里面新建一个文件夹,命名可以改,因为本项目用的是urdf文件,所以我命名为urdf,如图所示:

 在urdf文件中新建一个.urdf文件(一定要先定位到该文件夹):

cd ~catkin_ws/src/ros_robotics/urdf

touch dd_robot.urdf

 然后可以看到文件中出现一个dd_robot.urdf文件

 双击打开.urdf文件,然后复制如下代码并保存:

<robot name="dd_robot">
<!-- Base Link -->
<link name="base_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.5 0.5 0.25"/>
</geometry>
</visual>
</link>

<!-- Right Wheel -->
<link name="right_wheel">
<visual>
<origin xyz="0 0 0" rpy="1.570795 0 0"/>
<geometry>
<cylinder length="0.1"
radius="0.2"/>
</geometry>
</visual>
</link>
<joint name="joint_right_wheel" type="continuous">
<parent link="base_link"/>
<child link="right_wheel"/>
<origin xyz="0 -0.30 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
</joint>
<!-- Left Wheel -->
<link name="left_wheel">
<visual>
<origin xyz="0 0 0"
rpy="1.570795 0 0"/>
<geometry>
<cylinder length="0.1"
radius="0.2"/>
</geometry>
</visual>
</link>
<joint name="joint_left_wheel"
type="continuous">
<parent link="base_link"/>
<child link="left_wheel"/>
<origin xyz="0 0.30 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
</joint>
</robot>

代码简略讲解:

首先要先明白几个概念,机器人的构建和人体结构一样,人体有臂和关节连接而成,机器人也有所谓的关节和杆。

link组件(连接杆组件),一个是joint组件(关节组件)。

link组件描述了刚体的物理学属性(包括维度,初始位置,颜色等)。link组件由joint组件连接。

joint组件描述了连接的运动学以及动态(包括连接的连接杆、关节类型、旋转轴、摩擦力和阻尼的合力等)

上述代码中,Base link部分构建了一个底座,然后right wheel和left wheel构建了左右轮。

3、完成上述操作后,我们需要一个.launch文件来将其在rviz中可视化,同理要先进到该文件的路径中:

cd ~catkin_ws/src/ros_robotics/urdf

touch ddrobot_rviz.launch

然后双击打开.launch文件,复制下面代码并保存:

<launch>
<arg name="model" />
<arg name="gui" default="False" />
<!-- set these parameters on Parameter Server -->
<param name="robot_description" textfile="$(find
ros_robotics)/urdf/$(arg model)" />
<param name="use_gui" value="$(arg gui)"/>
<!-- Start 3 nodes: joint_state_publisher,
robot_state_publisher and rviz -->
<node name="joint_state_publisher"
pkg="joint_state_publisher" type="joint_state_publisher" />
<node name="robot_state_publisher"
pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find
ros_robotics)/urdf.rviz" required="true" />
<!-- (required = "true") if rviz dies, entire roslaunch will be
killed -->
</launch>

4、打开终端,首先进入到工作区间内,然后source一下:

cd ~/catkin_ws

source devel/setup.bash

 

然后运行下方语句打开rviz:

roslaunch ros_robotics ddrobot_rviz.launch model:=dd_robot.urdf

可以看到打开的rviz界面,此时界面中是什么都没有的,因为还没倒入模型。

导入文件的步骤:
1、点Add按钮,找到并添加RobotModel
2、点Add按钮,找到并添加TF;
Global Options项下选择Fixed Frame,将 map 改为 base_link
若在退出时不保存 (文件名为urdf.rviz),则每次都要执行上面三个步骤。可以看到界面中出现:

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值