CANOpen_Motor_driver
1) CAN node id
2) eds file path
3) CAN channel \Cmd_vel
3) CAN bus bustype (ROS_topic input)
4) bitrate
5) gear ratio
6) max vel limit
7) wheel separation
8) wheel radius
9) update rate \motor_driver_status
\left_motor_status
canopen_motor_driver (ROS_node)
\right_motor_status
(ROS_topic output)
( Position, velocity, Torque,
operation mode
Current, voltage, operation
left motor rpm
mode, axis state, disarm
right motor rpm
reason ), feedbacks
Start canopen_core
Required "canopen" python module
CAN node id False
try:
eds file path
Open
bustype
Connection
bitrate
True
Reconnect add CAN node
Initialize node
Configure pdo's
False
Check
connection
True
check if Fault fault
operation
(reset fault)
state
If Operation
enable
set operational mode
set velocity canopen module
get feedback data
CAN
Clean up node and
network
Motor Drive
Wheel Odometry
\left_motor_status.velocity
\right_motor_status.velocity
(ROS_topic Input)
1) gear ratio
2) wheel separation
Wheel_odometry_node 3) wheel radius
4) publish tf
5) update rate
Calculate Odometry ,
joint state, tf
if publish tf
True
(ROS_topic output)
\wheel\odometry (ROS_topic output)
\joint_states \tf
\robot_velocity