-
Notifications
You must be signed in to change notification settings - Fork 275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ROS2 migration #322
Comments
@JWhitleyAStuff already started to port the CAN-related packages. IMHO the |
Great, I will take a look at that! I agree that ros2_control is far from production ready. The project I want to use it for is also just a proof of concept. Was thinking that extending ros2_control for my specific use case makes more sense than building something custom from scratch. Have not decided yet. Do you know of any better options @ipa-mdl? |
I have started porting some of the CANopen packages to ROS2 here. |
@ipa-mdl - I haven't been able to work on this for a while but @samiamlabs and I have done a good amount of work. Can you please create a |
@samiamlabs @JWhitleyAStuff: It seems that you ported all packages except |
Thanks! I also have a WIP for the motor node on the ros2_control branch. We are using it with Technosoft iPOS drivers for a project and I have a web based dubug UI for it as well. I took a lot of shortcuts to get something to work at all, and we are having stability issues and trouble getting the drivers to work again after e-stop has been toggled. Have been considering a fairly large redesign to add support for IOs (401) on the motor drivers and several different types or devices managed by the same canopen instance. Both motors and IOs for example, configurable by params. (We have 4 iPOS drivers and one sysWORXX CANopen IO-C12 in our setup now and need two separate nodes atm.) |
Hi, I'm also interested in using ros_canopen with ROS2. I see that there is already a branch dashing-devel, but I would like to know how far this migration is at this moment. |
Are you interested in using it for 402 profile motor controllers or something else? I'm working on a new implementation of the ROS2 layer right now (with features like lifecycle). https://github.com/samiamlabs/ros_canopen/tree/dashing-experimental We plan to use it for some of our own new autonomous systems, but I'm not sure if the fork will be a good candidate for the official ros2 branch any time soon. There are quite a few changes from the ROS1 version already, and it's not really a straightforward port anymore. Haven't added support for motors to my experimental dashing branch yet, but hoping to get that done before Christmas :) Here is a little video that demonstrates how the web-based debug/configuration interface works. |
@samiamlabs I understand that the change to ROS2 is quit big. Instead of using the motor_node (402), I should be able to do the same with the chain_node(301), it is just not the smoothest way. I checked your repo but didn't find the GetObject.srv and SetObject.srv in the chain_node. I see that you all already did a great job, but is there already 1 version of ros2_canopen that is stable enough to use ? I checked your dashing-experimental branch, should I use the chrystal branch instead ? Or should I use this repo (branch dashing-devel) Thanks a lot |
Not sure what you mean by the GetObject and SetObject services. The callbacks are here: https://github.com/samiamlabs/ros_canopen/blob/0ab10ce21433de962634cc61afa73d3107aa5db9/canopen_chain_node/src/canopen_chain_component.cpp#L205 The dashing-experimental branch is a lot further ahead in terms of functionality than the other ones. Use at you own risk :) |
OK thanks. I have a working melodic node that uses the GetObject and SetObject services: The code I use is completely based on getting and setting the motor: (example) I'm a beginner so I'm having troubles understanding the working of your dashing branch, that explains the level of my questions :) |
@samiamlabs what could be the couse of following error ? |
Are you sure that your can interface shows up as a socketcan network device with the correct name? The default should be "can0". One way to check is to run |
@samiamlabs fixed the error, still not able to init CAN ... edit: the node doesn't get past here https://github.com/samiamlabs/ros_canopen/blob/dashing-experimental/canopen_chain_node/src/canopen_chain_component.cpp#L570 |
You are right that this issue is not the best place for questions like this. It's likely that there is some issue with the .eds or .yaml files you are using. |
@samiamlabs / @jLepers - I would suggest that you use either the ROS discourse or ROS answers for these types of long-running discussion just so that it's accessible to everyone. |
I'd like to strongly echo @JWhitleyWork's comment. @samiamlabs: why "hide" these discussions by distributing them across many different fora? |
I'm not suggesting we move any part of the discussions about the official repository to a separate forum. I actually think is reasonable to separate or "hide" this from discussions about the official repo to avoid confusion. If some of the changes I made end up in the official ROS2 branches with a more stable API, ROS answers or the ROS discourse make more sense of course. I have been answering some questions over direct email up to now, which I don't like for several reasons. |
@ipa-mdl What is the current status of the ROS2 migration? How far long is the |
@ipa-mdl #362 introduces XMLRPC which is the ROS1 communication mechanism. This seems counter to porting the node to ROS2. |
Yes, it was the only common place to put it for now. |
Hi All, I'm also interested in using ros_canopen (402) with ROS2 (foxy) and ros2_control. |
Hi guys, I'm also interested in this ROS2 migration. I'm using galactic and I need to communicate using ros_canopen(301). |
Hi @afonsofonbraga and @thinkeng! I have an experimental branch that I made a while back with support for 402 (motion control) and 401 (I/O modules). I have tested the branch in a couple of in-house projects that use Nanotec and Technosoft motors. It also worked with a sysWORXX I/O module. I made quite a lot of changes and probably a bunch of mistakes... I think it's a bad idea to just use that branch as the ros2 migration of ros_canopen. The ROS interface in my branch is mostly a placeholder for ros2_control which was not in a state to be used back when I worked on this. If anyone here wants to discuss the state of my branch I'm totally up for an online meeting next week. :) Would be good to discuss if any of the changes I made should end up in the official ros2 release of this repo as well. |
Hi @samiamlabs , |
Hi @CyrilJourdan, I only had the launch and param files in the actual project where I was using it. These are the relevant files, but they need some modification to work outside of the project. |
Thank you @samiamlabs . I'm trying it and will give you feedback on your github page to avoid any confusion with the official package. |
Hi @ipa-mdl, Regarding the official ROS2 migration of ros_canopen, how is it coordinated, is there a development roadmap made by some partners or consortium ? Or is it more done based on community's work without particular time-frame ? |
@CyrilJourdan: We started some discussions in the consortium, but we don't have an official plan for migrating ros_canopen to ROS2 yet. |
Hi all, I understand that nobody has found the time so far to finalise the ROS2 port of ros_canopen, but if one wanted to give it a try in its most recent form (with foxy) and possibly help debugging, fixing and eventually merging it, is https://github.com/samiamlabs/ros_canopen/commits/dashing-experimental by @samiamlabs the best place to begin at? |
Hi, |
Hello, @mathias-luedtke @lyakh @borongyuan Thank you for making a good ros package. It's very useful. What is the current state of the ros_canopen migration to ros2? I know that ros2_canopen is still under development, but I wonder when the first release will be. Thank you. |
@leeyunhome please checkout ros-industrail/ros2_canopen package and ask the quesiton there. |
Hi,
I want to use
ros_canopen
(402) with ROS2 and ros2_control for an upcoming project.Thinking about migrating the parts of
ros_canopen
I need to ROS2 myself. Has anyone already started working on something similar? Are there any plans to migrate relatively soon?The text was updated successfully, but these errors were encountered: