ROS2 bridge conversion

Hey all,

I’ve been working with @MScatolin, but I figured it might be better to host this conversation publicly for those interested.

We recently purchased an Amiga (v2.3.1 currently) and have heavy interest in hosting ROS2 in the same fashion as was done with ROS1. Our requirements are that the bridge run locally as we intend to host our ROS2 apps onboard while the Amiga runs autonomously without connectivity to a host machine.
I saw that there was a local and remote ROS1 option and went to try both of them with no success. I want to be able to replicate the success of control in both cases, but mostly locally.
I, currently, have a Docker setup currently that can noVNC into the bridge container to run the twist_wasd example node, which is what I wanted to be able to do. I’ve tried both the default examples provided by the README as well as my own architecture, but neither have been successful.

Like I mentioned above, I intend to see this ROS1 bridge working so we can work in porting it to ROS2 (we don’t want to run an additional ROS1->ROS2 bridge that I’m sure exists to cut down on computational overhead). Is anyone willing to work with me and our team to see this through? I’d love to work in sync with anyone interested.

Thanks,
Marcos

Hey @marcosabel, thanks for starting the thread here!

So, one thing that was causing errors on our ROS Noetic to OS V2.0+ is a recent update on protobuf 5.28+. Our software team is aware of that problem and working on a permanent solution, but on the meantime I’ve successfully ran the examples forcing the downgrade of the protobuf library. On either your local ROS machine or the docker container, do:
pip install --upgrade protobuf==5.27.2

let me know if this worked out.

Hey @MScatolin. It looks like I was able to run the amiga_streams.launch node and view the /cmd/vel published by the Amiga, which is a great start. Notably, I have to update the grpcio Python library to the latest version as it must have been that the core apps have been built with a newer version. I then ran the twist_wasd and was unsuccessful.

I’m following the steps as called out in here (running locally on my Mac in a Docker container). Like I mentioned above, it worked for viewing /cmd/vel when I moved it manually with the joystick, which is a great start but ultimately I want to be able to give commands via ROS2. Is there something unique about the twist_wasd that I should know about? I viewed the topic and saw my commands publishing, but it didn’t amount to any movement. Also, the README is a bit out of data because it doesn’t mention that you must run roscore prior to executing this node since it’s a rosrun command instead of a roslaunch. I’m wondering if it’s missing something else or if I’ve missed something in the config.

In any case, I’ll see you in a couple days and we can talk more then.

Thanks again,
Marcos

I think I may have misread the README in that I’m supposed to run twist_wasd after I run the node for TwistStamped message conversion. I’ll give this another shot and let you know how it works. My mistake.

After running the twist conversion master node with the additional wasd node, everything worked! I will now work on porting over to ROS2.

1 Like