roboprotos / maxon_epos4_ros1 Goto Github PK
View Code? Open in Web Editor NEWROS metapackage example on how to use maxon EPOS4 motor controllers with ros_canopen
ROS metapackage example on how to use maxon EPOS4 motor controllers with ros_canopen
I managed to implement the exoskeleton robot drive based on your code.I'm willing to share my code.
Thank you for the handy packages!
Our group made a robot manipulator with four EPOS4-EC Flat 90 combinations, and
the boot sequence sometimes encounters the "internal limit active" error/warning messages.
If the issue is suitable for other forums such as maxon official forum, please let me know.
The booting sequence is composed of the following procedures.
When 3. succeeded without any errors, the robot basically moves successfully.
However, we often have the following messages which makes the servo unavailable.
Roughly speaking, when the robot link touches the joint limit, we have the message more often.
What does the message "Internal limit active" mean?
NODES
/maxon/
canopen_motor (canopen_motor_node/canopen_motor_node)
controller_spawner (controller_manager/controller_manager)
ROS_MASTER_URI=http://localhost:11311
process[maxon/canopen_motor-1]: started with pid [38619]
process[maxon/controller_spawner-2]: started with pid [38620]
[ INFO] [1700117843.230044875]: Using fixed control period: 0.010000000
[ INFO] [1700117848.180201963]: Initializing...
[ INFO] [1700117848.180320192]: Current state: 1 device error: system:0 internal_error: 0 (OK)
[ INFO] [1700117848.180393302]: Current state: 2 device error: system:0 internal_error: 0 (OK)
[ERROR] [1700117848.181530521]: Received error frame: 20000004#0040000000000000
[ERROR] [1700117848.203415500]: Received error frame: 20000004#0040000000000000
[ WARN] [1700117856.940592789]: Internal limit active
[ERROR] [1700117857.630613450]: EMCY received: 81#0000000000000000
[ERROR] [1700117857.633218855]: EMCY received: 82#0000000000000000
[ERROR] [1700117857.634483992]: EMCY received: 83#0000000000000000
[ERROR] [1700117857.636063648]: EMCY received: 84#0000000000000000
[ INFO] [1700117857.636302807]: Initializing successful
Loaded '/maxon/canopen_motor/joint_state_controller'
Loaded '/maxon/canopen_motor/joint_trajectory_controller'
Started ['/maxon/canopen_motor/joint_state_controller'] successfully
Started ['/maxon/canopen_motor/joint_trajectory_controller'] successfully
[ERROR] [1700117857.975236097]: EMCY received: 84#1186800000000000
[ERROR] [1700117857.980561466]: Node has emergency error
[maxon/controller_spawner-2] process has finished cleanly
log file: /xxxxxx/.ros/log/53da76ee-844d-11ee-8d76-3d1625fdc6f7/maxon-controller_spawner-2*.log
Lastly, I happened to see the similar problem here,
https://robotics.stackexchange.com/questions/105356/ros-canopen-and-epos4-internal-limit-active
so please let me know if my issue is an inappropriate cross-posting. In that case, I would withdraw the issue.
Sorry for such a long message.
When carefully watching the socket can implementation for ros, it employs std::string. The main problem occurs here. As the data type allocates memory on heap whenever writing target data, the time it takes to allocate data can be slower at some time. How do you think about it?
On top of that, when it comes to CAN communication, I've heard that community usually do not remote transmission request in light of communication speed.
I sincerely appreciate your devotion to building the package. But, I want to check whether I've thought well.
I would now like to try out the csp mode. But I only have one maxon motor, but the sample contains two motor joints,how should I go about it?
Hi Cyril,
Can this ROS package also be used for the older Maxon EPOS(1) and EPOS2?
I was trying the Iwata lab and RIVeR Lab ROS packages, but with little success, so I have high hopes in you ... ;o)
Thanks,
Alf
Hello, thanks for this useful software !
I am encountering an initialization failure when attempting to operate a Maxon motor using the IXXAT USB-to-CAN V2 interface.
Environment:
・Ubuntu20.04LTS
・IXXAT USB-to-CAN V2
・EPOS4 compact 50/5 can
Steps to Reproduce:
In the first terminal
$ roslaunch maxon_epos4_ros_canopen maxon_epos4_canopen_motor_1dof_ppm.launch
In the second terminal
$ rosservice call /maxon/driver/init
Actual Behavior:
The initialization process fails with the following error messages in the console:
[ INFO] [1707807331.767948279]: Using fixed control period: 0.010000000
[ INFO] [1707807335.028286513]: Initializing...
[ INFO] [1707807335.028768010]: Current state: 1 device error: system:0 internal_error: 0 (OK)
[ INFO] [1707807335.029171750]: Current state: 2 device error: system:0 internal_error: 0 (OK)
[ INFO] [1707807345.029996332]: Current state: 0 device error: system:0 internal_error: 0 (OK)
[ INFO] [1707807345.030132079]: Current state: 0 device error: system:0 internal_error: 0 (OK)
[ERROR] [1707807345.030785136]: Initializing failed: could not reset node '1'
I am seeking assistance in resolving this initialization failure. Any insights, suggestions, or solutions would be greatly appreciated.
I face some errors and don't know how to solve it :
[ERROR] [1684030458.733188550]: Received error frame: 20000004#0000000000005f00
[ERROR] [1684030458.756318871]: abort1a01#2, reason: Object cannot be mapped to the PDO.
[ERROR] [1684030458.756341994]: Could not process message
[ INFO] [1684030458.756593035]: Current state: 2 device error: system:125 internal_error: 0 (OK)
[ INFO] [1684030458.756697209]: Current state: 0 device error: system:125 internal_error: 0 (OK)
[ INFO] [1684030458.756708087]: Current state: 0 device error: system:0 internal_error: 0 (OK)
[ INFO] [1684030458.756760827]: Current state: 0 device error: system:0 internal_error: 0 (OK)
[ERROR] [1684030458.757075233]: Initializing failed: /tmp/binarydeb/ros-noetic-canopen-master-0.8.5/src/sdo.cpp(429): Throw in function void canopen::SDOClient::transmitAndWait(const canopen::ObjectDict::Entry&, const canopen::String&, canopen::String)
Dynamic exception type: boost::wrapexceptcanopen::TimeoutException
std::exception::what: SDO
[canopen::tag_objectdict_key] = 1a01sub2**
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.