Rviz玩转三轴机械臂

1 篇文章 1 订阅
1 篇文章 0 订阅

前言

最近想加深ROS仿真机械臂的理解,所以笔者参考一些资料与博客,在ROS下搭个简单的三轴机械臂,在Rviz下实现各轴关节转动,如果后续有时间的话,可能会更新下Gazebo下仿真,如果时间不够的话,大家也可以看我之前配置ur10e配置夹爪及Gazebo仿真,上面有详细的配置过程。

创建工作空间

在ROS下创建一个叫my_robot的工作空间

mkdir my_robot
cd my_robot
mkdir src
cd src
catkin_create_pkg three_axis_robot roscpp rospy urdf
cd ~/my_robot
catkin_make
echo "source ~/my_robot/devel/setup.bash" >> ~/.bashrc
source devel/setup.bash

机械臂建模讲解

机械臂的模型如下图所示

在这里插入图片描述

从图上可以看到机械臂有4个连杆和3个关节,每个关节连接一个父节点和一个子节点。
在这里插入图片描述
然后,确定机械臂的位置与偏移信息,位置采用的都是相对偏移量。其中关节有不同的类型,这里关节0为固定关节(fixed),关节1、2均为无限位旋转关节(continuous)。
在这里插入图片描述

机械臂URDF文件及launch文件

cd three_axis_robot/
mkdir urdf

在three_axis_robot文件夹下创建一个robot.urdf文件

<robot name="robot">
	<link name="base">
		<visual>
		  <geometry>
			<box size="2 2 2"/>
		  </geometry>
		  <origin rpy="0 0 0" xyz="0 0 1"/>
		</visual>
	</link>
	<link name="link1">
		<visual>
		  <geometry>
			<box size="0.5 0.5 3"/>
		  </geometry>
		  <origin rpy="0 0 0" xyz="0 0 1.5"/>
		</visual>
	</link>
	<link name="link2">
		<visual>
		  <geometry>
			<box size="0.5 0.5 3"/>
		  </geometry>
		  <origin rpy="0 0 0" xyz="0 0 1.5"/>
		</visual>
	</link>
	<link name="link3">
		<visual>
		  <geometry>
			<box size="0.5 0.5 3"/>
		  </geometry>
		  <origin rpy="0 0 0" xyz="0 0 1.5"/>
		</visual>
	</link>
	<joint name="joint0" type="continuous">
		<parent link="base"/>
		<child link="link1"/>
		<origin rpy="0 0 0" xyz="0 0 2"/>
		<axis xyz="1 0 0" />
	</joint>
	<joint name="joint1" type="continuous">
		<parent link="link1"/>
		<child link="link2"/>
		<origin rpy="0 0 0" xyz="0 0 3"/>
		<axis xyz="1 0 0" />
	</joint>	
	<joint name="joint2" type="continuous">
		<parent link="link2"/>
		<child link="link3"/>
		<origin rpy="0 0 0" xyz="0 0 3"/>
		<axis xyz="1 0 0" />
	</joint>
</robot>

为了能使模型在Rviz界面下显示,所以需要一个启动Rviz文件,创建一个名为launch的文件。在launch文件夹下新建robot.launch文件。这将启动joint_state_publisher和robot_state_publisher节点。joint_state_publisher节点将发布所有的联合状态。它有gui界面,您可以更改每个关节角度。robot_state_publisher节点将以机器人的关节角度为输入,发布各个连杆的三维姿态,代码如下。

<launch>  
    <arg name="model" />  
    <param name="robot_description" textfile="$(find three_axis_robot)/urdf/robot.urdf" />  
    <param name="use_gui" value="true"/>
    <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 three_axis_robot)/urdf/rviz.rviz" required="true" />
</launch>

Rivz可视化显示

现在,做好上面的工作后,你再一次编译下工作空间,然后用下列指令启动界面

roslaunch three_axis_robot robot.launch

启动后,你会发现有报错,显示内容如下,且关节控制器GUi并不能控制机械臂运动。
在这里插入图片描述
别慌,关闭Rviz界面,点击保存该界面,然后你会看到生成一个rviz.rviz的文件,我们只需要修改下这个文件里的内容就行
在这里插入图片描述修改内容如下
在这里插入图片描述
改为Class: rviz/RobotModel,下面还有一处也要改Class类别。

在这里插入图片描述
然后继续启动launch文件

roslaunch three_axis_robot robot.launch

这样就可以加载机械臂的模型,并且操控关节控制器Gui去玩转机械臂了。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值