Navigation

    蓝鲸ROS机器人论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    小强ROS机器人教程(22)_操作6自由度机械臂

    产品服务
    10
    50
    68829
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • xiaoqiang
      xiaoqiang last edited by xiaoqiang

      小强主页

      6自由度机械臂的资料在这个百度云盘链接里:http://pan.baidu.com/s/1nuBpDaD 请仔细阅读二次开发部分的串口通信协议、虽然下文使用的是usb hid通信方式,但命令格式是一样

      下文将操作6自由度机械臂完成主控板上存储的3组动作。

      控制原理: 小车主机使用usb连接机械臂主控板,用户发送名为robot_arm/cmdstring的topic,这个topic内容为控制命令,最后由robot_arm节点负责将这个topic内容经由usb hid协议发送给机械臂主控板。

      1.运行robot_arm节点

      rosrun robot_arm move.py
      #robot_arm包代码在这里 http://git.bwbot.org/publish/robot_arm
      

      启动正常,机械臂会执行动作0(默认状态),同时命令窗口会显示如下内容

      xiaoqiang@xiaoqiang-desktop:~/Documents/ros$ rosrun robot_arm move.py 
      Opening robot arm device
      Manufacturer: MyUSB_HID
      Product: LOBOT
      Serial No: 8D9823654852
      Run the zero group action
      
      
      

      2.构造robot_arm/cmdstring topic

      robot_arm/cmdstring 这个topic 类型是std_msgs.msg中的String 即字符串。根据上文提供的机械臂二次开发资料,我们可以知道6自由度的控制协议是由一个无符号byte数组表示,因此我们在这里稍加改造,直接将这个数组的hex值变成字符串打包成topic命令。变换方式是采用python的byte array表示方式,将数组中每个元素的hex编码串在一起,然后将其中的0x换成\x。

      例如: [0x55,0x55,0x05,0x06,0x00,0x01,0x00] 这个控制命令数组,转换成robot_arm/cmdstring 内容是,'\x55\x55\x05\x06\x00\x01\x00'
      小技巧:看不懂的话,还可以用python的map函数帮忙转换,找规律。list(map(ord,'\x55\x55\x05\x06\x00\x01\x00'))
          
      

      我们要控制机械臂完成3个动作,这三个字符串内容如下

      '\x55\x55\x05\x06\x00\x01\x00'
      
      '\x55\x55\x05\x06\x01\x01\x00'
      
      '\x55\x55\x05\x06\x02\x01\x00'
      
      找到规律没...
      

      3.发布运动命令

      新开一个命令行终端,因为是演示,所以直接使用rostopic 的pub功能,将上面的字符串命令打包成topic发给robot_arm节点
      动作1: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x00\x01\x00' 
      动作2: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x01\x01\x00' 
      动作3: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x02\x01\x00' 
      

      4.运动结果暂时没有视频,需要自己实际操作,觉得运动不满意的话请参考我们这个舵机运动控制帖子:电机控制与缓动函数

      小强主页
      返回目录

      1 Reply Last reply Reply Quote 0
      • kadian
        kadian last edited by

        请问一下有机械臂的功能包供下载吗

        weijiz 1 Reply Last reply Reply Quote 0
        • weijiz
          weijiz @kadian last edited by

          @kadian 这篇文章内用到的软件包可以在这里下载

          1 Reply Last reply Reply Quote 0
          • kadian
            kadian last edited by

            请问下我运行robot_arm节点时出现Opening robot arm device 段错误 (核心已转储) 是怎么回事

            weijiz 1 Reply Last reply Reply Quote 0
            • weijiz
              weijiz @kadian last edited by

              @kadian 有一个系统自带的包会干扰程序,需要把它卸载掉。

               sudo apt-get remove fwupd
              
              1 Reply Last reply Reply Quote 0
              • kadian
                kadian last edited by

                请问机械臂有相关的模型文件吗

                weijiz 1 Reply Last reply Reply Quote 0
                • weijiz
                  weijiz @kadian last edited by

                  @kadian 没有

                  1 Reply Last reply Reply Quote 0
                  • kadian
                    kadian last edited by

                    我用Arduino对机械臂二次开发实现机械臂逆运动,自主抓取目标,然后将arduino写成ros中的节点去订阅目标的位置消息,但是机械臂LSC控制板如果连在Arduino上 ,Arduino就无法收到topic发送的消息,请问有解决办法吗?

                    xiaoqiang 鲸鱼 2 Replies Last reply Reply Quote 0
                    • xiaoqiang
                      xiaoqiang @kadian last edited by

                      @kadian 是用的串口连接控制LSC吗?这里可能和rosserial端口冲突了,调整配置一下串口端口号。还有建议不用arduino,把目前arduino的功能封装成一个ros包里面,然后直接运行在ros master主机上。

                      kadian 1 Reply Last reply Reply Quote 0
                      • kadian
                        kadian @xiaoqiang last edited by

                        @xiaoqiang 用LSC的TX接Arduino的RX,RX接TX。听了您的建议我也认为不用arduino,将arduino功能封装进ros包里比较好,但是我运行你们提供的ros包后系统报错:

                        rosrun robot_arm move.py
                        Opening robot arm device
                        段错误 (核心已转储)
                        

                        按照你们之前说的

                        sudo apt-get remove fwupd
                        

                        也没用。

                        kadian 1 Reply Last reply Reply Quote 0
                        • Arieszzh
                          Arieszzh last edited by Arieszzh

                          .运行robot_arm节点
                          rosrun robot_arm move.py 出现错误 @weijiz @xiaoqiang
                          e18e5f265c49a0dd311ff7f1907d0b4.jpg e451be9ac6e598c5a681662ebe2ea43.jpg

                          weijiz 1 Reply Last reply Reply Quote 0
                          • weijiz
                            weijiz @Arieszzh last edited by

                            @Arieszzh 需要安装这个包 cython-hidapi 才能用

                            Arieszzh 1 Reply Last reply Reply Quote 0
                            • Arieszzh
                              Arieszzh @weijiz last edited by

                              安装过程中出现错误,hid-windows.c:23:21:fatal error:windows.h:No such file or directory
                              error:command ‘x86_64-linux-gnu-gcc’ failed with exit status 1
                              @weijiz 5420a965c548aab98ca424445115044.jpg

                              weijiz 1 Reply Last reply Reply Quote 0
                              • weijiz
                                weijiz @Arieszzh last edited by

                                @Arieszzh 你指令写错了,那个是让你根据系统输入的意思,linux输入

                                python setup.py build
                                
                                Arieszzh 1 Reply Last reply Reply Quote 0
                                • Arieszzh
                                  Arieszzh @weijiz last edited by

                                  指令已经更改,但是用python检测安装时还是出现问题了@weijiz
                                  ImportError:No module named hid18f1b6b4187d68e273dcec9b15adbb8.jpg

                                  1 Reply Last reply Reply Quote 0
                                  • Arieszzh
                                    Arieszzh last edited by

                                    您好,现在是这个错误,不太清楚怎么解决
                                    @weijiz
                                    50ab625c8ce91f50bb6baaf3ad9131e.jpg

                                    kadian 1 Reply Last reply Reply Quote 0
                                    • kadian
                                      kadian @kadian last edited by

                                      This post is deleted!
                                      1 Reply Last reply Reply Quote 0
                                      • Arieszzh
                                        Arieszzh last edited by

                                        之前的问题似乎是解决了,从别人那里拷了hid.so文件,但是再次运行节点后还是出错了,想再问一下您
                                        @weijiz 9371dff9faf4428886359de3fa7d6b8.png

                                        weijiz 孙威振 2 Replies Last reply Reply Quote 0
                                        • kadian
                                          kadian @Arieszzh last edited by

                                          @Arieszzh 我也有这个问题,请问你从哪拷贝的hid.so文件,可以发给我吗?

                                          Arieszzh 1 Reply Last reply Reply Quote 0
                                          • weijiz
                                            weijiz @Arieszzh last edited by

                                            @Arieszzh

                                            sudo apt-get remove fwupd
                                            

                                            试试

                                            Arieszzh 孙威振 2 Replies Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post
                                            Copyright © 2015-2023 BlueWhale community