1)
Is AX-12 feedback given by the animation? On a related note, is there a feedback implementation of real AX-12's data?
I want to generate a dynamic gait by some external program. Therefore i would like to have those registers simulated.
Hmm, what do you mean by simulated? Are you referring to the dynamics extension?
If you plan to control the servos in a closed loop I suggest using the USB2Dynamixel or use the tossmode of the standard firmware (if you can set the baudrate to sth higher than 57.6k).
At the moment, my cm-5 controller program has problems when I try to read data from the servos after making a few write attempts which can cause sloppy motions. But I think this is due to communication errors on my broken cm-5. Therefore position feedback during a motion is deactivated at the moment (can easily be reactivated if you compile it yourself: controller/src/interpolation.cpp line 262). I'll have to test it on another cm-5 which will take some time. Of course, this problem doesn't occur if you're using the USB2Dynamixel.
The main program reads data from and writes data to the robot in a closed loop every few milliseconds (see CMotionContainer::updateRobot(), 80ms by default with 57.6k baud). This data is used to show the animation of the robot. If communication is deactivated (on/off, ron/roff) the internal data structures will still be updated as normal but the target position (which is normally sent to the robot) is used as input. You can generate dynamixel packets and send them through a TCP line if you want to use the information in another program.
2)
I saw it has kinematic calculators but does that include a solver?
Can not find that in the documentation.
If you refer to inverse kinematics, there are closed form solutions for the standard humanoid, the custom humanoid and the custom spider. You'll probably be able to use the IK of the custom spider on your robot.
The program doesn't include a working solver. The function CRobot::estimateInverseKinematics() serves as a test area for this purpose. It should contain an implementation of the Jacobian Transponse method, but if I remember it correct, it didn't work properly
I haven't worked on this problem for a long time.
3)
I don't grasph the bioloid bus <> your application connection.
A UML outlining what part of the program goes where would fitt well on the sourceforge website. Or mention parts like physics seperatly, as its optional.
I plan (
) to improve the documentation on the project page and this will be a part of it.
My program outputs data to and reads data from the serial line (<UseSerial>true</UseSerial>) and a tcp connection (<UseTCP>true</UseTCP>). If both are activated the program will use the data from the serial line as input but write the output to both. By default (<UseCM5>true</UseCM5>) the data will be compressed and crc checked which can be interpreted by the cm-5 controller program. You have to deactivate this option if you use a USB2Dynamixel or use another program (like the dynamics extension of Martin) to communicate with the main program. In this case, the main program will use the dynamixel packet format to write and read data.
Please feel free to ask additional questions.
1)
Is AX-12 feedback given by the animation? On a related note, is there a feedback implementation of real AX-12's data?
I want to generate a dynamic gait by some external program. Therefore i would like to have those registers simulated.
Hmm, what do you mean by simulated? Are you referring to the dynamics extension?
If you plan to control the servos in a closed loop I suggest using the USB2Dynamixel or use the tossmode of the standard firmware (if you can set the baudrate to sth higher than 57.6k).
At the moment, my cm-5 controller program has problems when I try to read data from the servos after making a few write attempts which can cause sloppy motions. But I think this is due to communication errors on my broken cm-5. Therefore position feedback during a motion is deactivated at the moment (can easily be reactivated if you compile it yourself: controller/src/interpolation.cpp line 262). I'll have to test it on another cm-5 which will take some time. Of course, this problem doesn't occur if you're using the USB2Dynamixel.
The main program reads data from and writes data to the robot in a closed loop every few milliseconds (see CMotionContainer::updateRobot(), 80ms by default with 57.6k baud). This data is used to show the animation of the robot. If communication is deactivated (on/off, ron/roff) the internal data structures will still be updated as normal but the target position (which is normally sent to the robot) is used as input. You can generate dynamixel packets and send them through a TCP line if you want to use the information in another program.
2)
I saw it has kinematic calculators but does that include a solver?
Can not find that in the documentation.
If you refer to inverse kinematics, there are closed form solutions for the standard humanoid, the custom humanoid and the custom spider. You'll probably be able to use the IK of the custom spider on your robot.
The program doesn't include a working solver. The function CRobot::estimateInverseKinematics() serves as a test area for this purpose. It should contain an implementation of the Jacobian Transponse method, but if I remember it correct, it didn't work properly
I haven't worked on this problem for a long time.
3)
I don't grasph the bioloid bus <> your application connection.
A UML outlining what part of the program goes where would fitt well on the sourceforge website. Or mention parts like physics seperatly, as its optional.
I plan (
) to improve the documentation on the project page and this will be a part of it.
My program outputs data to and reads data from the serial line (<UseSerial>true</UseSerial>) and a tcp connection (<UseTCP>true</UseTCP>). If both are activated the program will use the data from the serial line as input but write the output to both. By default (<UseCM5>true</UseCM5>) the data will be compressed and crc checked which can be interpreted by the cm-5 controller program. You have to deactivate this option if you use a USB2Dynamixel or use another program (like the dynamics extension of Martin) to communicate with the main program. In this case, the main program will use the dynamixel packet format to write and read data.
Please feel free to ask additional questions.