• 编译器出错,头文件更改:
    1
    2
    3
    4
    5
    6
    7
    
      In file included from /home/user/clean_code/modules/webserver/http_node.h:17,
                       from /home/user/clean_code/modules/webserver/arwen_http_node.h:17,
                       from /home/user/clean_code/modules/webserver/arwen_http_node.cc:1:
      /home/user/clean_code/modules/webserver/webserver_base.h:44:10: fatal error: dynamics/solver/fk_solver_pos_kdl.h: No such file or directory
         44 | #include "dynamics/solver/fk_solver_pos_kdl.h"
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
    

快速笔记

CartToJnt tcp空间坐标转关节空间坐标

  • examples/demo_moveL.cpp
    • tcp空间坐标,单位: m rad –> 输出单位 rad
  • tcp 旋转角度接收的是角度,内部将角度转换为弧度

clean_code c_cpp_properties.json文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  {
      "configurations": [
          {
              "name": "Linux",
              "includePath": [
                  "${workspaceFolder}/**",
                  "/usr/xenomai/include/**",
                  "/usr/include/**"
              ],
              "defines": [],
              "compilerPath": "/usr/bin/gcc",
              "cStandard": "c17",
              "cppStandard": "gnu++14",
              "intelliSenseMode": "linux-gcc-x64"
          }
      ],
      "version": 4
  }

v1版本,测试给出的修改建议

  • 界面:
    • 设定步长,长按可持续控制
    • 速度,设定最大速度,在前端设置百分比,其速度相对于最大速度的百分比,百分之一百为最大速度
    • 3D机械臂,坐标系预览或提示,坐标系与算法的坐标系要一致,一般有两个坐标系:基坐标系和工具坐标系(末端坐标系,法兰末端中心,也称为TCP(Tool Center Point)
      • 基坐标系,目前以机械臂出线口为Y轴正方向,X轴,Z轴符合右手法则
      • 工具坐标系,目前以法兰末端IO口方向为Y轴的负方向,X轴,Z轴符合右手法则
    • 手动控制界面,一般习惯为左边数值减少,右边数值增大,或者增大减少给出图标提示
  • 装箱位置:
    • 打包位,这个坐标为关节空间下的各电机的旋转角度,一般为固定角度,
    • 作用:当打包发走时,使用这个功能,一键复原至装箱位置
  • 零位:
    • 在关节空间下,各个电机的旋转角度均为0,即为零位
    • 固定角度
  • 任意初始位置:
    • 由用户设定的位置,设置后,一键即可回到该位置,可重复修改
  • 机械臂重启:
    • 有,但是用处不大,一般是刷新页面
    • 目前的想法是,如果需要这个功能,可以作为恢复出厂设置功能去实现,将所有配置恢复到默认值
  • 日志,多级权限
    • 日志功能,用户权限,能够看到机械臂启动和停止,任务启动和停止
    • 管理员权限,能够看到机械臂启动的参数,任务执行的指令
    • 多级权限,需要设置多用户登录,用来区分普通用户和管理员
  • TCP空间,MoveL
    • 在TCP空间下,设定点运动,如果逆解失败,有错误提示,例如歧义点,
    • 将能够实现MOVEL功能的点列举出来