Add collision to the car in Visual lander worlds - #813
Draft
anshuman83-40 wants to merge 2 commits into
Draft
anshuman83-40 wants to merge 2 commits into
anshuman83-40 wants to merge 2 commits into
Conversation
Gazebo Harmonic ignores links inside <actor>, so the car had no collision and the drone fell through it. Replace the actor with a regular model that has collision boxes for the body and the roof, and move it along the same waypoints with a new waypoint_follower_harmonic system plugin. The plugin drives the model with velocity commands so a landed drone is carried along. Fixes JdeRobot#797 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hers gz does not look for system plugins in custom_robots' lib folder by default, so the car never moved. Append it to GZ_SIM_SYSTEM_PLUGIN_PATH before starting the server, like the other launchers do for their plugins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #797
Problem
The car in
visual_lander.worldandvisual_lander_circuit.worldis an<actor>. Gazebo Harmonic's physics system ignores all links that belong to actors (gz-sim8Physics.cc:// ignore links from actors for now), so adding a collision to the actor would not help: the drone falls through the car.Changes
waypoint_follower_harmonic(CustomRobots/waypoint_follower_harmonic), built fromCustomRobots/CMakeLists.txtthe same way asfollow_person_harmonic. It takes the same<waypoint><time/><pose/></waypoint>list as an actor trajectory, supports<loop>, and moves the model using model velocity commands (not teleporting), so a drone that has landed on the car is carried along. If the model is more thanteleport_distance(default 1 m) off its path, e.g. after a reset, it is moved straight back.carmodel that uses the samecar_color_beaconmesh and the same waypoints, so the route and timing are unchanged. It has two collision boxes sized from the mesh: the body (kept 0.3 m above the ground so it does not drag) and the roof, whose top is about 2.04 m above the ground, where the drone lands.The
car_color_beaconmodel itself is not modified.visual_lander.launch.pyandvisual_lander_circuit.launch.pyappendcustom_robots'libfolder toGZ_SIM_SYSTEM_PLUGIN_PATH(resolved withget_package_prefix), as other launchers do for their plugins.Headless test
Ran on Ubuntu 22.04 + ROS 2 Humble + Gazebo Harmonic:
colcon buildofcustom_robots, plugin path taken from the launch files, then each world run headless with a 1.5 kg box (drone stand-in) dropped on the car roof. Run: https://github.com/anshuman83-40/RoboticsInfrastructure/actions/runs/36816877508visual_lander.world(this PR)visual_lander_circuit.world(this PR)visual_lander.world(currenthumble-devel, actor)The plugin builds without compiler warnings, and the server logs show no plugin errors.
Status
Draft until the before/after videos recorded in Robotics Academy are added.