因时机器人-灵巧手配置方案–ROS Melodic
因时机器人-灵巧手配置方案--ROS Melodic

1.安装ROS Melodic(仅首次配置需要)
(1)配置Ubuntu的资源库(系统设置->软件和更新):“restricted”,“universe"和"multiverse”。
(2)设置Ubuntu的sources.list:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
(3)向系统设置秘钥:# 所有rosservice如下:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
(4)安装:
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
(5)初始化 rosdep:
sudo rosdep init
rosdep update
(6)配置环境变量:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
(7)安装build依赖:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
2.创建编译灵巧手工作目录
(1)创建工作目录:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
(2)将inspire_hand.zip解压后,获得inspire_gripper文件夹,放到catkin_w/src文件夹下
(3)安装所需依赖:
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
(4)重新编译:
catkin_make
3.连接灵巧手并测试
(1)将灵巧手与电脑连接,查看串口名称:
# 一般会连接ttyUSB0、ttyUSB1或ttyUSB2等,看下面命令显示哪个串口检测到连接
dmesg|grep tty*
(2)对端口进行权限设置:
- 临时方案(每次使用都需要设置):
# 表示上一步识别出的串口号
sudo chmod a+rw /dev/ttyUSB*
- 永久方案:
sudo vim -p /etc/udev/rules.d/70-ttyUSB.rules
# 在打开的文件中输入,注意KERNEL=="ttyUSB*",这里的*不是串口号就是“*”:
KERNEL=="ttyUSB*", OWNER="root", GROUP="root", MODE="0666"
# 重启电脑生效
(3)启动灵巧手程序:
# 默认串口名称为ttyUSB0,如果串口名称是默认的ttyUSB0:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch test_flag:=1
# 如果串口名称非默认的ttyUSB0:
cd ~/catkin_ws
source devel/setup.bash
roslaunch inspire_hand hand_control.launch port:=/dev/ttyUSB* test_flag:=1(*是串口号)
(4)launch启动成功后打开新终端,执行:
cd ~/catkin_ws
source devel/setup.bash
查看启动的rosservice:
rosservice list
根据启动的rosservice执行相应操作:
# 设置六个驱动器位置------参数pos范围0-2000
rosservice call /inspire_hand/set_pos pos1 pos2 pos3 pos4 pos5 pos6
# 设置灵巧手角度------参数angle范围-1-1000
rosservice call /inspire_hand/set_angle angle1 angle2 angle3 angle4 angle5 angle6
# 设置力控阈值------参数force范围0-1000
rosservice call /inspire_hand/set_force force1 force2 force3 force4 force5 force6
# 设置速度------参数speed范围0-1000
rosservice call /inspire_hand/set_speed speed1 speed2 speed3 speed4 speed5 speed6
# 读取驱动器实际的位置值
rosservice call /inspire_hand/get_pos_act
# 读取实际的角度值
rosservice call /inspire_hand/get_angle_act
# 读取实际的受力
rosservice call /inspire_hand/get_force_act
# 读取驱动器设置的位置值
rosservice call /inspire_hand/get_pos_set
# 读取设置的角度值
rosservice call /inspire_hand/get_angle_set
# 读取设置的力控阈值
rosservice call /inspire_hand/get_force_set
# 读取故障信息
rosservice call /inspire_hand/get_error
# 读取状态信息
rosservice call /inspire_hand/get_status
# 读取温度信息
rosservice call /inspire_hand/get_temp
# 读取电流
rosservice call /inspire_hand/get_current
# 清除错误
rosservice call /inspire_hand/set_clear_error
# 设置上电速度------参数speedk范围0-1000
rosservice call /inspire_hand/set_default_speed speed1 speed2 speed3 speed4 speed5 speed6
# 设置上电力控阈值------参数forcek范围0-1000
rosservice call /inspire_hand/set_default_force force1 force2 force3 force4 force5 force6
# 保存参数到FLASH
rosservice call /inspire_hand/set_save_flash
# 校准力传感器
rosservice call /inspire_hand/set_force_clb
可以采用下面指令实时监控灵巧手的实际角度和力
需要重新打开一个新的终端,并执行终端指令:
cd ~/catkin_ws
source devel/setup.bash
rosrun inspire_hand handcontroltopicpublisher
需要重新打开一个新的终端,并执行终端指令:
cd ~/catkin_ws
source devel/setup.bash
rosrun inspire_hand handcontroltopicsubscriber