通过手柄实现控制机械臂运动

发布时间 2024-01-09 11:18:52作者: Alvin_429

实验前期准备

1.通讯方式

机械臂网口连接NX开发板网口,将手柄的接收器插到开发板的接口上 ,配置好NX的基础功能,之后替换catkin功能包

 将U盘导入的catkin功能包解压,删除原有的catkin文件,将解压后的catkin文件粘贴到home目录下,粘贴完成后输入编译指令,注意解压后的catkin_ws(2)文件内部还有一个catkin_ws文件,要把这个文件复制到主目录中。

cd ~/catkin_ws
catkin build

2 安装游戏手柄驱动

1安装手柄驱动:

sudo apt-get install ros-melodic-joy
sudo apt-get install joystick

2查看手柄串口号

ls -l /dev/input/js0

返回信息:

3测试手柄信号

sudo jstest /dev/input/js0

通过按移动手柄上各个按键会有对应的值变化4运行ROS节点

rosrun joy joy_node

5查看手柄发出的信号

按几下手柄,看看输出的信号对不对

3 ROS节点开机自启动

一、安装 robot-upstart

打开终端,执行以下命令,安装 robot-upstart。

sudo apt-get install ros-melodic-robot-upstart

若出现报错可能是未进行更新需要执行以下命令在进行安装

sudo apt-get update

二、添加自启动任务

3.1 启动ros核心节点

由于 robot_upstart 是 ROS 节点,启动前需要先开启 roscore。

  • cd ~/catkin ws
  • source devel/setup.bash
  • roscore

3.2 装载自启动launch文件

打开一个新终端,运行以下命令,装载自启动文件。

cd ~/catkin  ws
source devel/setup.bash
rosrun robot_upstart install rm_65_demo/launch/start_joy.launch --job joy_robot --logdir 
~/joy_robot.log

3.3 启动任务

在终端运行以下命令,启动任务。

sudo systemctl daemon-reload && sudo systemctl start joy_robot

三、测试

(1)关闭机械臂与NX

(2)重启机械臂

(3)待机械臂启动成功后,启动NX

(4)测试手柄控制机械臂

(5)若无法正常控制机械臂,需重启NX

注: NX启动之前,必须确保机械臂已完成正常启动

四、手柄控制机械臂方法

首先,手柄上方中间的开关拨到靠右边;

然后,如果手柄长时间无操作会进入休眠状态,需要先按几下A键唤醒;

1. 手柄控制机械臂:

1) 按键X,Y,B,A,LB,RB分别代表关节1~6

2) 按键X,Y,B分别代表位置示教的X,Y,Z方向

3) 方向键左和右代表关节示教时的正向和负向

4) 方向键上和下代表位置示教时的正向和负向

5) 代表关节的按键和方向键左或右同时按下时,相应关节开始关节示教运动,其中一个键松开或都松开后停止示教

6) 代表位置示教的X,Y,Z方向的一个按键和方向键上或下同时按下时,机械臂开始沿对应方向位置示教运动,其中一个键松开或都松开后停止示教;

2. 手柄控制升降:

1) "X"和"B"都松开时,只控制摇杆A上下使用默认速度控制;

2) "X"按下且"B"松开时,同时控制摇杆A上下使用快速模式控制;

3) "X"松开且"B"按下时,同时控制摇杆A上下使用慢速模式控制;

五、常见问题

1.通讯问题

(1)机械臂默认IP为192.168.1.18,需要做到与NX开发板通讯,需要将NX的IP修改至和机械臂为同一网段如:192.168.1.11

(2)修改完成后在终端ping192.168.1.18判断是否修改成功

2.Catkin_ws编译不通过

错误信息

解决方法:

(1)单独先编译rm_msgs

(2)使用catkin_build会自动优化过程 不建议使用catkin_make

参考链接:

https://blog.csdn.net/benchuspx/article/details/113847854

3.装载自启动launch时,没有找到这个start joy.launch

文件下没有找到对应的launch文件

在和catkin_ws同级目录下的手柄控制程序开机自启动压缩包下面,找到launch文件后,直接复制到对应的文件夹下。