Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ackermann_steering_controller to kinetic-devel #356

Merged
merged 8 commits into from
Nov 11, 2018
Merged

Add ackermann_steering_controller to kinetic-devel #356

merged 8 commits into from
Nov 11, 2018

Conversation

MoriKen254
Copy link
Contributor

Taken over from #289 to safely and cleanly rebase the branch.

@MoriKen254
Copy link
Contributor Author

Do I need to add <exec_depend>ackermann_steering_controller</exec_depend> into kinetic-devel/ros_controllers/package.xml?

@bmagyar
Copy link
Member

bmagyar commented Oct 23, 2018

Yes please. I'm pushing a new release now but after you made the change I think we are ready for a merge.

@MoriKen254
Copy link
Contributor Author

Thank you very much for your reply. I just added <exec_depend>ackermann_steering_controller</exec_depend> into package.xml of ros_controllers meta package.

If this PR is merged, I would like to add the controllers into other distributions later.

@MoriKen254
Copy link
Contributor Author

In terms of CI build test, all of them look passed in my forked res_controlelrs repository.

image

@bmagyar bmagyar self-requested a review November 9, 2018 19:36
Copy link
Member

@bmagyar bmagyar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Even though there are a few things I could be nit-picky about, it is time to merge this controller, we can do refactoring further down the line.

@bmagyar
Copy link
Member

bmagyar commented Nov 9, 2018

@ipa-mdl please approve if you like it and go ahead with the merge 👍

Copy link
Contributor

@mathias-luedtke mathias-luedtke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see why this code needs a dependency on Gazebo.
Please check the other dependencies as well.

@mathias-luedtke
Copy link
Contributor

In general this PR contains a lot of duplcated code (from diff_drive_controller), I would prefer to refactor things properly.

@MoriKen254
Copy link
Contributor Author

Thank you so much for kind review.

Yes, the comment #356 (comment) makes sense.

Probably https://github.com/ros-controls/ros_controllers/tree/kinetic-devel/four_wheel_steering_controller has the same matter.

I would like to refactor them at the next step.

Copy link
Contributor

@mathias-luedtke mathias-luedtke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update!
There are still some issues (see comments).

I have now compiled the list of dependencies:

<depend> (find_package + CATKIN_DEPENDS):
controller_interface
diff_drive_controller
hardware_interface
nav_msgs
realtime_tools
roscpp
tf

boost is missing as well, but I can ignore the fact for now ;)

<build_depend> + <exec_depend> (find_package):
pluginlib
urdf_parser (urdf?)

<test_depend> (find_package):
controller_manager
(geometry_msgs)
(std_msgs)
rosunit
std_srvs

<test_depend> (no compile options):
gazebo_ros
xacro

ackermann_steering_controller/CMakeLists.txt Outdated Show resolved Hide resolved
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

if (CATKIN_ENABLE_TESTING)
find_package(catkin REQUIRED COMPONENTS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe that catkin should not get resolved twice with a different set of components, but I have to double check.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed at a8087f7

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not fixed, but I guess it is okay for now. Other packages do the same and it makes sense to fix them in a follow-up PR.

Copy link
Contributor Author

@MoriKen254 MoriKen254 Nov 11, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll fix the point later as a follow-up PR including other controllers as well!

@mathias-luedtke
Copy link
Contributor

I would like to refactor them at the next step.

Okay :)

@MoriKen254
Copy link
Contributor Author

MoriKen254 commented Nov 10, 2018

I've learnt a lot from you! Thank you so much.

boost is missing as well, but I can ignore the fact for now ;)

I added Boost related lines into CMakeLists.

Speaking of refactoring, I'm considering a model to add a super (could be an abstract) class such as wheel_mobile_robot_controller and the others, diff_drive, ackermann_steering and four_wheel_steering inherit that.

Of course it would require a huge modification but simplifies the whole codes at the same time. hope I can hear your opinion :)

@bmagyar
Copy link
Member

bmagyar commented Nov 10, 2018

I'd call it mobile_base_controller and add it as a separate package. It could be done on the melodic branch.

Copy link
Contributor

@mathias-luedtke mathias-luedtke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there 👍

ackermann_steering_controller/CMakeLists.txt Outdated Show resolved Hide resolved
ackermann_steering_controller/CMakeLists.txt Outdated Show resolved Hide resolved
ackermann_steering_controller/CMakeLists.txt Show resolved Hide resolved
ackermann_steering_controller/package.xml Show resolved Hide resolved
@MoriKen254
Copy link
Contributor Author

I'm sorry for bothering you because of my mistakes and very appreciate you guys on giving patiently me advises.

I would like to work on some points remaining in other PRs!

Copy link
Contributor

@mathias-luedtke mathias-luedtke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All points addressed, thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants