sonyccd / roboclaw_ros

ros for roboclaw
BSD 2-Clause "Simplified" License
50 stars 92 forks source link

RoboClaw ROS driver in C++ #1

Open harryman1 opened 8 years ago

harryman1 commented 8 years ago

request of a C++ driver version for ROS, that includes USB and UART support

griz11 commented 8 years ago

Awesome guys. I really needed this.

sonyccd commented 8 years ago

Okay so update on the C++ driver.

I have made a good bit of progress but due to the fact that the developers of the Roboclaw did not provide a C++ driver for anything other than Arduino, I'm having to write it from scratch. This is not very difficult but is extremely time consuming considering the large number of functions that are needed. I'm also making sure that all of the driver code is compliant with ROS and will not interfere with other Ross knows that might be using serial. As soon as I have the C++ Roboclaw driver written the ROS C++ node should not take much longer.

ColinHeffernan commented 8 years ago

I actually just built one myself using the ROS serial library and modifying the existing Roboclaw C++ code. The serial library is deliberately modeled after PySerial, so It actually ended up being pretty easy to translate stuff from the Roboclaw Python code. You primarily just need to implement the write() and read() methods of the class and get rid of all the Arduino specific stuff. Aside from that a lot of the existing code can remain intact. I will post it next week once I have tested everything!

harryman1 commented 8 years ago

Hi Colin

your contribution will be very welcome, please if you can share this it would be fantastic

Thank you

Date: Tue, 3 May 2016 08:49:52 -0700 From: notifications@github.com To: roboclaw_ros@noreply.github.com CC: henryacev@hotmail.com; author@noreply.github.com Subject: Re: [sonyccd/roboclaw_ros] RoboClaw ROS driver in C++ (#1)

I actually just built one myself using the ROS serial library and modifying the existing Roboclaw C++ code. The serial library is deliberately modeled after PySerial, so It actually ended up being pretty easy to translate stuff from the Roboclaw Python code. You primarily just need to implement the write() and read() methods of the class and get rid of all the Arduino specific stuff. Aside from that a lot of the existing code can remain intact. I will post it next week once I have tested everything!

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub

sonyccd commented 8 years ago

This is great! I have been swamped with finals so this makes like much easier. If you post the C++ driver I will write the C++ node to use it. I will also contact ionmc and let them know you wrote a C++ driver.

ColinHeffernan commented 8 years ago

I just posted a development branch so feel free to have at it. I can't actually test it until next week though, so I'll have no idea if anything works or if it is leaking memory etc... I'm pretty new to C++, so I would love any early feedback you can give. I was actually going to email them about an error in the Python library anyway, so I'll send my code along once I test and verify it next week.

sonyccd commented 8 years ago

This is great to hear from so many people. I am about to start using the roboclaw again so I will start pitching in with in a month or so .

jagadeesh-nelaturu commented 8 years ago

Can someone update on the status of the C++ library? Thanks in advance.

sonyccd commented 8 years ago

Would anyone like to take this on?

I am yet again not working with the roboclaw

csvance commented 5 years ago

https://github.com/csvance/roboclaw

Just got SLAM working using a node I wrote in C++. It doesn't have a ton of bells and whistles yet, but Odometry and differential drive works with move_base / gmapping.

There will definitely be improvements / additions to it in the future, including support for drive systems other than differential.

AlbertCAC commented 2 years ago

Is there any update on the driver, does it work with ROS melodic?