typora-root-url |
---|
./image |
English version of the README -> please click here
Dobot TCP-IP-ROS-6AXis 二次开发api接口 ( TCP-IP-Python-V3 Public README )
TCP-IP-ROS-6AXis 是为 Dobot 公司旗下基于TCP/IP协议的ROS的封装设计的软件开发套件。它基于 ROS/C++ 语言开发,遵循Dobot-TCP-IP控制通信协议,通过socket与机器终端进行Tcp连接, 并为用户提供了易用的api接口。通过 TCP-IP-ROS-6AXis,用户可以快速地连接Dobot机器并进行二次开发对机器的控制与使用。
-
电脑可用网线连接控制器的网口,然后设置固定 IP,与控制器 IP 在同一网段下。也可无线连接控制器。
有线连接时连接LAN1:ip为192.168.5.1, 有线连接时连接LAN2:ip为192.168.100.1, 无线连接:ip为192.168.1.6
-
尝试 ping 通控制器 IP,确保在同一网段下。
-
此API接口与Demo适用于Ubuntu-ROS1环境,以下是Ubuntu版本对应ROS1版本:
*在 Ubuntu 16.04 上安装 ROS1
*在 Ubuntu 18.04 上安装 ROS1
*Ubuntu 20.04 上安装 ROS1
-
此API接口与Demo适用于V3系列的3.5.5.0及以上控制器版本
版本 | 修改日期 |
---|---|
v1.0.0.0 | 2023-11-20 |
在使用过程中如遇问题或者一些建议, 您可以通过以下方式获取Dobot的技术支持 :
- 发送邮件到 [email protected] ,详细描述您遇到的问题和使用场景
由于基于TCP/IP的通讯具有成本低、可靠性高、实用性强、性能高等特点;许多工业自动化项目对支持TCP/IP协议控制机器人需求广泛,因此 CR-V3 机器人将设计在TCP/IP协议的基础上,提供了丰富的接口用于与外部设备的交互;有关协议更详细的信息请查阅**《越疆TCPIP控制协议文档6AXis》**
-
从GitHub 下载或者克隆Dobot TCP-IP-ROS-6AXis 二次开发api程序
`git clone https://github.com/Dobot-Arm/TCP-IP-ROS-6AXis.git
-
参考对应的 README-V3.m 文档使用;
文件 | 功能说明 |
---|---|
dobot_bringup | V3版本机器通信节点,负责与机器通信。 |
dobot_v4_bringup | V4版本机器通信节点,负责与机器通信。 |
dobot_gazebo | 机器仿真相关 |
rviz_dobot_control | Rviz相关 |
dobot_description | URDF模型 |
dobot_moveit | 统一启动不同机型的moveit |
cr3_moveit | CR3机型moveit |
cr5_moveit | CR5机型moveit |
cr10_moveit | CR10机型moveit |
cr16_moveit | CR10机型moveit |
me6_moveit | E6机型moveit |
nova2_moveit | Nova2机型moveit |
nova5_moveit | Nova5机型moveit |
rosdemo_v3 | V3版本机器运行示例-demo |
README-V3 | V3自述文件 |
README-V4 | V4自述文件 |
README-V3-EN | V3自述文件-英文版 |
README-V4-EN | V4自述文件-英文版 |
cd $HOME/catkin_ws/src
git clone https://github.com/Dobot-Arm/TCP-IP-ROS-6AXis.git
cd $HOME/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
echo "export DOBOT_TYPE=cr3" >> ~/.bashrc
source ~/.bashrc
echo "export DOBOT_TYPE=cr5" >> ~/.bashrc
source ~/.bashrc
echo "export DOBOT_TYPE=cr10" >> ~/.bashrc
source ~/.bashrc
echo "export DOBOT_TYPE=cr16" >> ~/.bashrc
source ~/.bashrc
roslaunch dobot_description display.launch
可通过 joint_state_publisher_gui 调节各关节的角度,在 rviz 上看到其显示效果
- 使用如下命令启动 moveit
roslaunch dobot_moveit demo.launch
- 鼠标将关节拖到任意的角度,点击 "Plan and Execute" 即可看到运行效果
如运行环境是Ubuntu16- ros-Kinetic及以下版本,替换demo.launch文件
<?xml version="1.0"?>
<!--
Usage:
roslaunch cr5_bringup cr5_bringup.launch robot_ip:=<value>
-->
<launch>
<arg name="DOBOT_TYPE" default="$(env DOBOT_TYPE)" />
<!-- export DOBOT_MOVEIT_PARENT_PATH=$(dirname $(rospack find dobot_moveit)) -->
<arg name="Dobot_parent_path" value="$(env DOBOT_MOVEIT_PARENT_PATH)" />
<arg name="Dobot_path" default="$(env DOBOT_TYPE)_moveit" />
<arg name="Target_path" value="$(arg Dobot_parent_path)/$(arg Dobot_path)/launch" />
<include file="$(arg Target_path)/demo.launch"/>
</launch>
- 然后执行以下指令
source ~/.bashrc
source $HOME/catkin_ws/devel/setup.bash
export DOBOT_MOVEIT_PARENT_PATH=$(dirname $(rospack find dobot_moveit))
roslaunch dobot_moveit demo.launch
- 如遇报错,请检查上述指令是否执行漏执行或者执行错误。
- 使用如下命令启动 gazebo
roslaunch dobot_gazebo gazebo.launch
- 同样,您可以使用MoveIt!控制gazebo里的仿真机器人
- 设置MoveIt!允许运动规划运行的节点,dobot类型需要对应
roslaunch dobot_moveit moveit.launch
- 鼠标将关节拖到任意的角度,点击 "Plan and Execute" 即可看到运行效果
仿真异常处理方法:
- 安装 ros-control ros-controller依赖
sudo apt-get install ros-$ROS_DISTRO-ros-control ros-$ROS_DISTRO-ros-controllers
- 节点启动顺序: 先启动gazebo ,后启动moveit。
-
使用如下命令连接机械臂, robot_ip 为实际机械臂所对应的IP地址
roslaunch dobot_bringup bringup.launch robot_ip:=192.168.5.1
-
使用如下命令启动 Moveit
roslaunch dobot_moveit moveit.launch
如运行环境是Ubuntu16 Ros-Kinetic及以下版本,替换moveit.launch文件内容
<?xml version="1.0"?>
<!--
Usage:
roslaunch cr5_bringup cr5_bringup.launch robot_ip:=<value>
-->
<launch>
<arg name="DOBOT_TYPE" default="$(env DOBOT_TYPE)" />
<!-- export DOBOT_MOVEIT_PARENT_PATH=$(dirname $(rospack find dobot_moveit)) -->
<arg name="Dobot_parent_path" value="$(env DOBOT_MOVEIT_PARENT_PATH)" />
<arg name="Dobot_path" default="$(env DOBOT_TYPE)_moveit" />
<arg name="Target_path" value="$(arg Dobot_parent_path)/$(arg Dobot_path)/launch" />
<include file="$(arg Target_path)/$(arg Dobot_path).launch"/>
</launch>
- 然后执行以下指令
source ~/.bashrc
source $HOME/catkin_ws/devel/setup.bash
export DOBOT_MOVEIT_PARENT_PATH=$(dirname $(rospack find dobot_moveit))
roslaunch dobot_moveit moveit.launch
-
如遇报错,请检查上述指令是否执行漏执行或者执行错误。
-
修改rviz_dobot_control文件目录下 robot_type.json文件内容,把robotType字段改为V3(默认为V3)
{
"robotType": "v3"
}
-
在 rviz 中添加 DobotControl 插件控制面板,用来 使能机械臂
- 点击 rviz 工具栏上的 Panels --> "Add New Panel"
- 选中 DobotControl, 再点击 “OK”
- 点击 “EnableRobot” 使机械臂
- 当状态样上显示 “Enable” “Connected” 表示机械臂已连接和使能,即可通过 Moveit 控制机械臂
dobot_bringup 中定义了 msg 和 srv,用户可通过这些底层 msg 和 srv 实现对机械臂的控制
问题一: Tcp连接 29999/30003端口无法连接或者连接后无法下发指令
解决方法: 如控制器版本是3.5.6.0版本以下,可尝试升级控制器为3.5.6.1版本及以上版本。 如机器已经是3.5.6.1版本及以上,可将问题现象和操作反馈给技术支持
问题二: Tcp连接过程中 29999控制端口能发送指令,30003运动端口发送不了指令
解决方法: 运动队列被堵塞,尝试用29999端口下发clearerror()和 continue()指令来重新开启队列,3.5.7.0以上版本支持continue指令。
问题三:怎么判断机器运动指令是否到位
解决方法: 可通过下发sync指令来判断机器运动指令是否到位
可通过对比目标点位笛卡尔坐标值和机器实际笛卡尔坐标值来判断是否到位
可通过对比目标关节坐标值和机器实际关节坐标值来判断是否到位
- Dobot-Demo 实现Tcp对机器的控制等交互,分别对控制端口,运动端口,反馈端口进行tcp连接,通过机器运动指令完成状态来进行下发指令,且对机器异常状态进行处理等功能。
- 主线程:分别对机器控制端口,运动端口,反馈端口进行连接。给机器使能,MovL移动指令等动作
- 反馈状态线程:实时反馈机器的状态信息
- 机器运动线程: 给机器下发运动指令
- 异常处理线程:对机器异常状态进行判断和处理动作
Demo运行的操作步骤时序如下图所示 :
-
从GitHub 获取越疆Dobot TCP-IP-ROS-6AXis 二次开发Api程序
`git clone https://github.com/Dobot-Arm/TCP-IP-ROS-6AXis.git
-
通过LAN1网口-连接机器端,设置本机机器IP地址为192.168.5.X 网段
控制面板>>网络>> Internet>>网络连接
选择连接的以太网 >> 点击右键 >> 属性 >> Internet协议版本(TCP/IPV4)
修改ip地址为192.168.5.X网段IP
-
连接上位机DobotStudio Pro,连接机器,把机器模式切换至TCP/IP模式
下载源码 cd $HOME/catkin_ws/src git clone https://github.com/Dobot-Arm/TCP-IP-ROS-6AXis.git cd $HOME/catkin_ws 编译 catkin_make 设置环境变量 source $HOME/catkin_ws/devel/setup.bash 导入机型 echo "export DOBOT_TYPE=cr3" >> ~/.bashrc source ~/.bashrc
启动节点
roslaunch dobot_bringup bringup.launch
新建终端
cd $HOME/catkin_ws/src
source ~/.bashrc
source $HOME/catkin_ws/devel/setup.bash
启动demo
roslaunch rosdemo_v3 democr_v3.launch
运行示例前请确保机器处于安全位置,防止机器发生不必要的碰撞