2026-07-27 14:50:01 +08:00
2026-07-27 14:50:01 +08:00
2026-07-27 14:50:01 +08:00
2026-07-27 14:50:01 +08:00
2026-07-27 14:50:01 +08:00
2026-07-27 14:50:01 +08:00

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
==============================================================================================



欧艾迪驱动器:



接口:

    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(400byref(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....

	其余步骤和大疆雷达的一样





S
Description
No description provided
Readme
10 MiB
Languages
C++ 87.3%
CMake 7.3%
C 3%
Python 2.2%
Shell 0.2%