【睿尔曼-RealMan】通过手柄实现控制机械臂运动
Forrest 2024-01-02
实验设备:
睿尔曼RM65-B机械臂 罗技F710手柄 英伟达Jetson Xavier NX开发板
实验前期准备
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文件后,直接复制到对应的文件夹下。
撰写评论