本文档主要捋清楚机械臂控制包的建立过程,不涉及具体的代码,按照流程的话,代码基本都是自动生成的
1.说明
Moveit是ROS软件的机械臂控制的功能包,如果想进行机械臂的运动规划的话,肯定是必不可少的;
ArbotiX可以认为是一个机械臂硬件的驱动包,同时本身还带有机械臂的仿真功能。
我的理解是,如果想实现通过代码的控制机械臂的话(正向运动学,控制个轴节点,逆向运动学,通过终端位置控制)目前ArbotiX是一个很好的选择。
两者的关系基本情况就是这样。
2.该环境的搭建可以分成三个包
(1)通过solidworks导出的机械臂模型的包:arm
也可以自己编写xacro文件,不过这里采用的是solidwords导入,具体方法可以自己网上搜;
需要注意一点,生成包的时候需要改名字为arm,如果不修改,导出的包的名字与solidwoks的工程名相同,后期想手动修改也可以(要把CMakeLists.txt package.xml还有urdf文件里的名字统统替换掉)
(2)通过setup-assistant配置的moveit的功能包,arm_moveit
(3)运动规划包,arm_planning
下面自己建立的一些文件会放置在这个包中
3.搭建步骤
(1)在通过setup-assistant配置好arm_moveit包后,可以通过如下命令进行验证
roslaunch arm_moveit demo.launch
如果弹出的窗口出现机械臂模型,说明成功;
(2)添加arbotix关节控制器
首先在arm/config中新建arm.yaml文件
joints: {
joint1: {id: 1, neutral: 205, max_angle: 269.6, min_angle: -269.6, max_speed: 90},
joint2: {id: 2, max_angle: 180, min_angle: -180.0, max_speed: 90},
joint3: {id: 3, max_angle: 180, min_angle: -180.0, max_speed: 90},
joint4: {id: 4, max_angle: 180, min_angle: -180.0, max_speed: 90},
joint5: {id: 5, max_angle: 180, min_angle: -180.0, max_speed: 90},
joint6: {id: 6, max_angle: 180, min_angle: -180.0, max_speed: 90},
}
controllers: {
arm_controller: {type: follow_controller, joints: [joint1, joint2, joint3,joint4, joint5, joint6], action_name: arm_controller/follow_joint_trajectory, onboard: False }
}
然后在arm_planning/launch中创建fake_arm.launch文件
<launch>
<!-- 不使用仿真时间 -->
<param
name="/use_sim_time"
value="false" />
<!--arg
name="gui"
default="False" /-->
<!-- 启动arbotix driver-->
<arg
name="sim"
default="true" />
<param
name="robot_description"
textfile="$(find arm)/urdf/inffos_arm.urdf" /> /////调用的生成的urdf文件
<node
name="arbotix"
pkg="arbotix_python"
type="arbotix_driver"
output="screen" >
<rosparam
file="$(find arm)/config/arm.yaml" command="load" /> /////调用的刚才新建的arm.yaml
<param
name="sim"
value="true"/>
</node>
<node
name="joint_state_publisher"
pkg="joint_state_publisher"
type="joint_state_publisher" />
<node
pkg="robot_state_publisher"
type="robot_state_publisher"
name="rob_st_pub" />
<!-- 启动rviz -->
<node
name="rviz"
pkg="rviz"
type="rviz"

本文详述了在ROS环境中使用Moveit和ArbotiX进行机械臂控制及运动规划的方法,包括模型建立、关节控制、正逆向运动学应用等关键步骤。
最低0.47元/天 解锁文章
3801

被折叠的 条评论
为什么被折叠?



