clubcapra / markhor

🐐 Capra-Markhor is a ROS-based solution for managing and operating Club Capra's second rescue robot. 🐐
9 stars 1 forks source link

Multi controller fix #25

Closed lvanasse closed 2 years ago

lvanasse commented 2 years ago

There was a bug when launch the tracks and the flippers where the ros_control nodes where killing one another

lvanasse commented 2 years ago

I've also taken the time to fix the publishing of tracks and flippers info to be at one second interval. Also fix the camera nodes, although time will tell if the new setup will be as good as the old one. Anyway, if you could give me feedback that be great, and also I'm planning on doing a demo the week of 28th of February.

lvanasse commented 2 years ago

So far I've tested the cam, the tacks and the flippers, but a complete test with the UI will be required.

saxtot commented 2 years ago

Would you consider moving the markhor_bringup/cameras files to the astra_camera repo? The thought process being that bringup shouldn't do much work except calling the launch of nodes from where they logically should be.

saxtot commented 2 years ago

In due time, I'd really like the camera launch files to have more appropriate names relating to their respective role, as was planned initially.

GLDuval commented 2 years ago

Looks good to me, we can test everything with the UI tonight!

lvanasse commented 2 years ago

@saxtot

Would you consider moving the markhor_bringup/cameras files to the astra_camera repo? The thought process being that bringup shouldn't do much work except calling the launch of nodes from where they logically should be.

That's a good question, the markhor_bringup/cameras is actually deprecated since with this PR we are using the astra_camera package. I'll remove them from the PR.

lvanasse commented 2 years ago

@saxtot

In due time, I'd really like the camera launch files to have more appropriate names relating to their respective role, as was planned initially.

Right, I tried to do the same also. But it was a lot of hassles to simply get them working with the same ID each time.

From my finding, when rebooting and with different camera setup, you might end up with different camera ID. So even though we figure that the front camera is ID X, if we add a new camera that might not stay the ID X, it might become the ID Y and the new camera the ID X. That's one of the drawbacks from using the same type of camera in USB, where they are discovered when booting.

So I'm not sure that in the future that might be possible, at least from my work on it, I didn't find anything that would allow us to do so, even though the documentation/forum post says otherwise.

lvanasse commented 2 years ago

@GLDuval

Looks good to me, we can test everything with the UI tonight!

I actually won't be there tonight, but if you guys want to try, you can use the workspace in the folder ~/SSD/Dev/multi_controller_fix_ludo_ws (I think) and launch the markhor_base.launch launch file. I've tested it multiple time, and it worked each time. The namespace/name of the camera change a bit since we are using a different package, but I doubt that would be an issue with the UI, although if it is, please let me know.

Also, as a word of caution, I've had one instance where one of the camera failed to load, but simply relaunching everything work.

PS. I won't be reachable, sadly, if you guys have issues with my workspace.

lvanasse commented 2 years ago

TODO : Add logs in the read function :

for each joint in flippers and in tracks

GetSensorCollection().GetPulseWidthPosition();
GetSensorCollection().GetPulseWidthVelocity();
lvanasse commented 2 years ago

@saxtot @GLDuval @benmalenfant @CloeD @McCaroon When are you guys free to do a small demo this week ? I'm free Monday, Tuesday, Wednesday and Thursday.

lvanasse commented 2 years ago

Here's a Doodle to facilitate the organization of the integration tests : https://doodle.com/poll/48a2zh4pus46en8m?utm_source=poll&utm_medium=link