早前版程序(当前master和old-master):使用python的serial进行串口通信,对Dynamixel的EX106进行驱动。
上一版程序(ros分支,能够正常工作):使用python与arduino的serial进行通讯读取IMU,利用service驱动头部电机,并且发送msg给gait/head_pose
当前分支(master分支):在ros基础上增加了可选择的PID控制,roslaunch
##旧版本,/dev/ttyUSB1为arduino串口,/dev/ttyUSB0为电机控制串口
python head.py
##新版本,不需要电机控制串口,arduino串口为/dev/ttyACM0,在/catkin_ws/src下:
git clone [email protected]:guzhaoyuan/Head.git
cd ..
catkin_make
rosrun Head head.py
- node 为 /Head_data
- 给 Head/head_angel 的 topic 发 msg
- node 为 /head_control_server
- 给 Head/head_servo_angel 的 topic 发 msg
- 提供 /head_control_withPID 的 service 控制头部电机
- 接收 Head/head_angel 的topic 的 data,并且根据client 的 PID参数 决定是否使用PID
- head2.py #新版主程序入口,从head.py修改而来
- head_client.py #控制头部电机的client
- head.py #主程序入口,PID控制电机保持某一姿态
- EX106.py #底层驱动Dynamixel EX MX AX,串口通讯
- pid.py #pid算法实现
- readIMU.py #读取IMU数据并且使用
- home.py #测试文件,用于将Dynamixel电机返回中值
- pySerial
- time
考虑PID的应用场景和决策确定接口和PID使用方法添加2个msg,分别为头部姿态和头部电机转角给ROS添加 service评估工作量修改底层驱动代码工作量修改底层代码