Rviz玩转三轴机械臂

2023-05-16

前言

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

这里写目录标题

    • 前言
  • 创建工作空间
  • 机械臂建模讲解
  • 机械臂URDF文件及launch文件
  • Rivz可视化显示

创建工作空间

在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去玩转机械臂了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rviz玩转三轴机械臂 的相关文章

随机推荐

  • STM32粗略延时,大致精确

    考虑到一些情况下 xff0c 无法使用系统定时或者定时器 xff0c 而进行的时间计算 STM32F1系列 xff0c 对于72Mhz来说 void my delay ms u32 ms 对于stm32f1系列 72mhz大致是1ms u1
  • linux下的串口配置

    经过验证是准确无误的 xff0c 配置以后可以通过以下指令查看 stty F dev ttyUSB0 a 查看 dev ttyUSB0的串口配置 stty F dev ttyUSB0 ispeed 115200 ospeed 115200
  • Leetcode 42 接雨水

    Leetcode42接雨水 题解1 xff1a 正反两扫 xff08 Simple and effect xff09 题解2 xff1a DP题解3 xff1a 单调栈 xff08 单调栈存储的是下标 xff0c 满足从栈底到栈顶的下标对应
  • 错误 Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build*

    安装Roboware Studio后 xff0c 为了支持Python调试功能 xff0c 需要先安装pylint 使用sudo python m pip install pylint命令产生报错 xff1a Command python
  • imu可视化和frame_id的查询

    得到imu的frame id rostopic echo topic grep frame id 得到imu的可视化 xff1a 下载源代码 xff1a 链接 https github com ccny ros pkg imu tools
  • catkin_make 与cmake

    http blog csdn net zyh821351004 article details 50388429 1 catkin make 与cmake的关系 程序在cmake编译的流程 xff1a cmake指令依据你的CMakeLis
  • 报错:ResourceNotFound: gazebo_ros

    Traceback most recent call last File 34 opt ros kinetic lib python2 7 dist packages roslaunch init py 34 line 306 in mai
  • ROS中的ROS_MASTER_URI环境变量解析

    ROS MASTER URI 61 http localhost 11311中的ROS MASTER URI是什么呢 xff1f URI是什么呢 xff1f 查阅百度百科可知 xff1a URI xff08 Uniform Resource
  • win10 cmd窗口中文乱码,永久解决方法(编码格式设置为UTF-8)

    转 xff1a https blog csdn net tfs411082561 article details 78416569 commentBox 1 临时修改 xff0c 只作用于当前打开的窗口 进入cmd窗口后 xff0c 直接执
  • C#获取文本框的任意行内容

    C 中 textbox Lines Length 可以获得文本框里文本的行数 xff1b 而textbox Lines i 代表文本框任意一行的内容 xff0c 所以获取文本框最后一行的方法为 xff1a span class token
  • add-apt-repository命令详解

    该命令是通过PPA源方式安装软件的添加PPA源到Source list中的命令 xff0c 该软件安装方式的流程为 xff1a 1 搜索PPA软件源 xff0c 如在Google上软件名称关键字 43 PPA xff0c 或者也可直接到 l
  • sw2urdf插件安装提示

    sw2urdf 1 6版本安装在solid works2012 2014 2016 2017 2020上会闪退 xff08 亲测 xff09 sw2urdf 1 5版本安装在solid works2017 2020上可以正常运行 xff08
  • ROS多机通信

    假设需要让电脑biowin和电脑biowin G3实现连接 xff0c 并以biowin G3为主机 1 让所有计算机需要通信处于同一网络 2 将局域网地址绑定到主机名上 所有需要通信的电脑在 etc hosts文件中 xff0c 添加需要
  • gazebo仿真中遇到的坑

    1 urdf中的关节无法加载到gazebo error This robot has a joint named joint 1 which is not in the gazebo model 原因 xff1a urdf的link标签下的
  • 2021-02-19

    This node presents a fast and precise method to estimate the planar motion of a lidar from consecutive range scans It is
  • 牛客网错题整理--C++篇4

    能够在字符串 aabaaabaaaab 中匹配 aab xff0c 而不能匹配 aaab 和 aaaab 34 的正则表达式包括 A a b B a 2 b C aa b D aaa b 正确答案 C 我的答案 B C 错误原因 xff1a
  • 动手学无人驾驶(6):基于IMU和GPS数据融合的自车定位

    在上一篇博文 动手学无人驾驶 xff08 5 xff09 xff1a 多传感器数据融合 介绍了如何使用Radar和LiDAR数据对自行车进行追踪 xff0c 这是对汽车外界运动物体进行定位 对于自动驾驶的汽车来说 xff0c 有时也需要对自
  • ubuntu内核版本5.4.0-92-generic 编译 4.15版本内核遇到报错 :PIC mode相关错误 【已解决】

    背景 xff1a 需要换个低版本内核来编译东西 因为高版本kernel拿来编译相对老的内核的时候 xff0c 有一些报错 xff0c 比如这个 PIC mode 的错误 xff0c 也许是新版本支持 老版本不支持的特性 xff0c 此处就暂
  • 进程切换与中断

    进程切换指从正在运行的进程中收回处理器 xff0c 让待运行进程来占有处理器运行 实质上就是被中断运行进程与待运行进程的上下文切换 进程切换必须在操作系统内核模式下完成 xff0c 这就需要模式切换 模式切换又称处理器切换 xff0c 即用
  • Rviz玩转三轴机械臂

    前言 最近想加深ROS仿真机械臂的理解 xff0c 所以笔者参考一些资料与博客 xff0c 在ROS下搭个简单的三轴机械臂 xff0c 在Rviz下实现各轴关节转动 xff0c 如果后续有时间的话 xff0c 可能会更新下Gazebo下仿真