Time: 2024.6.24
有关rospackage
细节详见:
有关USB绑定规则详见:
- 驱动器正面会有标签,可以看驱动器型号,目前只支持830ABS、850pro
- 驱动器有两个网口,走的一个是232协议,一个是485/can协议,
- 232那个口是用来插它自带的灰色的网口转232的,然后232一端连接usb转串口线,再插到win系统电脑上,使用win上位机控制
- 485用来连接工控机使用ros包控制,接线检查是否正确
- 若重新拆装了电机,建议将json的
initMode
参数设定为0,然后手动执行初始化指令(val: 0, mode: 1),设定这个参数之后启动程序,电机会发生微动,属正常现象 因为假设初始上电位置超过了json中设定的限位范围[downLimitVal,upLimitVal],initMode
参数设定为0会导致刚上电数值超限,会向反方向旋转,这个只在initMode
参数设定为0时出现, 如果initMode
参数设定为1,则会上电初始化,不会出现这个问题
cd lifting_ws
pip3 install -r ./requirement.txt
sudo cp ttyUSB_permission.rules /etc/udev/rules.d/
cd lifting_ws
catkin_make
# source
source devel/setup.bash
# roscore
roscore
#run node
rosrun lifting_ctrl lifting_ctrl_service_node.py _motor_id:=1 #830abs
rosrun lifting_ctrl lifting_ctrl_service_node_850pro.py _motor_id:=1 #850pro
#topic echo
rostopic echo /LiftMotorStatePub
#service call
rosservice call /LiftingMotorService val: 0 mode: 0
推荐使用byobu
命令行工具多开终端,一般开三个窗格,一个用来启动代码,一个用来echo topic
,一个用来service call
需要根据移动模组的参数来定,需要修改的如下:
-
确定丝杆导程,如果有减速箱,确定减速比,
例:
导程=5, 减速比= 1:1
reductionRatio
应该设定为:10000 * (1/5) = 2000 -
需要确定初始化的方向:
如果是负方向初始化,一般电机倒置安装,丝杆为右旋情况下,也就是设定给
initSpd
为负数,电机向负方向运行是朝下限位运行,则需要将downLimitVal
设定为0,upLimitVal
设定为模组下限位到上限位距离(正值),单位为mm如果是正方向初始化,一般电机倒置安装,丝杆为右旋情况下,也就是设定给
initSpd
为正数,电机向负方向运行是朝上限位运行,则需要将downLimitVal
设定为模组下限位到上限位距离(负值),upLimitVal
设定为0,单位为mm正负方向初始化依照
initSpd
参数来确定,该参数为负则为负方向初始化,正数则为正方向初始化 -
初始化成功后,要运行的位置,单位mm:
initPos
电机初始化成功后,如果是依靠限位初始化成功,会识别这个数值,然后作为初始化后运行位置,然后驱动电机运行到这里 -
motorSpd
电机最大速度设定,须为正数,单位rpm -
responseTimeout
是应答超时时间设定参数,call之后,会阻塞在终端,这个数值用来设定阻塞时间,依照模组行程确定,如果行程很长可以适当加大 -
initMode
用来确定程序刚启动时候的模式,设定1为初始化模式,如果不需要初始化,请设置为0 -
portName
用来设定电机信号线所在的usb端口,这个参数如果不存在,程序会自动寻找ttyUSB*
-
motorStallCurrent
用来设定电机保护电流,根据实际情况去设定,负载比较大的时候酌情加大 -
motorTime
用来设定电机加减速时间,在位置模式下,也就是梯形加减速模型如果是830ABS,则只用来设定位置模式下加减速时间
如果是850pro,则同时设定位置模式和速度模式下加减速时间
{
"portName": "/dev/lifter_1",//串口名字,如果不写,程序会自动寻找
"initMode":0,//开始上电时的模式,0为位置控制,1为上电开始初始化,建议测试好功能后,将电机装到模组上面并测试好下限位正常再去改为1
"reductionRatio":20000,//执行器末端执行1mm,电机运行多少脉冲(1圈10000脉冲),单位脉冲数
"responseTimeout":70,//应答超时时间,单位s
"motorSpd":800,//电机最大速度设定,单位rpm
//电机加减速时间(梯形曲线),
//(830ABS):单位 1 为 65ms,假设设定为10,则加减速时间为650ms
//(850pro):单位 1 为 1ms,假设设定为10,则加减速时间为10ms,这个同时还会设置加减速时间
"motorTime":0,
"upLimitVal":305,//电机正方向运行最大值,单位mm
"downLimitVal":0,//电机负方向运行最小值,单位mm
"initSpd":-800,//初始化时电机运行速度,单位rpm
"initPos":0,//初始化后执行器要到达的位置,单位mm
"motorStallCurrent":17,//电机堵转电流限幅,单位A
}