290 lines
9.6 KiB
Plaintext
290 lines
9.6 KiB
Plaintext
==============================================================================================
|
||
|
||
欧艾迪驱动器:
|
||
|
||
接口:
|
||
1、电源 V+ 、 V-
|
||
2、UVW 三相线,, 给电机传输信号
|
||
3、霍尔传感器线: GND、5V、HU、HV、HW
|
||
4、两路CAN通讯: G、L、H
|
||
|
||
|
||
上位机:
|
||
type-C连接电脑
|
||
连接 ——》 波特率115200bps, 刷新按钮,绿色连接按钮
|
||
固件 ——》 查看驱动器版本号
|
||
向导 ——》 配置电机
|
||
传感器: 霍尔/无感,,
|
||
类型: 根据实际情况选择(大/中/小型,内/外转子...)
|
||
减速箱: 无/有
|
||
启动检测,空载运行 ==》 检测成功
|
||
数据检测 ——》 实时数据 ——》 电流 ——》 占空比达到95%左右,观察转速 ——》 点击右下角停止按钮
|
||
配置电机 ——》 通用 ——》 传感器类型: 霍尔; 最大转速由上面观察得到; 磁级对数询问电机厂家。
|
||
左侧栏,下载标志,电机 ——》 将设置写入
|
||
|
||
拨下驱动器上的终端电阻,以防止工控机没有终端电阻
|
||
应用程序配置 ——》 通用 ——》 应用类型: CAN总线
|
||
——》 CAN总线 ——》 CAN节点ID : 自己设置; CAN波特率: 500K
|
||
左侧栏,下载标志,应用 ——》 上位机会断开,点击左侧栏 重连
|
||
应用程序配置 ——》 通用 ——》 心跳超时时间 1000ms
|
||
|
||
|
||
|
||
|
||
欧艾迪驱动指令(使用标准帧):
|
||
|
||
该驱动没有专门的使能/失能,控制电流传输有效值或0即可
|
||
控制指令(CAN DATA[0]决定控制逻辑)无返回;
|
||
查询指令(CAN DATA[0]为0x0F, CAN DATA[1]决定查询逻辑 )有返回。
|
||
|
||
|
||
心跳: ID ; DLC 1 ; DATA 00 (如果上位机心跳超时设置的1000ms, 主机以500ms发送心跳包)
|
||
电流控制: ID ; DLC 3 ; DATA 01 XX XX (01表示电流控制, 后两个字节为有效数值,单位10mA, 正数正电流正转,负数负电流反转)
|
||
|
||
刹车控制(慎用): ID ; DLC 3 ; 08 00 64 (使用刹车电流1A刹停电机)
|
||
|
||
### 查询指令
|
||
# 故障查询 DLC 2
|
||
breakdown_query = (c_ubyte * 8)(0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
|
||
# 电流查询 DLC 2
|
||
eleCurr_query = (c_ubyte * 8)(0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
|
||
### 电流查询返回示例: 0F 05 00 64 (1A电流)
|
||
# 速度查询
|
||
speed_query = (c_ubyte * 8)(0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
|
||
# 电压查询
|
||
voltage_query = (c_ubyte * 8)(0x0F, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
|
||
# 功率查询
|
||
power_query = (c_ubyte * 8)(0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
|
||
|
||
|
||
查询故障信息: CANID(标准帧) 01/.. , 长度 2, 指令: 0F 00
|
||
故障码: 0正常; 1过压; 2欠压; 3绝对值超过最大电流; 4MOS管过温; 5MCU欠压; 6看门狗触发;
|
||
7SPI接口驱动器错误; 8FLASH损毁; 9U相电流传感器偏移过大; 10V相电流传感器偏移过大;
|
||
11W相电流传感器偏移过大; 12三相电流不平衡; 13FLASH中电机配置损毁; 14FLASH中应用配置损毁;
|
||
15CANOPEN心跳错误; 16堵转; 17失速; 18超差; 19编码器未找到Z信号
|
||
|
||
|
||
|
||
转矩(扭矩): 9550 * P / n
|
||
转矩T 单位N/m; 9500 计算机系数; P 功率,单位kW; n 转速,单位r/min
|
||
|
||
|
||
|
||
|
||
|
||
==============================================================================================
|
||
|
||
布瑞特驱动器(485通讯,以ID为1为例):
|
||
|
||
心跳(500ms间隔):
|
||
01 06 17 70 00 01 4C 65
|
||
01 06 17 70 00 02 0C 64
|
||
01 06 17 70 00 01 4C 65
|
||
01 06 17 70 00 02 0C 64
|
||
|
||
|
||
设置电流控制模式:
|
||
01 06 17 71 00 00 DC 65
|
||
|
||
|
||
电流控制(1A):
|
||
01 06 17 72 00 64 2D 8E
|
||
|
||
电流控制(3A):
|
||
01 06 17 72 01 2C 2C 28
|
||
|
||
电流控制(-1A):
|
||
01 06 17 72 ff 9c 6d fc
|
||
|
||
电流控制(0A):
|
||
01 06 17 72 00 00 2C 65
|
||
|
||
|
||
|
||
==============================================================================================
|
||
|
||
创芯驱动器,创芯驱动通道号即为电机驱动设备ID-1
|
||
创芯驱动python函数:
|
||
预计只使用CAN盒的一个通道,将两个电机并联到同一条总线上
|
||
1、SDK: libcontrolcan.so
|
||
canDLL = cdll.LoadLibrary('./libcontrolcan.so')
|
||
2、VCI_OpenDevice(设备类型, 设备索引,保留字)
|
||
对于创芯的CANalyst-II,参数一般是 4, 0, 0
|
||
3、VCI_CloseDevice(设备类型,设备索引)
|
||
4, 0
|
||
4、CAN数据帧格式构建
|
||
vci_can_obj = VCI_CAN_OBJ(0x1, 0, 0, 1, 0, 0, 8, a, b)
|
||
ID: 帧ID。 0x01/0x02
|
||
TimeStamp: 时间辍。 0
|
||
TimeFlag: 是否使用时间辍。 0不使用
|
||
SendType: 发送帧类型。 0正常发送(失败重发); 1单次发送(失败不重发)
|
||
RemoteFlag: 是否远程帧。 0数据帧;1远程帧(数据段为空)
|
||
ExternFlag: 是否扩展帧。 0标准帧;1扩展帧
|
||
DateLen: 数据长度(<=8)
|
||
Date[x]: 有效字节。
|
||
Reserved: 保留字。
|
||
ubyte_3array = c_ubyte*3
|
||
b = ubyte_3array(0, 0 , 0)
|
||
5、VCI_Transmit(4,0,0,byref(vci_can_obj),1)
|
||
设备类型: 根据CAN盒固定
|
||
设备索引: 根据串了几个can盒固定
|
||
CAN通道索引: 双路CAN通道索引号
|
||
要发送的帧结构首指针,
|
||
数据长度
|
||
返回实际发送的帧数。 -1表示USB-CAN设备不存在或USB掉线
|
||
|
||
|
||
|
||
|
||
==============================================================================================
|
||
|
||
如果使用socketCAN:
|
||
激活can0:
|
||
sudo ip link set can0 down
|
||
sudo ip link set can0 type can bitrate 500000
|
||
sudo ip link set can0 up
|
||
(后续设置开机自启动)
|
||
|
||
|
||
ros没有设备权限解决方法:
|
||
lsusb
|
||
sudo nano /etc/udev/rules.d/99-can.rules
|
||
如果设备信息是 ID 0483:5750,则写成:
|
||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5750", MODE="0666"
|
||
sudo udevadm control --reload-rules
|
||
sudo udevadm trigger
|
||
|
||
|
||
// ================================================================================
|
||
|
||
|
||
编译单个节点:
|
||
catkin_make --pkg your_package_name -DCATKIN_WHITELIST_PACKAGES="your_package_name"
|
||
|
||
|
||
|
||
|
||
|
||
// ===========================================================================
|
||
|
||
|
||
所需要运行的包:
|
||
OID CAN:
|
||
roslaunch oid_can_800w oid_driver.launch
|
||
REMOTE:
|
||
roslaunch rc_receiver rc_receiver.launch
|
||
BATTARY
|
||
roslaunch bms_driver_mingnuo bms_driver.launch
|
||
轮趣惯导:
|
||
roslaunch fdilink_ahrs ahrs_data.launch
|
||
大疆激光雷达:
|
||
roslaunch livox_ros_driver2 rviz_MID360.launch
|
||
北天惯导:
|
||
roslaunch beitian-bg620 beitian_bg620_driver.launch
|
||
16线雷神雷达:
|
||
roslaunch lslidar_cx_driver autoware_start_c16.launch
|
||
32线速腾雷达:
|
||
roslaunch rslidar_sdk start_rslidar.launch
|
||
阿努比IMU:
|
||
roslaunch lpms_ig1_ros lpmsig1.launch
|
||
|
||
|
||
|
||
|
||
|
||
各个功能包:
|
||
roslaunch logitech_g29_driver logitech_g29_driver.launch
|
||
roslaunch logitech_cmd_converter_usv logitech_cmd_converter_usv.launch
|
||
roslaunch ros_g29_force_feedback g29_feedback.launch
|
||
roslaunch vel_pose_connect vel_pose_connect.launch
|
||
roslaunch waypoint_package waypoint_loader.launch
|
||
roslaunch waypoint_package waypoint_saver.launch
|
||
roslaunch pointcloud_confusion pointcloud_confusion.launch
|
||
roslaunch map_border map_border.launch
|
||
roslaunch op_localplanner op_localplanner.launch
|
||
roslaunch pid_control_usv pid_control_usv.launch
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
==============================================================================================
|
||
|
||
遥控器部分(波特率 115200):
|
||
|
||
遥控器的左上角拨杆【拨上去】是【遥控控制】
|
||
【 byte0 - byte9 中,
|
||
byte2 和 byte3 表示前进和后退
|
||
byte6 和 byte7 表示左转和右转 】
|
||
5F 01 00 00 00 00 00 00 5E 9B (遥控器不作任何操作或者油门值最低)
|
||
5F 01 00 6E 00 00 00 00 30 9B (最大前进)
|
||
5F 01 FF 92 00 00 00 00 33 9B (最大后退)
|
||
5F 01 00 00 00 00 00 4E 10 9B (最大左转)
|
||
5F 01 00 00 00 00 FF B2 13 9B (最大右转)
|
||
遥控器的左上角拨杆【中间和下来】是【自动驾驶】
|
||
5F 00 00 00 00 00 00 00 5F 9B
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
===================================================================
|
||
|
||
轮趣惯导:
|
||
上位机或引脚读取的坐标系:北东地
|
||
ROS SDK 读取的坐标系: 北西天
|
||
x朝向车头方向
|
||
|
||
|
||
|
||
|
||
======================================================================
|
||
|
||
各种硬件接口:
|
||
创芯CAN —————— USB 自动检测,但是需要规则加权限
|
||
遥控器接收 —————— USB rc_receiver ----> launch -----> rc_receiver.launch
|
||
北天惯导 ——————— USB
|
||
大疆激光雷达 —————— USB
|
||
名诺电池 ——————— 485/db9
|
||
|
||
|
||
// =================================================================================
|
||
|
||
|
||
需要额外安装的包:
|
||
sudo apt-get update
|
||
sudo apt-get install ros-noetic-serial
|
||
sudo apt-get install libmuparser-dev
|
||
sudo apt-get install ros-noetic-nmea-msgs
|
||
sudo apt-get install libmuparser-dev
|
||
sudo apt-get install libpcap-dev
|
||
sudo apt-get ros-noetic-autoware-msgs
|
||
|
||
|
||
|
||
使用大疆的 livox mid-360 时,需要安装驱动
|
||
depends/Livox-SDK2.zip
|
||
解压后,进入到文件夹中,执行如下命令:
|
||
mkdir build && cd build
|
||
cmake ..
|
||
make
|
||
sudo make install
|
||
sudo apt-get install libserial-dev
|
||
|
||
|
||
|
||
使用阿路比IMU
|
||
sudo apt-get install libudev-dev
|
||
depends/lpmsig1opensource....
|
||
其余步骤和大疆雷达的一样
|
||
|
||
|