Open jan-krueger opened 3 years ago
Hi @jan-krueger In case of reading from multiple DYNAMIXEL modules, this could happen within several milliseconds. If you are updating variables with the values read from DYNAMIXEL, check how long does it take to acquire those data. Simply using "Read" instruction multiple times may work, but causes a proportional delay to the number of DYNAMIXEL. Therefore, using Sync Read or Bulk Read instructions are strongly recommended. https://emanual.robotis.com/docs/en/dxl/protocol2/#instruction
This is still happening for me as well, and seems to be related to #306 from 2020, and appears to have actually been fixed in PR #238 from 2019.
@ROBOTIS-Will When can we expect to see a resolution here? This is a particularly critical bug to fix because it fundamentally breaks JointTrajectory commands with multiple motors.
Before you open issue, please refer to ROBOTIS e-Manual
How to setup? N/A - I think
Which Dynamixel have you used? and how many? (Please describe below format to all connected Dynamixels)
Write down the commands you used in order
I launch a custom launch file that looks like this:
Copy and Paste your error message on terminal
started roslaunch server http://hydrogen:33651/
SUMMARY
PARAMETERS
NODES /delta/ delta_node (delta/delta_node) motor_controller (dynamixel_workbench_controllers/dynamixel_workbench_controllers)
auto-starting new master process[master]: started with pid [47063] ROS_MASTER_URI=http://localhost:11311
setting /run_id to 47ea4884-04eb-11ec-af62-21885efed5f2 process[rosout-1]: started with pid [47092] started core service [/rosout] process[delta/motor_controller-2]: started with pid [47099] process[delta/delta_node-3]: started with pid [47100] [ INFO] [1629816912.059510138]: d >>> 0.010000 [ INFO] [1629816912.110783496]: Name : m1, ID : 1, Model Number : 1020 [ INFO] [1629816912.158769896]: Name : m2, ID : 2, Model Number : 1020 [ INFO] [1629816912.206745141]: Name : m3, ID : 3, Model Number : 1020 [ INFO] [1629816912.446796574]: [DynamixelDriver] Succeeded to add sync write handler [ INFO] [1629816912.446849119]: [DynamixelDriver] Succeeded to add sync write handler [ INFO] [1629816916.063225760]: time: 0.833 [ INFO] [1629816916.094555205]: 'm1' is ready to move [ INFO] [1629816916.094607410]: 'm2' is ready to move [ INFO] [1629816916.094628901]: 'm3' is ready to move [ INFO] [1629816916.094679545]: >>> move_time 0.83 [ INFO] [1629816916.094711269]: >>> pre_goalsize 0.26 0.26 0.26 [ INFO] [1629816916.096232888]: Succeeded to get joint trajectory! [ INFO] [1629816918.589085388]: Complete Execution [ INFO] [1629816924.062125303]: time: 0.833 [ INFO] [1629816924.094146208]: 'm1' is ready to move [ INFO] [1629816924.094199545]: 'm2' is ready to move [ INFO] [1629816924.094222045]: 'm3' is ready to move [ INFO] [1629816924.094255540]: >>> move_time 0.83 [ INFO] [1629816924.094279778]: >>> pre_goalsize 0.25 0.25 0.26 [ INFO] [1629816924.095765310]: Succeeded to get joint trajectory! [delta/delta_node-3] process has finished cleanly log file: /home/jan/.ros/log/47ea4884-04eb-11ec-af62-21885efed5f2/delta-delta_node-3*.log [ INFO] [1629816926.596306717]: Complete Execution ^C[delta/motor_controller-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done
double time = 2.5; msg.joint_names = {"m1","m2","m3"}; msg.header.seq++; msg.header.stamp = ros::Time::now(); msg.points.clear(); Vector3d lastVel(0,0,0); Vector3d currentVel(0,0,0); currentVel = (newPos-currentPosition)/time; Vector3d pos(0,0,0); Vector3d vel(0,0,0); Vector3d acc(0,0,0); Kinematics::calculatePosVelAcc(pos,vel,acc,newPos,currentVel,(currentVel-lastVel)/time); trajectory_msgs::JointTrajectoryPoint point1;