YRC1000 + HC10DTP node does not appear in ros2 node list #374
-
Hi! We have a YRC1000 motor controller and HC10DTP arm and are trying to work with ROS2. We followed the general setup instructions (https://github.com/Yaskawa-Global/motoros2). We got up to installing the configuration file (.yaml) before we noticed differences between our system and the instructions. The instructions say that "Within 30 seconds of loading the config file, you should get alarm 8001[10]," but we never did. We went ahead and rebooted the controller anyways just to see what would happen and finished installation. During the "Verifying successful installation" steps, we were able to start Docker and connect on the agent side through the port we specified in the config file. However, when we call the command "ros2 node list," it returns nothing (but also doesn't give an error). Other ros2 commands work (ex: topic list returns \parameter_events and \rosout). We can also open test nodes (demo_nodes_cpp talker and listener) which do show up when we call "ros2 node list." We searched online in ROS help communities to see if others had this issue and some were saying that restarting daemon helps. It did not for us :( Any help would be appreciated! Thanks! :) |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 4 replies
-
Could you please run the Debug Logging Client on your PC prior to starting the YRC1000 and the microROS agent? This will listen for debug-broadcasts from the MotoROS2 application and tell us where it's getting hung up in the boot process.
Can you clarify whether the config yaml was loaded and whether you edited it? (Please post a copy here too.) @jimmy-mcelwain and I recently updated the readme steps. As I look this over right now, I fear we may have messed up. The current instructions tell you to load the file before updating it with the Agent IP address. The |
Beta Was this translation helpful? Give feedback.
-
Here's our config yaml file. We only edited the "agent_ip_address" and "agent_port_number." Everything else is the set to the default values from the template file. We did have to make "joint_names" into two lines because it was giving us an error when we ran yamllint to verify the config file.
I think the general instructions are correct. We updated the config file first before loading it to YRC1000 through the teach pendant. Our debug client log is empty :(
I started it before turning on the YRC1000 and starting docker (agent).
The node list is still empty. Also, thank you so much for helping us :) We're new to all of this, and this github has been super helpful and informative. |
Beta Was this translation helpful? Give feedback.
-
Ok cool :) It seems like our debug logs were empty before because we never established connection between the controller and our PC.
We changed the controller's IP address to 172.17.0.10 with the same subnet mask 255.255.0.0 following https://github.com/Yaskawa-Global/motoros2/blob/main/doc/network_configuration.md. We were able to confirm that the changes went through when we check [System Info] -> [Network Services]. The controller IP address setting is still MANUAL SETTING. Now the debug log reads stuff! But it's getting stuck at "Attempting to connect to micro-ros PC agent"
Here's what our docker output looks like, too.
Is 172.17.X.X a bad ip address to use, too? Also yeah, we know foxy is EOL :( but it seems like Humble isn't compatible with our Ubuntu system. We figured we'd try to get things setup with foxy first. |
Beta Was this translation helpful? Give feedback.
-
Omg! It worked! Thank you so much |
Beta Was this translation helpful? Give feedback.
I think that I see what is going on.
First off, I am guessing that you are trying to use the address of docker0 as the agent IP address (172.17.0.1 is the default address). If that is what you are trying to do, I understand why, but you do not want to try to connect directly to the docker network bridge.
What you want to do is first set your IP address in your PC settings. On Ubuntu (22.04, at least), that means go to Settings > Network > press the gear icon by the "wired" toggle > ipv4 > set the address and net mask such that the controller and PC are on the same subnet. Then hit apply, then toggle the connection on and off. Then set the value in the config yaml to the IP address that yo…