@小鱼 嗯嗯,为将系统的share里面功能包删除后就不会出问题了,然后用第一种方法完成了,效果来看目前没有问题
重要提示
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
空白 发布的最佳帖子
-
ABB机器人与ROS2联调(文本教程)(ABB-ROS2-Moveit)
在这段时间因为导师要求需要实现ABB与机器人的联调(动力学与运动学都需要,但是感觉gazebo实现还有点困难,暂时先尝试了moveit方向)。
目前来说全部联调过程均参考了网上方案,所以只是给如果同样需要使用ABB机器人与ROS联调的朋友们提供一个简单的方向,代码以及细节不一一讲解(目前我自己也没有完全搞明白)
首先尝试的是ROS1版本的melodic与abb联调,这个可以参考网络上现有的中文教程,在此提供我参考的几个教程链接(不能完全按照上面的方法,可能有一点细节需要改动)https://blog.csdn.net/zhangrelay/article/details/52687545 https://blog.csdn.net/qq_31393391/article/details/107433289?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-107433289-blog-52381597.pc_relevant_recovery_v2&spm=1001.2101.3001.4242.1&utm_relevant_index=3 https://blog.csdn.net/u014697321/article/details/106434289#comments_12532558
实现ROS1与ABB联调后,主要由于这段时间学的ros2(感觉ros2的结构和代码更加清晰,ros1没有学明白),并且melodic在之后不会再更新,同时参考网上ABB机器人闭环控制的要求需要EGM(如下图),故考虑实现ROS2与ABB机器人的联调。
在搜索的过程中,发现有大佬已经完成了ROS2与ABB的联调过程,目前更新版本为rolling,但是与我使用的humble尝试后没有区别,链接如下:
https://github.com/PickNikRobotics/abb_ros2
详细操作步骤可以完全按照Getting Started中所描述的进行。
对此简单复述下(没有明白的话可以直接去github上面仔细看)
第一步先下载源代码并编译安装,整个过程无任何问题(和常规的源码安装一样,下载后VCS安装其他功能包,然后rosdep check 一下需要的依赖,最后用小鱼的rosdepc install就行,rolling与humble版本无影响)安装时有个需要注意的地方,前提条件是已经安装了moveit,针对源码安装moveit出现的问题我在下面链接中有提到,二进制安装不会出现缺少moveit环境的问题
https://fishros.org.cn/forum/topic/763/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8roslaunch-%E8%B0%83%E7%94%A8%E4%B8%8D%E5%90%8C%E5%B7%A5%E4%BD%9C%E7%A9%BA%E9%97%B4%E7%9A%84%E5%8A%9F%E8%83%BD%E5%8C%85/18?_=1668264938770
之后尝试moveit仿真应该不会出现问题,接下来就是进行ABB配置与ROS2配置
将下载好的rspag文件解压后(robotstudio目前尝试了6.08版本不行,下载的2022版本)主要修改ROB_1中Remote Address即可,其他部分一般不会出问题,如果RWS端口不确定也可以参考github上面提供的方法查找,目前测试过方法无问题。
同理在ROS2的robot description file中我们可以看到启动节点完成RWS通讯还需要知道rws_port与rws_ip,默认rws_port为80,rws_ip为电脑ip地址(注意不是虚拟示教器的127.0.0.1!)
上述配置好后可以先启动ABB程序(移至main后点播放一样的按钮即可,然后会提示等待连接),再启动ros2 launch文件,如下
ros2 launch abb_bringup abb_control.launch.py description_package:=abb_irb1200_support description_file:=irb1200_5_90.xacro launch_rviz:=false moveit_config_package:=abb_irb1200_5_90_moveit_config use_fake_hardware:=false rws_ip:=192.168.123.77 rws_port:=80
其中rws_ip 改为自己电脑ip即可
之后再启动rviz和gazebo,这个也可以直接调用写好的roslaunch文件ros2 launch abb_bringup abb_moveit.launch.py robot_xacro_file:=irb1200_5_90.xacro support_package:=abb_irb1200_support moveit_config_package:=abb_irb1200_5_90_moveit_config moveit_config_file:=abb_irb1200_5_90.srdf.xacro
之后就可以尝试ABB与rviz之间是否真正通讯,moveit随机生成一个目标位置并执行,可以看到ABB可视化界面中机械臂跟随运动,对此完成ABB机器人与ROS2的联调过程。
由于我目前还才完成联调过程,后面会使用代码实现目标点和其他要求的自动动作,并且尝试实现闭环控制(ROS1中不能实现闭环控制),后续过程也会和大家一起努力。
-
RE: 机械臂代码一直卡在(move_group.plan(my_plan)部分
@小鱼 在 机械臂代码一直卡在(move_group.plan(my_plan)部分 中说:
去掉肯定是不行的,试试多线程执行器,原来的估计是跨线程通信造成死锁问题了
好的,谢谢小鱼,这个问题基本上解决了,后面就是去github上面多找找代码学习和练手
-
RE: 运行自己编写的代码时出现Could not find parameter robot_description_semantic and did……问题
@小鱼 最终解决了,思路还是在publish部分设置为true就可以,后面的报错和问题无关,其实是在尝试的过程中修改了太多文件乱了,重新回档后修改了launch的参数即可。谢谢小鱼了