WPI-Humanoid-Robotics-Lab / tough

Transportable Opensource UI for Generic Humanoids
MIT License
25 stars 13 forks source link

Melodic Port #30

Open DhruvKoolRajamani opened 4 years ago

DhruvKoolRajamani commented 4 years ago

I have a melodic port up and running with updated instructions and fixes on other dependent repositories. You can find the fork here. The branch with the updates is melodic-devel. If the maintainers of this repository want, they can open a branch called melodic-devel on this repository so that I can create a PR for my port. This way no changes to Master need to be made.

This melodic port is still in development, I have Ignored tough_perception packages due to an insane amount of dependencies on old pcl packages.

ninja777 commented 4 years ago

Are there any changes to any of these repositories? https://github.com/WPI-Humanoid-Robotics-Lab/atlas_workspace/blob/master/atlas_ws_0.11.yaml

DhruvKoolRajamani commented 4 years ago

Yes I have made changes to tough and atlas_workspace in a new branch called melodic-devel. I have also made changes to ihmc-ros-control in develop itself since the changes are more generic build changes (vector.h not included causing builds to fail, override specified but not overriding any base class function causing builds to fail).

DhruvKoolRajamani commented 4 years ago

Let me know when you open new branches in tough and atlas_workspace so that I can open a PR

AmeyaWagh commented 4 years ago

The CMakeLists.txt in commit https://github.com/DhruvKoolRajamani/tough/commit/2c376aee0bc9c4d50b8f62bffab3e9ac4cab5e65 doesn't have tough_perception in it. A lot of packages like navigation depend on that for point cloud assembler and maps. This will fail on runtime. If opened, the PR would be incomplete.

ninja777 commented 4 years ago

@AmeyaWagh : My guess is perception module when fixed for melodic will have fewer changes for ROS2 or vice verse. It would be good to have a list of things to do for perception.

As for the melodic port, I'm not completely sure as to how it can be useful as the robot would never be upgraded to Melodic. May be for folks who want to try out experiments in simulation.

The question here is: Is it worth maintaining a version that would not be deployed on the robot?

AmeyaWagh commented 4 years ago

In that case @DhruvKoolRajamani can maintain his fork and we can redirect any requests for melodic to that.

DhruvKoolRajamani commented 4 years ago

I am not aware of the status of the port to ROS2 but if the TOUGH package continues to depend on the various ros1 dependencies - SBPL, Human Navigation, etc, then I would assume utilizing the ros1 bridge for ros2 would probably serve as a valid "port" until the dependencies are ported as well. As for the status of my port, @AmeyaWagh, yes as I mentioned in the description of the issue, I have been able to run Atlas without perception because perception has a lot of dependencies that need to be fixed. I have been able to port all ros dependencies (humanoid nav, sbpl, etc) to melodic so all that's left for my melodic port is porting the tough_navigation package. I can continue working on this port for tough_navigation but I don't have enough time to commit to it right now, however, I can get back to it in short spans whenever I get time.

Again, unless the architecture of the tough package is changing for the port to ros2, I believe the ros1 bridge using melodic can be utilized so as to spawn the required rosnodes using the melodic package instead of porting the entire thing to ros2 (because the dependencies would have to be ported as well).

@ninja777 as for the usefulness of the port, I believe the nasa space robotics challenge states using melodic as a requirement, if WHRL plans on participating in it perhaps the port would be required? Again as I am not part of the lab, I'm unaware of the plans for this package and I can continue working on the port on my time and people can redirect to my fork if need be.

ninja777 commented 4 years ago

@DhruvKoolRajamani I have added a new branch melodic-experimental. you can submit a PR to that branch.

ROS2: The reason to move to ROS2 is to allow real time publish subscribe functionality. It cannot be achieved with ros bridge.

SRC2: There is no connection of SRC2 with tough. That competition is focused on moon rovers.

Perception: This is one of the crucial modules of tough. If melodic port is being added, there should be a plan and tentative schedule of porting perception module.

DhruvKoolRajamani commented 4 years ago

Thanks, I'll set up a PR.

ROS2: I completely agree, I wasn't aware of the plan for this port which is why I suggested ROS 1 bridge.

Perception: I haven't had time to work on porting this because a lot of pointcloud related errors popped up. I'll try and work on it through the fall break, but it would definitely help to establish a plan and have other contributors work on this as well.

Yes I have made changes to tough and atlas_workspace in a new branch called melodic-devel. I have also made changes to ihmc-ros-control in develop itself since the changes are more generic build changes (vector.h not included causing builds to fail, override specified but not overriding any base class function causing builds to fail).

Could you also open a branch in the atlas_workspace repo for the melodic-experimental port?