UR5-Melodic-moveit,使用C++操控

1.安装ROS

依照ROS.org的教程来

melodic/Installation/Ubuntu - ROS Wiki

2.ur5_moveit

github: https://github.com/ros-industrial/universal_robot

mkdir -p ~/UR5_ws/src
cd ~/UR5_ws/src
catkin_init_workspace
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git
cd ..
rosdep update
rosdep install --rosdistro melodic --ignore-src --from-paths src
catkin_make
source devel/setup.bash

3.对ur_modern_driver进行修改

cd ~/UR5_ws/src/universal_robot
rm -rf ur_driver
git clone https://github.com/ros-industrial/ur_modern_driver.git

用IDE打开ur_modern_driver中的ur_hardware_interface.cpp

将所有“controller_it->hardware_interface”替换成“controller_it->type”.

cd ~/UR5_ws
catkin_make

4.创建C++控制程序

在universal/ur_modern_driver/src下新建一个CPP文件,命名为ur_test.cpp,将下面代码写入CPP里

#include<moveit/move_group_interface/move_group_interface.h>
#include <moveit/planning_scene_interface/planning_scene_interface.h>
#include <moveit_msgs/DisplayRobotState.h>
#include <moveit_msgs/DisplayTrajectory.h>
#include <moveit_msgs/AttachedCollisionObject.h>
#include <moveit_msgs/CollisionObject.h>
#include <vector>
 
int main(int argc, char **argv)
{
    //初始化,其中ur_test为节点名
    ros::init(argc, argv, "ur_test");
    //多线程
    ros::AsyncSpinner spinner(1);
    //开启新的线程
    spinner.start();
 
    //初始化需要使用move group控制的机械臂中的arm group
    moveit::planning_interface::MoveGroupInterface arm("manipulator");
    
   //允许误差
    arm.setGoalJointTolerance(0.001);
   //允许的最大速度和加速度
    arm.setMaxAccelerationScalingFactor(0.2);
    arm.setMaxVelocityScalingFactor(0.2);
 
    // 控制机械臂先回到水平位置,这个位置下载的文件中已经设置好了
    arm.setNamedTarget("home");
    arm.move();
    sleep(1);
 
    //控制机械臂到达竖直位置,这个位置下载的文件中也设置好了
    arm.setNamedTarget("up");
    arm.move();
    sleep(1);
 
 
    // 控制机械臂先回到初始化位置
    arm.setNamedTarget("home");
    arm.move();
    sleep(1);
 
    ros::shutdown();
 
    return 0;
}


Warnning:以上代码是我从其他文章复制的,效果是将机械臂水平放置,如果有干涉,请修改代码。也可以参考《ROS机器人开发实践》胡春旭  P325  "Moveit!编程学习" 编写python代码


然后打开ur_modern_driver文件的CMakelists.txt.

在19行,就是find_package()里的tf下面,添加

rospy
moveit_msgs
moveit_ros_perception
moveit_ros_planning_interface

178行添加

add_executable(ur_test src/ur_test.cpp)
target_link_libraries(ur_test ${catkin_LIBRARIES})

189行添加

intstall(TARGETS ur_driver ur_hardware_interface ur_test

重新编译工作空间

cd ~/UR5_ws
catkin_make

5.以太网修改

5.1设置PC以太网设置

右上角加号:

设置内容,其中PC的地址为172.22.22.1,而UR5设置的地址是172.22.22.2。前面三个需要相同,使其保持在同一个局域网内,最后一位按照自己情况修改,不能PC和UR5同一地址。

 

5.2测试连接

检测电脑和UR5机械臂网络是否连接成功

ifconfig

 测试连接情况

ping 172.22.22.2

time比较小就代表连接好了

6.运行

cd ~/UR5_ws
roscore

#新终端
source devel/setup.bash
roslaunch ur_modern_driver ur5_bringup.launch limited:=true robot_ip:=172.22.22.2 use_lowbandwidth_trajectory_follower:=true

#新终端
source devel/setup.bash
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true

#新终端
source devel/setup.bash
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

#新终端
source devel/setup.bash
rosrun ur_modern_driver ur_test

感谢:作者:I LYXQ-V M      编程芝士  《ROS机器人开发实践》胡春旭

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值