Hello,
I've been working on an integration of the CANopen protocol (as implemented by Embedded Office's CANopen Stack) with VESC, on this github repository.
I am new to this project, and would be grateful for feedback and advice on what to do before opening a pull request!
The current objective list is:
- Add build options for using canopen-stack (done)
- Add canopen-stack drivers (done)
- Allocate memory for, and build an object dictionary (done, 256 3-word-long entries starting at 0x08080000 currently)
- Add a canopen-stack thread (repurposed the can read thread for this)
- Test canopen-stack T- and R-Pdo (done)
- Test canopen-stack Sdo
- Implement an example motor setup (work in progress)
My repository contains a simplistic test application that I will flesh out as features become usable.
Looking forward to reading your thoughts!
Nice work, many people have been asking about CANopen support. I think this might be better as a VESC Package:
https://github.com/vedderb/vesc_pkg
VESC Packages are a new feature that I'm working on that allows making an independent module that can be installed on the firmware during runtime. I think everything you need is already in place except that I should add a can-mode that disables the existing can-decoding and just relies on the custom handling. I will that can-mode asap.
Thanks for the feedback!
I have no experience with LISP, this would be a good learning opportunity. I'll try to make a package once the C version is working well enough for my project.
I was thinking of a C version as a compiled package, it is probably difficult to translate that library to lisp.
I am looking for a best way to utilize multiple VESC device for ros2_control, using the actuator_interface or the system_interface , instead of implementing the VESC can protocol or UART protocol, it looks to like the fastest and more robust way is to implement canopen on VESC controller and use ros2_canopen leveraging on blevruz work, is there any other effort in this direction ?