-
Notifications
You must be signed in to change notification settings - Fork 88
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
libgz-sim7-dev #28
Closed
Closed
libgz-sim7-dev #28
Conversation
This file contains 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
…interface 1. Add package dependency on jsoncpp. Use this library as there is already an implicit dependency on it via Gazebo. 2. Add example executable to create the JSON message required by SITL.
1. add a stand alone executable that connects to the SITL socket 2. WIP: data is received from SITL but the output JSON data is not recv by SITL
1. Use copy of ArduPilot SocketAPM class for socket handling - consistent with SITL. 2. Add stripped down python example from the SITL examples to establish connection with SITL. This version has no physics (static model). 3. Rework c++ example to connect to SITL. Now working after using jsoncpp stream writer to generate JSON string removing all indentation and newlines.
1. Initial draft of ArduPilotPlugin using SITL JSON. Two way connection operational but subject to many timeouts.
1. Writing JSON was a performance bottleneck. Replace jsoncpp with the faster rapidjson (also header only). 2. Update examples and plugin. 3. Further adjustments to connection and timeout tests - further work still required.
1. Reduce the timeout for socket.recv to prevent ReceiveMotorCommand from blocking the main Gazebo update loop. 2. Re-enable the code to drain the socket 3. Remove the Time::NSleep(100) from the timeout check block
… functions 1. Provide more descriptive names for addresses and ports 2. Create new functions to load sensor parameters and split up the main load function 3. Update comments and messages
1. ReceiveServoPacket will return directly if no packet is received or the protocol byte is incorrect.
1. revert the deprecation of the fdm_port_in parameter as a review of the SITL JSON code reveals that both the FDM server address and port can still be overridden in the STIL instance.
Remove the xml namespace attribute from the iris model as prevents the model from loading in Gazebo 11.
1. Add optional params <servo_min> and <servo_max> to the servo controllers 2. The JSON interfaces sends raw PWM values that are not necessarily in [1000, 2000], this changes allows a model to configure different servo limits if necessary 3. Update the command calculation using new limits. 4. Use conditional compilation to disable dev debug code.
Update package name for RapidJSON in CMakeLists.txt
Add install instructions for Ubuntu
Remove the JSON and socket C++ and Python examples. Remove the anemometer sensor world example Signed-off-by: Rhys Mainwaring <[email protected]>
- Update the plugin to use the ignition-gazebo interfaces following @gerkey's migration guide Signed-off-by: Rhys Mainwaring <[email protected]>
- Fix bug where the imu name is stored in a temporary. Signed-off-by: Rhys Mainwaring <[email protected]>
…or json backend - Add <servo_min> and <servo_max> params. - Add <useForce> param Signed-off-by: Rhys Mainwaring <[email protected]>
- Set parameter <useForce>1</useForce> as setting joint velocities directly does not work.
- Remove commented code from Socket and ArduPilotPlugin - Adjust namespace formatting Signed-off-by: Rhys Mainwaring <[email protected]>
- Replace Gazebo material scripts with equivalent ambient, diffuse, specular elements compatible with Ignition. Signed-off-by: Rhys Mainwaring <[email protected]>
Add an ArduPilot enabled Zephyr delta wing adpated from the model provided by OpenRobotics. The model is configured to work with ignition-gazebo. Changes include: - Rename the model to avoid conflict - Update the location of the wing mesh texture in the collada file - Disable the GPS sensor - Use the ignition-gazebo version of the lift-drag plugin - Provide a new runway / ground plane model for demonstration (contains assets from ambientCG.com, licensed under CC0 1.0 Universal: textures https://ambientcg.com/view?id=Grass004) - Update the iris_arducopter_runway world to use the new model - Clean up CMakeLists.txt to use ignition conventions - Only require ignition-gazebo package as other dependencies are pulled in recursively. - This version of the mode will fly with ArduPilot plane4.1 - Add imu link and set pose: <pose>0 0 0 3.141593 0 -1.5707963</pose>. This is to adjust for the Zephyr model having a non-standard orientation (x : -R, y : -F, z : -D) - Add joint-force system plugins - Add ArduPilot plugin and configure: - Gazebo body frame to ArudPilot FRD has an extra rotation about z to correct for the non-standard wing orientation. - Gazebo world to NED is the usual rotation - The elevon mappings are different from the model in SwiftGust's repo. The elevon channels are swapped and no servo reverse is required. - Upstream: gazebo-zephyr.parm needs to have SERVO1_REVERSED = 0 SERVO2_REVERSED = 0 - Orient the model for vertical takeoff - Update the default transform for rotating from the Gazebo world frame to NED. Signed-off-by: Rhys Mainwaring <[email protected]>
…ArduPilot#3) - Document the frame conversion calculations needed to move from Gazebo to ArduPilot (aircraft) conventions - Use the Pose3d composition operator (operator*) to simplify the pose calculations and align the code with the documentation Signed-off-by: Rhys Mainwaring <[email protected]>
…rduPilot#4) - Include the iris_with_standoffs model in the OSRF edifice-demo-world and add the ignition::gazebo::system::Imu plugin. Signed-off-by: Rhys Mainwaring <[email protected]>
…state is not sent (ArduPilot#5) Signed-off-by: Rhys Mainwaring <[email protected]>
* [Lock-Step] add define to display debug information for JSON Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] split the creation and sending of the JSON state and cache the state between updates - Add function CreateStateJSON that creates and caches the state JSON string - Modify the function SendState to send the cached JSON state - This is to allow the JSON state to be resent to the controller if required Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] move the update of motor commands to a separate function - Move the servo packet declaration to the header - Move the conversion of PWM values to motor commands to a separate function Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] check the simulation is not paused in the pre and post update steps - Check that the simulation is not paused before receiving or sending state Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] removed unused debug checks Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] add logic to enforce lock-step and a plugin parameter to toggle - Add parameter <lock_step> which is set to true to enforce lock-step simulation - Update the Iris and Zephyr models to use lock-step - Modify PreUpdate when in lock-step mode - Keep calling ReceiveServoPacket until a packet is received - Modify ReceiveServoPacket when in lock-step mode - Resend the state if no data received from the controller instead of timing out - Resend the state if a duplicate servo packet is received - Fix a bug in the missed frames warning message Signed-off-by: Rhys Mainwaring <[email protected]> * [Lock-Step] add signal handler and break out of the receive servo packet loop when a signal is received - Add a signal handler to allow the plugin to exit cleanly on Ctrl-C. Signed-off-by: Rhys Mainwaring <[email protected]>
…-gazebo7 - Use new interface on EntityComponentManager::CreateComponent - Remove unused package dependencies from CMakeLists.txt - Update dependency to ignition-gazebo7
- Fixed git URL
- Set the link for the IMU contained in this model - the ECM foreach iterates over all model components in the world. Signed-off-by: Rhys Mainwaring <[email protected]>
* Add RELAY control type * Rename new control type from RELAY to COMMAND - Minor updates to parameter documentation - Rename new control type to COMMAND - Add dependency on World utility and use it to fully scope command topic names - Remove work-around for ArduSub as the initialisation issue should be fixed upstream Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Clyde McQueen <[email protected]>
* ign -> gz: namespaces * IGN to GZ Signed-off-by: ahcorde <[email protected]> * update README.md Signed-off-by: ahcorde <[email protected]> * Added reset Signed-off-by: ahcorde <[email protected]> * Update Signed-off-by: ahcorde <[email protected]> * more updates Signed-off-by: ahcorde <[email protected]> * clean worlds Signed-off-by: ahcorde <[email protected]> * more ign to gz Signed-off-by: ahcorde <[email protected]> Signed-off-by: ahcorde <[email protected]> Co-authored-by: Gustavo <[email protected]>
@Rezenders thanks for the PR. I believe I've captured this in #29, but I'll rebase this branch on main now that garden is default, and check. Edit rebased this PR on main and AFAICT the change is included, so closing. |
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.
gz-sim7-dev does not exist in ubuntu 22.04